2010年7月29日木曜日

[iPhone][b-mobile]: b-mobile SIMをiPhone 3Gに刺してiPad Wifiを繋ぐ

今更ながらb-mobileSIM U300を買ってみた.目的はiPhone 3GをWifiテザリング端末として利用すること.

iPad Wifiは自炊した本を読んだりするのには非常に便利なのだが,ちょっと大きい画面でTwitterを見たり,Evernoteのノート更新をしたいと思ったときにいちいちWifiのあるところまで行くのがなかなか面倒だったりする.
と言ってもiPad 3Gの為だけに新しくもう一回線契約するのも固定費がかさむ.現状iPad Wifiをインターネットに繋ぐにはWifi経由でインターネットに接続するしか無いので,こちらの記事にあるようなモバイルルータという機器を使う事になる.

しかし,このモバイルルータが実は結構高い.大体3万円〜5万円くらいするので,2年で減価償却すると考えても月1500円程度の固定費が発生するのと同じになる.
モバイルルータとは別に3G網の回線契約も必要になるので,このコストはちょっと受け入れ難い.

そんな時,手元にiPhone 3Gがあれば,これをモバイルルータとして使う事ができるので,その方法をまとめてみた.
接続イメージは下図の様な形になる.


2010年7月26日月曜日

[Mac OS X]: Kasperskyが重くて色々と不具合が起きる時には

最近Mac OS X用のアンチウイルスソフトとしてKaspersky Anti-Virus (Mac OS X)を使い始めたのだが,どうもこいつがお行儀が悪い.
具体的には,常にCPUの1コアを占有して100%の負荷がかかった状態になり,バッテリをバカ食いしてしまうというもの.
もちろん,CPUを1コア占有しているので,他の処理もそれに引っ張られて重くなってしまっている.

最初は定期的に行われる全スキャンか何かが原因かと思ったのだが,数日たっても一向に終わらないので何かおかしいと思っていた.
その内SpacesやExposeの挙動までおかしくなり始め,にっちもさっちも行かなくなってしまった.
そんな時の対処法をまとめてみた.

[Mac OS X]: Lyrics Master - iTunesの曲に歌詞を自動設定し,iPhone/iPodで閲覧する

仕事にプライベートに,音楽を聴きながら何か作業をすることは非常に多いが,たまにはじっくり歌詞を見ながら曲を聴きたいこともある.特に,iPhoneやiPodに歌詞を登録しておいて,移動中などのスキマ時間に読みたいということはあるだろう.

そんな時,うたまっぷ歌ネットなどのサービスを使って歌詞を調べ,一つ一つ設定していくということはできなくもない.
ただ,歌詞サイトは大体コピペできないような設定がされているので,これが実に面倒だったりする.

これを自動化してくれるソフトがLyrics Masterだ.

Lyrics Masterを起動した状態でiTunesの曲を流していれば,自動的に歌詞を収集,登録してくれる.

2010年7月25日日曜日

[PHP][Symfony][Doctrine]: DoctrineでIDをキーにレコードを取り出す

いくつかの案件でSymfony 1.4+Doctrineを使ってみて大体勝手が分かってきたので,メモ.

Doctrineで以下のテーブルがあったとする.

BlogPost:
columns:
title:
type: string(255)
body:
type: string()
この場合,自動的にidというフィールドが追加され,作られるテーブルは以下の通りになる(MySQL使用時).

mysql> show fields from blog_post;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| title | varchar(255) | YES | | NULL | |
| body | text | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
ここで,IDを指定して1レコードだけ引っ張ってくる方法にはいくつかある.


$q = Doctrine_Query::create()
->from('BlogPost bp')
->where('bp.id = ?', $id);
$records = $q->execute();
if(count($records) > 0){
$record = $records[0];
}


$q = Doctrine_Query::create()
->from('BlogPost bp')
->where('bp.id = ?', $id);
$record = $q->fetchOne();


$record = Doctrine::getTable('BlogPost')->find($id);

最初の方法ではlimit文が付かないので,その分遅くなる.後の二つは発行されるSQLも同じ.
最後の方法は非常に手軽なので,覚えておくと楽.

2010年7月21日水曜日

[プログラミング]: 開発現場における怖い話



こんなのを教えてもらった.

自分は幸いこういったどうしようもない開発環境で働かされたことはないが,実際にこういう環境で働いている人と話したことはある.
チーム開発ではある程度全体の規約に従ったコーディングをしないといけないのは分かるけど,どう見ても非効率な規約があったりするのも事実.

エディタとかまで制限されるときついよね.

2010年7月19日月曜日

[PHP]: mb_convert_kana()がうまく動かないとき

PHPにはmb_convert_kana()という英数時,スペースの半角文字と全角文字を変換する関数がある.
この関数は日本語を処理するときに非常に便利な関数なのだが,どうもうまく動かない時があるようだ.

そんな時は
mb_convert_kana($str, 'as');
としていたのを
mb_convert_kana($str, 'as', 'utf-8');
としてやると上手くいくことがある.もちろん第三引数の文字コードは環境に応じて変える必要がある.

恐らく,PHPの文字コードauto_detectが上手く動いていないのだと思うが,自分が開発している中では結構この不具合の発生率は高い気がする.

mb_convert_kana()周りで不具合があったときは確認してみるといいと思う.