iPhone の電源

iPhone を使うようになって1週間くらいたつのだが、メールを頻繁にやりとりしたりすると、けっこうな勢いで電池がなくなる。そこで、携帯用の充電器を持ち歩かなければならないわけだが、
– Li-ion 電池を内蔵したLinkage の ACL-40G
– 単3のNi-MH電池を使う Panasonic の BQ-600
を手に入れた。前者は 1300mAh で 5V 750mA, 後者は 2000mAh x 2 で 5.2V 500mA だ。ACL-40G はコンセントに直接挿して充電して、取り外して持ち歩けるところがかっこいいし、動作も安定しているが、空っぽになった iPhone を満充電までもっていくパワーはないみたい。電池の容量的には単3を2本使うほうが圧倒的に有利なのだけれど、どうしても大電流がとりづらいらしく、iPhone の電池がほとんど空 (赤い表示) だったり、もうすこしで満充電、というところではうまく動かないことがあるのが残念。あ、これらは、使いながら充電する、という前提の話なので、iPhone の電源を切って充電するならば、必要なのは充電に必要な電力だけになるので、話が変わるはずです。
肝心の iPhone だが、とても幸せです。

iPhone in Japan!

ソフトバンクモバイルから iPhone が出ることになったんだけど、買うか、といわれると、正直、んー、という感じ。
いまは Nokia の端末を使っていて、BluePhone Elite2 というソフトウェアのおかげでSMS とか通話は Bluetooth 経由で Mac を使って全部こなすことができる。これは仕事中にくるメールや電話をやっつけるコストを激減させてくれる (だって、携帯電話を手に取る必要がないのだから!) ので、とっても気に入っている。
BluePhone Elite2 は iPhone にも対応しているんだけど、Nokia に比べると限定的なサポートになる感じ。
いやでも、そのうち買う気がしますけれど (笑)。

Portable process killer with GLib

Since Windows API (and MinGW) doesn’t have fork() / exec() calls, I love GLib’s g_spawn_sync() and its friends to spawn child process in portable (and Unix like) way.
However, GLib provides nothing like kill() to terminate processes. So I have to find a way to kill a process by myself. As a portable process identifier, g_spawn_sync() gives GPid. This is defined in GLIB_PREFIX/lib/glib-2.0/include/glibconfig.h as:
– Unix: typedef int GPid;
– Win32: typedef void * GPid;
The one for Unix is equal to pid, and the one for Win32 is equal to HANDLE (defined in winnt.h, as “typedef void *HANDLE;”).
So, a process launched by g_spawn_sync() may be killed by:
kill(GPid p, 15);
TerminateProcess(GPid p, UINT return_code);
MSDN document says “The state of global data maintained by dynamic-link libraries (DLLs) may be compromised if TerminateProcess is used rather than ExitProcess.”
Source code of a Gimp plugin gives a good example, but I haven’t tested it yet. Hope this works…

MacBook migration

クリスの MacBook の電池が壊れちゃって、使えなくなったので僕の電池を貸してあげることにした。で、僕は普段使っている自分の MacBook の他に、最近研究費で買ったやつもあって、そっちは僕が開発しているアプリケーションの動作検証用に使っていたのだけれど、それほど稼働率が高いわけでもない。
まあ、どうせ仕事ばっかりで使うわけだから、メインをそっちに乗り換えるのもよかろう、と思ってハードディスクを交換した。構成は、
– 僕の MacBook = Core2Duo 2.0GHz (2007年1月購入)
– 新しいやつ = Core2Duo 2.2GHz (2008年1月購入)
で、両方とも Core2Duo だが、新しいほうはチップセットが換わっていて、4GB メモリが載っているので、VMware なんかを使った仕事もけっこうハッピーにこなせる。
まあ、基本的にはほとんど同じアーキテクチャのマシンなので、ハードディスクを交換してもちゃんと動くことは、前に僕の MacBook を修理にだしたときに経験済み。だけど、いくつか設定を直さなければいけないところがあったのでメモしておく。
– 入力環境が「ことえり」になってしまった。普段は ATOK なんだけど、これは「システム環境設定」で ATOK になおしたら、すぐ動いたので全然問題なし。
– Ctrl キーが、僕は A の左なわけだが、これがデフォルトに戻った。これはおそらく、MacBook がモデルチェンジしてキーボードが微妙にかわったので、新しいキーボードとして認識されたから。これも、同じように設定を直してすぐクリア。
– USB モデム (というか PHS ) の設定が消えた。ISP のログイン名とパスワードが見えなくなってしまって、出先で往生。これは、致命傷になりうるので、注意が必要。モデムのドライバなんかは、もちろんちゃんと残っていた。
– Time machine および .Mac は同期しなおし
– iSync の携帯電話も、たぶん。
とりあえず、そんな感じ。