2007年04月17日

復帰通知というか復帰しない通知というか

4月に引っ越しをしまして,ようやく自宅でのインターネット接続環境が整ってきたところです。ひさびさの書き込みです。ただ,以前ほど,blogやプログラミングに割ける時間がなくなりそうです。そして,近いうちに,DIONを解約すると思います。

最近,DIONのメールアドレスには,迷惑メールが毎日50通前後来ます。日本語が3割,英語が7割といったところでしょうか。Apple Mailの迷惑メールフィルタではじいているとはいえ,たまに大事なメールが紛れてしまうので,全く見ないで捨てる勇気がでないのですよね。

メールアドレスを変えればいいのですが,DIONではメールアドレスの変更にはお金がかかりますし。関係はないのかもしれませんが,迷惑メールが急激に増えたのが,DIONの情報漏洩の時期と重なっていたため,ちょっと疑っています。

で,ちょうど引っ越しでADSLをいったん停止しなければいけなかったのもあり,メールアドレスもどうせ変えるなら,他のISPに移っちゃってもいいな,ということでDIONを含めいくつかのISPを比較した結果,他社のADSLのサービスを使うことに決めました。 DIONのメールアドレスも移行用に暫くは残していくつもりですが,中・長期的にはDIONを解約ということになりそうです。


 
Posted by 藤棚 at 23:30  |Comments(0)TrackBack(0) | 近況・雑記

2006年10月31日

LeopardではCalendar Storeフレームワークが追加される

Leopard Technology Series for Developers (英語) という文書がちょっと前にAppleから公開されている。いろいろ面白いことが書いてあるのだけど,一点,Calendar Storeについて。

The Calendar Store framework provides access to a user’s iCal calendar data. Using the framework, you can fetch calendars, events, and tasks from iCal’s data storage. This allows your application to work with the same data as iCal, Mail, and any other application that a manager uses to interact with their schedule and to-do items.

とあります。iCalのデータをAddress Bookフレームワークみたいに使えるということでしょう。

紙の手帳でもそうだけど,個人情報の管理 (PIM) として最も重要な二本柱が,アドレス帳と,予定表。 Mac OS XではアドレスブックとiCalがそれぞれの役割を担っています。 これらの情報は,他のアプリケーションから利用したい場合 (例えばメーラーからアドレス帳のデータが欲しい,など) も多いものです。

現在,アドレスブックのデータにはSync ServicesのほかAddress Bookフレームワークが公開されていて,これによってApple以外のプログラマでもこれらの情報を使ったアプリケーションを作ることができます。Sync ServicesはTiger (Mac OS X 10.4) からだけど,Address Bookフレームワークはもっと昔から使えました。

一方の予定表に関しては,現状ではAddress Bookフレームワークに相当するものがないのでSync Servicesを使わざるを得ませんでした (それかiCalの保存するファイルを直接読み書きするか。ただし,これは面倒だし将来iCalの保存フォーマットが変わった場合など,もろに影響を受けてしまいます)。 それとは別に,より簡単にiCalのスケジュールデータにアクセスする方法がLeopard (Mac OS X 10.5) でサポートされるCalendar Storeのようです。

京ぽんスケジュールツールではSync Servicesを使ってiCalデータを取り出しているのですけど,Sync Servicesはオブジェクトの関連 (relationship) の処理がおそろしく面倒だしデータの送受信は遅いしでいまいちアプリを作りづらいです。Leopard以降のみの対応になるけど。自分のアプリとiCalデータを同期しなきゃいけない場合じゃなければ,こっちを使った方が楽そう。

ちなみに,京ぽんアドレスユーティリティの「アドレスブックから読み込み…」はAddress Bookフレームワーク使ってます。だから,Pantherでも動くけど,同期じゃないのです。


 

2006年10月25日

CocoaのNSPredicateは日本語の読みを理解する!?

ちょっと前の話ですが,拙作Another Kyopon Mail Utilityで,受信したメールの本文検索機能をテストしていたときのことです。Core Dataを使っているので,検索はもちろんNSPredicateを使いました。

で,それほど蓄えられているメール数が多くないのもあって,たくさん検索にひっかかりそうな単純でよく使う単語がいいということで「まあ」と入れたのだけど,なぜか関係ないメールが数件引っかかりました。あまりにも日常的な内容で,さらすのがちょっと恥ずかしいのですが,こんなメールまでひっかかりました。

ご飯、多分あります。 タイマーをセットし忘れていなければ。

この携帯メールの本文はこれだけです。一部抜粋とかではありません。つまり,本文中に全く指定してないはずの文字がひっかかったのです。とはいえ,検索機能はNSSearchFieldのfilterPredicateというバインディングをInterface Builderでしているだけで何もコーディングしてないし,自分のバグとは考えにくかったのです。原因はなんなんだろう…

…と,検索語を変えたりして挙動を見ること数分,原因に気がつきました。

続きを読む
 
Posted by 藤棚 at 21:36  |Comments(2)TrackBack(0) | Cocoa/Objective-C

2006年10月11日

ようやく激務から解放/韓国出張

9月末から10月頭に,出たい学会/出なきゃいけない学会がまとまってしまい,ちょっとありえないくらいに忙しかったのですが,それも終えて一息。といっても,今はまだ学会会期中で韓国の釜山ですが。北朝鮮のせいで物騒な時期に韓国にいるわけですが,釜山は韓国の南東の端というのもあって,全く影響は見られません。さすがにTVニュースは北のニュースが非常に多いですが。

核実験の前日には韓国の北西,国境も近い仁川空港から入国したのだけど,韓国に入るのが1日遅れていたら,もっと緊迫感があったかも。ま,平時でも空港や大きい駅にはライフル (日本みたいな小銃ではなく) 持った警備員が2人ペアで歩いている国ですけど。

そして今は上で書いた通り釜山にいます。初日の午後に仁川に着いたら,すぐに大田へ向かい,大田では夕食を食べて一泊,翌日の午前中まで滞在しただけで,すぐに釜山に向かいました。観光も何もせず,韓国を北西の端の仁川から南東端の釜山までバスで縦断したわけで,さすがに疲れました。

インターネット先進国,韓国のホテルは軒並み無料でインターネットが使えて便利です。LANケーブルが生えているとかじゃなくて,各部屋毎にPCごと置いてあります。ここなんて (学会指定のホテルが埋まっちゃった関係で) 一種のモーテルだけど,それでもネット環境がただだもんなあ。 ただWindows XPは日本語は表示できるのだけど,メニューは全部ハングル。日本語入力を可能にする方法が分からず,結局LANケーブルを引っこ抜いて,iBookに繋ぎ直しています。

趣味の時間に少し京ぽんユーティリティでも再開しようと思ったのですが,永らく触っていないから,どこから手をつけていいのか分からない状態です。

ちなみに先週はやはり学会で福岡に行きましたが,九州大学のT先生がMacとWX300Kを使っていてびっくり。私のツールを知っていたりするのかなあ…まあ知らないだろうなあ。

福岡でも宿泊のホテルはインターネット対応でEthernetのケーブルが壁から出ていました。最近のビジネスホテルはインターネット対応というのが増えて,私みたいに,出先でも1日1回程度メールチェックができれば十分な人間には,以前ほどデータ通信のためにPHSを使う必要がなくなったなあなんて思ったり。もちろん音声通話端末としてはWILLCOMは安価だし通話エリアにも私の場合はそれほど不満はないから,もうしばらくは使い続けるのだろうけど。


 
Posted by 藤棚 at 23:58  |Comments(0)TrackBack(0) | 近況・雑記

2006年09月20日

京ぽんスケジュールツール作ってみた

iCalのデータを京ぽんに送り込むツールを作ってみました。Kyopon Schedule Sync。思いっきり暫定版です。インターフェースなんて,Xcodeのモデル設計ツールからInterface Builderにドラッグ&ドロップしたのほぼそのままですし。「とにかくiCalのデータをWX310Kに流し込みたい」という人向きです。

「Sync」の名に反して同期ではなくて,「Pull the Truth」つまりSync ServicesのTruthデータベース (非常に大雑把にいうと,iCalのデータ) からデータを引っ張ってくるだけです。Sync Servicesの機能的には,2度目以降のSyncなら前回の同期後に変更された差分だけ持って来れたりするのだけど,面倒なのと中途半端な理解で実装するとデータの不整合性が生じるので,とりあえずパスしました。全データを持ってくるから,ちょっと処理に時間がかかります。そのかわり,常に最新のデータベースと内容が一致しますし,こっちからデータを送信はしないのでiCalのデータを壊しちゃったりする心配はありません。

Mac OS X 10.4 (Tiger),らくたじーのさん作のKyopon USB Driver,それにWX310K (他の京ぽんにはスケジュール機能がありません) が必要です。

続きを読む
 

2006年09月18日

今更WX310K買っちゃいました

藤棚工房別棟 −徒然−: WX310KからMacにスケジュールも取り出せるのかな? (Test Tool公開)でTest Toolsを公開したところ,スケジュールデータも送受信できたとある方から報告をいただきました。といっても,単に生のデータが取り出せるという報告をいただいただけなのですが,京ぽんユーティリティ作者としてはこれは奮起の時と「今更ながら」思い立ち,突発的にWX310Kを買ってしまいました。発売からもう1年くらい経つし,いきなり新機種発表とかあったら悔しいけど…。

店舗に行くのが面倒で,WILLCOMストアで買いました。機種変更定額プラン特価18800円+変更手数料2100円 (だったっけ?) でした。もう少し安かったら…できるかどうかもわからないフリーウェアの開発のために自腹を切るのは馬鹿な気がしましたが…まあ深く考えてはだめですね。初代「京ぽん」のもっさり感から解放されたと思えば,悪くない,と思うことにします。

いや,長いこと初代「京ぽん」ことAH-K3001Vの操作に超低速レスポンスに慣れていたせいもあって,WX310Kのきびきびとした反応が本当に快適です。AH-K3001Vのレスポンスがむしろありえないレベルだったのでしょうけど。

はてさて,京ぽんスケジュールユーティリティ for Mac,完成なるか。


 

2006年09月17日

Cocoaで文字エンコーディングの自動判別プログラムを書いてみました

Cocoaには文字コードを一発で自動判別してくれるような便利な方法は用意されていません。Tigerになって追加されたstringWithContentsOfFile:usedEncoding:error:およびその親戚のメソッドは,藤棚工房別棟 −徒然−: Cocoaの文字コード自動判別,まだ試しに作ってみただけでちゃんと実装してないなら,そう書いてください!で書いたけど,ろくな判別をしません。試したところ,BOM付きのUnicodeくらいしか判別できないみたいです。

AppleはCocoaでの未知の文字エンコーディングに対する対応の仕方について何の情報も与えてないわけではなく,CocoaのADC Home > Reference Library > Guides > Cocoa > Data Management > Strings Programming Guide for Cocoa >のReading Strings From and Writing Strings To Files and URLsのReading data with an unknown encodingには一応,一般的な対応方法が書いてありました。かなり基本的なことしか書いてないのですし,日本語に特化した情報は全くないのですけど。

Cocoaにこだわらないならば,日本語の判別方法については詳しく書いてくださっている方が幾人かいらっしゃって,特に■G-PROJECT■ -日本語文字コードの判別が参考になると思います。高速に,かつ正確に判別したいのなら,こっちの方法がいいでしょう。

CかObjective-Cで書かれた判別プログラムがどこかに転がってないかと思って探したものの,どうにも見つからないので,判別プログラムを自分で書いてみることにしました。

続きを読む
 
Posted by 藤棚 at 15:28  |Comments(8)TrackBack(2) | Cocoa/Objective-C