dh memoranda

徒然なるままに日暮らしブログに向かいて...

iPod Touch が楽しい

いまさらですが iPhone 騒動は無事にスルーし、iPod Touch もスルーするつもりでした。あっけなく売り切れたので、これで買わない、いや買えないだろう、と思っていたのですが、jailbreakの記事を読んでしまい我慢できなくなりました。そんな10月中旬、あるミーィングのために東銀座にいったのですが、帰りについふらっとよった Apple Store GINZA に 16GB の在庫があり、つい買ってしまいました。普通あったら買うよね。ということで、楽しんでつかってみた雑感をいろいろと。

jailbreak とはなんぞや、という人のほうが普通だと思うので説明しますと、iPhone も iPod Touch も Mac OS X で動いているのですが、通常の Mac とは違いプロテクトが施されていまして、普通では自作アプリケーションの動作はおろか、インストールすらできません。それが、ある操作をすると、いろんなことができてしまうんですね。詳しくは Engadget の記事などを参考に。最近出たファームウェア 1.1.2 でもできるようです。iPhone 用アプリである Mail や Google Maps などのインストールなどもできるようですごいですね。しかし、Mail くらい最初から入れておけばいいのに...。

ということで、普通ではできないことをできるように細工することを jailbreak、日本語でいう脱獄といっています。もちろん、うごかなくなっても、こわれてもメーカー保証の蚊帳の外になることを覚悟してやらないといけません。

まあ、そんな物騒な話は別にして、普通の利用でも Pod Touch は面白いです。普通に無線LAN、つまり WiFi が搭載されていて、無線LAN環境があれば、普通にインターネット接続が可能です。また、ブラウザとしてサブセットの Safari が搭載されているので、ウェブアプリケーションであれば、結構普通につかうことができてしまいます。ToDo 管理の Remember The Milk などは iPhone/iPod Touch 専用インターフェイスなども用意していい感じです。こちらは早速 Pro にアップグレードしたくらいです。

で、会社で使っているスケジュラーはサイボウズなので、早速アクセスしてみました。

まあ、こんな感じで読みづらいったらありません。なんとかいい方法は...と探してみたらやっぱりいます。MT でもお世話になった ogawa さんcybozu2ical を使うやりかたが、Six Apart 顧問仲間の higuchi さんのところで紹介されています。早速試してみたところ、まあいい感じだったのですが、よく調べてみると、とても大切な取締役会のスケジュール変更がうまく反映されていませんでした。これはさすがに使えん、と現実逃避の原因究明を始めると、どうも繰り返しの例外設定がうまくないようです。とりあえず、動くようにパッチを作成して対応しました。わたしのスケジュールはこれで大丈夫っぽいです。

$ diff -u cybozu2ical.orig cybozu2ical
--- cybozu2ical.orig	2007-12-04 00:58:49.000000000 +0900
+++ cybozu2ical	2007-12-04 01:03:29.000000000 +0900
@@ -166,11 +166,15 @@
 	# exdate
 	if ($item->exdates) {
 	    if ($item->is_full_day) {
-		my $exdate = join ',', map { to_icaldate($_, 1) } $item->exdates;
-		$args{exdate} = [ $exdate, { VALUE => 'DATE' } ];
+		for ($item->exdates) {
+		    my $exdate = to_icaldate($_, 1);
+		    $vevent->add_properties(exdate => [$exdate, {VALUE => 'DATE'}]);
+		}
 	    } else {
-		my $exdate = join ',', map { to_icaldate($_, 0) } $item->exdates;
-		$args{exdate} = [ $exdate, { TZID => $time_zone } ];
+		for ($item->exdates) {
+		    my $exdate = to_icaldate($_, 0);
+		    $vevent->add_properties(exdate => [$exdate, {TZID => $time_zone}]);
+		}
 	    }
 	}
 

これでスケジュールをいつでもチェックできて、もうダブルブッキングとかトリプルブッキングとかしなくてすむはず...なんですけどね。はい。