2004年10月06日

ZiCal 0.2.1

ZiCalは、LinuxZaurusのカレンダーとToDoのデータをiCalendar(RFC2445)形式に変換して、ネットワークごしに転送するためのサーバプログラムです。

* 配布

ZiCalは、GNU General Public Licenseにもとづいて利用できます。

インストール用パッケージ:
http://noir.s7.xrea.com/pub/zaurus/zical_0.2.1_arm.ipk

ソースコード:
http://noir.s7.xrea.com/pub/zaurus/zical-0.2.1-src.tar.gz

* 基本的な使い方

1. Mac (Mac OS X 10.2以上) とZaurusをTCP/IP接続する。

※ファイル保存のみが必要な場合は、Macに接続しなくてもかまいません。
※USBケーブルでTCP/IP接続する方法は、海上忍「OS Xハッキング! 第62回 OS XでLinux Zaurusを使う(1)」 http://pcweb.mycom.co.jp/column/osx/062/index.html に詳しく載っています。
※もちろんEthernet経由や無線LAN経由でもかまいません。
※SL-C860をMacにUSB接続すると、SDカードが「USBストレージ」として認識されてしまい、TCP/IP接続ができないそうです。

2. ZaurusでZiCalを起動する。

※File メニュー → Config... で以下の動作設定を変更できます。
・TCP接続ポート番号 (デフォルトは8990)
・文字コード (デフォルトはUTF-8)
・Zaurus側で保存するiCalendar形式ファイルのパス (デフォルトは $HOME/Documents/text/calendar/zaurus.ics)
・イベントのLOCATION属性をSUMMARY属性に加えるかどうか (デフォルトはオフ)
・出力するイベントの開始日 (SL-A300でのみ有効) (デフォルトは1970-01-01)
※0.1でデフォルトの設定を変更してお使いの方は、一部設定名称が変わっているため、再度設定してください。

3. Startボタンを押す。

※まず、iCalendar形式ファイル (zaurus.ics) がZaurus側に保存されます。次に "Now waiting for client..." と表示されて、ネットワークの待ち受け状態になります。ファイル保存だけが必要で、ネットワーク接続が不要な場合は、この段階で終了してかまいません。

4. MacでiCalを起動し、接続する。

4.1 (初回) カレンダー メニューの 追加... を選び、カレンダーのURL に http://192.168.129.201:8990/zaurus.ics と入力する (192.168.129.201 はUSB接続のときのZaurusのIPアドレス、8990はデフォルトのポート番号)。
ToDo の項目を削除 チェックボックスをオフにし、追加 ボタンを押す。
接続が成功すれば、「追加」という名前のカレンダーが追加されるので、ダブルクリックして zaurus に名前を変える。

4.2 (2回目以降) カレンダーから zaurus を選び、カレンダー メニュー → 更新 (Command-R) を選ぶ。

5. 終了する。

* ターミナルでの使い方 (バッチモード)

コマンドラインで zical -b を実行すると、GUI画面を表示せずに、zaurus.icsを保存して終了します。このときネットワーク接続はしません。

**注意点

(1) iCalendar形式への変換について

iCalでの表示を考慮した変換を行っています。

・設定画面 (File メニュー → Config) で「SUMMARY@LOCATION」チェックボックスをオンにすると、「場所」を「件名」の後に @ に続けて挿入します。iCal では「場所」は情報パネル (Command-I) に表示されますが、カレンダー画面本体に場所も表示したい場合にはオンにします。
・終日日程の毎日繰り返しは、開始日 (DTSTART)・終了日 (DTEND) 指定に変更しています。

カテゴリーとアラームには対応していません。

(2) PIMのデータベース形式について

ZiCalはSL-A300 (XML形式) と SL-B500/C700以降 (BOX形式) の両方に対応しています。

「ソフトウェアの追加/削除」でのインストール時に、 /opt/QtPalmtop/lib/libzdtm.so が存在すれば zical_zdb を、存在しなければ zical_xml を、/opt/QtPalmtop/bin/zical からシンボリック
リンクしています。

SL-B500/C700以降で datebook2 (XML版) を使用している場合は、ターミナルで、

su
rm /opt/QtPalmtop/bin/zical
ln -s zical_xml /opt/QtPalmtop/bin/zical

を実行すれば、XML形式データのほうを読み込みます。

(3) セキュリティについて

ZiCalを起動してStartボタンを押すと、ネットワークからの接続待ち状態になります。このとき、USBケーブル接続以外にLAN接続、インターネット接続を行っている場合には、外部から不正にデータを取得されるおそれがあります。


*既知の問題

iCalを起動したとき、前回ZiCalから読み込んだデータが表示されないことがあります。日表示と月表示を切り変えるなどすると回復するようです。

*お願い

iCalendar形式への変換は、十分にテストしたつもりですが、もしおかしな点を発見されましたら、ぜひご連絡ください。

また、iCal以外のPIMアプリケーションへの読み込みに成功、または失敗された場合についても教えていただければ幸いです。

*参考資料

RFC2445 "Internet Calendaring and Scheduling Core Object Specification (iCalendar)
http://www.ietf.org/rfc/rfc2445.txt

ザウルス宝箱Pro シャープライブラリ ダウンロードのページ
http://more.sbc.co.jp/sl_j/doc/reference/20021227/doc-sharp/index.html

LinuZau ToolBox Wiki - zdbat
http://yakty.s31.xrea.com/cgi-bin/wiki/linuzau/wiki.cgi?zdbat
BOX形式PIMデータの読み込み方法について参考にさせていただきました。

* バージョン 0.2 からの変更点

・出力データに UID と DTSTAMP を追加。

Posted by Hiroyuki KUROSAKI at 2004年10月06日 21:53 このエントリーを含むはてなブックマーク
この記事の TrackBack URL:
http://noir.s7.xrea.com/mt/mt-tb.cgi/108
ics2csv.rb
Excerpt: ZiCal 関連のものです。...
Weblog: Kuro-san: 更新日誌
Tracked: 2004年10月06日 22:57 Site Opened
Excerpt: Although the purpose and the actual usage of ZiCal is very simple, you might...
Weblog: ZiCal
Tracked: 2005年01月09日 14:50 ZiCalの英語サイト
Excerpt: ZiCal ZiCalを英語で紹介するサイトを始めました。 ...
Weblog: Kuro-san: 更新日誌
Tracked: 2005年01月09日 22:54
Comments

iCal以外で多少試してみましたので報告します。環境はいずれもWindowsXP SP2です。

- Mozilla Sunbird 0.2b:試した範囲では、HTTPでのアクセス、ファイルからの読み込みともに問題なく動作する。文字コードはUTF-8。
- Mozilla Calendar 20041112:文字コードはUTF-8。アクセスも読み込みもできるが日本語がかなりの頻度で文字化けする。ただし、これはCaledar側のバグと思われる。
- OutlookXP SP3: 文字コードはUTF-8。OutlookのiCalendar対応がお話にならないレベル。まずもってMETHODの定義がないと読もうともせず、それを追加しても「予定表」へのドラッグアンドドロップでは最初のイベントしか読まず、インポートすると(ZiCalの出力形式では)時刻をUTCと思い込み、データがある程度大きくなるとOutlookそのものが落ちる。メールに添付されてきた単一イベントが扱えればいいという態度かと思われる。どうせ使わないからいいのだけれど・・・

以上です。
個人的にはiCalendar→Zaurus形式もあると嬉しいなあなどと思ったりしてます。

Posted by: やまき on 2004年12月03日 19:40

いろいろ試していただき、ありがとうございます。

Mozilla Calendar (Sunbird) はときどき私も試してますが、
やっぱり文字化けしますね。Appleが提供している祝祭日データ
などを読み込ませたときは文字化けしなかったので、何か原因が
あるんでしょうけど、特定できていません。0.2bは大丈夫なんですか? 今度また試してみます。

あと、日付時刻はやっぱりUTCにしてしまったほうがいいんで
しょうかね…。タイムゾーン属性を明示するだけではダメなケースが
多そうですので。

iCalendarだけじゃなくvCalendar形式にも対応すれば、
ケータイのPIMなんかにも読み込めるのかもしれないですね。

iCal → Zaurus ですが、ザウポケ慶事板
http://www.hi-ho.ne.jp/morita-masahiro/bbs/index.shtml
に、ZMacSyncという新しいソフトの話題が載っていました。
http://www.dsitri.de/wiki.php?page=ZMacSync

また、iCalendar形式から zdbat で扱える CSV 形式への変換は、別記事
http://noir.s7.xrea.com/archives/000110.html
で簡単なRubyスクリプトを紹介してます。よろしければそちらも
ご覧ください。


Posted by: noir123 on 2004年12月03日 22:52

さっそくのお返事ありがとうございます。

CalendarとSunbirdでは挙動が明らかにちがいました。
Firefox等との組み合わせに問題があるのか、そもそもコードが違うのかはわかりませんが。

タイムゾーンについてですが、iPodでの問題を指摘されている方もおられるようですね。
UTCにしたらしたで、処理の甘い国産アプリ(あるのかどうか知りませんが)がトラブったり
するのがこわいといえばこわいかもしれません。

ZMacSyncは私自身はMac使いではないため使えないのですが、
Macユーザには朗報でしょうね。アプローチとしてはZiCal路線のほうが好きですけど。
ics2csv.rbには気付いてませんでした。試してみます。

Posted by: やまき on 2004年12月04日 12:20

いつのまにかZaurus Software Indexに登録されている…。
英語ドキュメントも書かねば。

Posted by: noir123 on 2004年12月19日 12:47

「KO/Piを試してみる」のほうにも書きましたが、ZiCalで書き出したデータをKO/Piで読み込んでみました。

文字化けや時刻のズレなどはなく、その点ではホッとしましたが、1つだけ問題が。1日だけの終日日程が、翌日まで続いているように解釈されてしまうようです。

Posted by: noir123 on 2005年01月05日 21:57

ZiCalで出力したデータをKO/Piにインポートすると、
終日日程が翌日まで続いて表示されてしまう問題ですが、
原因がわかりました。

ZiCalでは、というか、参考にしたiCalの出力データでは、
終日日程を

DTSTART;VALUE=DATE:20050106
DURATION:P1D

のように表現していますが、KO/Piでは

DTSTART;VALUE=DATE:20050106
DTEND;VALUE=DATE:20050107

のように表現していて、前者のようなデータをインポートすると
DURATIONプロパティが落ちて、DTSTARTだけ残ってしまう
ためでした。

ザウルス標準カレンダー・ToDoからKO/Piにデータ移行したいときに
適当なツールというのは他になさそうなので、
このKO/Piの出力形式をサポートするべきかどうか、悩みます。

Posted by: noir123 on 2005年01月06日 23:27

間違い。KO/Piだけでちゃんとデータ移行はサポートして
いることがわかりました。

Posted by: noir on 2005年01月07日 12:23

ZiCal (zdb版) のSL-C3000対応について、気になることが。
Qualendar作者さんのページ
http://ichitokumei.hp.infoseek.co.jp/qualendar/c3000.txt
によると、「例外予定」なるものがSL-C3000の標準カレンダーに
導入されているとのことです。
たしかに、zdbat datebook -i を実行すると、EXFL,EXCI,EXDTという見たことのない
フィールド名が表示されます。
ZiCalも今のところこれには未対応です。

Posted by: noir123 on 2005年01月09日 01:34

zical -b でバッチモードでファイルを保存すると、
TZID=Asia/Tokyo
にならず、文字化けした状態になるのですが...

Posted by: かずのこ on 2005年04月08日 13:13

かずのこさん、こんにちは。
TZIDは、環境変数TZから取るようになっています。
コンソールなどのコマンドライン環境ではTZが設定されて
いると思いますが、もし、
echo $TZ
とやってみて、何も表示されない場合 (さらに、ザウルスを
東京標準時で使用している場合) は、
TZ=Asia/Tokyo zical -b
と強制的に設定してみてください。

文字化けのほうは、保存したファイルのほうで起こっている
のでしょうか。それとも、それを読み込んだアプリケーションの
側で起こっているのでしょうか。
もし、lv をお持ちでしたら、
lv -Iu8 ~/Documents/text/calendar/zical.ics
を実行してみて、UTF-8 (デフォルトの文字コード) で
保存されているかどうか確認してみてください。

Posted by: noir123 on 2005年04月09日 06:24

ありがとうございます。上記で正常になりました。言葉足らずでしたが、文字化けは、タイムゾーンのところに変なデータが入って、文字化けのようにみえるということです。漢字コードはUTF-8で正常に見えています。
TZの設定で、GUIから実行したのとおなじデータとなりました。これで、母艦から自動的に、zicalでデータを取ってこれます。

Posted by: かずのこ on 2005年04月12日 09:26

ZiCalの出力データを、Konfabulator 2.1.1のPIM Overviewウィジェットに読み込ませてみました。
次のような条件にマッチする項目があると、何も表示されなくなってしまうようです。

* 月1回の繰り返しで、第何週の何曜日と指定
* 繰り返しの終了日が指定されていない、または未来の日付が指定されている

これはMozilla Sunbirdの出力データでも同じ結果でした。

Posted by: noir123 on 2005年09月02日 18:43
Post a comment

サイン・インを確認しました、 さん。コメントしてください。 (サイン・アウト)

(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


情報を登録する?