2004年07月06日

ZiCal 0.2

この記事は古くなりました。→ ZiCal 0.2.1

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

* 配布

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

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

ソースコード:
http://noir.s7.xrea.com/pub/zaurus/zical-0.2-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.1.3からの変更点

・設定ダイアログを分離して、保存ファイルや変換開始日付をGUIで設定変更できるようにした。
・日時にタイムゾーン情報を含めるようにした (0.1.3.2)。
・-b オプション (バッチモード) を追加 (0.1.3.3)。

Posted by Hiroyuki KUROSAKI at 2004年07月06日 17:35 このエントリーを含むはてなブックマーク
この記事の TrackBack URL:
http://noir.s7.xrea.com/mt/mt-tb.cgi/79
zaurusとicalendar
Excerpt: iCal、便利そうだ。。けど当然(?)OS Xは持ってない。なので、 ZiCalとMozilla Calendarを使ってiCalみたいなことをやってみる。
Weblog: www.passa.org
Tracked: 2004年07月13日 22:51 ZiCal 0.2.1
Excerpt: ZiCalは、LinuxZaurusのカレンダーとToDoのデータをiCalen...
Weblog: Kuro-san: 更新日誌
Tracked: 2004年10月06日 21:54 ics2csv.rb
Excerpt: ZiCal 関連のものです。...
Weblog: Kuro-san: 更新日誌
Tracked: 2004年10月06日 22:42
Comments

iCal以外で使えるPC側クライアントも依然調査中です。
Emacsについては
http://noir.s7.xrea.com/archives/000070.html

Posted by: noir on 2004年07月06日 20:10

昨日、何となくチェックしていたら、ZiCal 0.2が
出てるじゃないですか!!

喜び勇んでSL-C700で挑戦してみましたが、
どうしても接続が成功しません。
ちなみにUSB接続のときのZaurusのIPアドレス、
デフォルトのポート番号なども確認済みです。
うーーん、どうしてなんでしょう?
他にチェックすべき項目はありますか?教えてください。

Posted by: TOMO on 2004年07月08日 10:25

TOMOさん、お久しぶりです。
とりあえず、USB接続したときに、MacからZaurusにpingが通るかどうか、確認してみてください。

Macのターミナルで、
ping 192.168.129.201
です。
また、
/sbin/ifconfig
で、lPアドレスが192.168.129.1のインターフェイスがあるかどうかも調べてみてください。

また、MacをDHCPでなく手動でlPアドレス設定してみるとどうでしょうか。

Posted by: noir on 2004年07月08日 13:02

ところで、
http://noir.s7.xrea.com/archives/000059.html
の最後のほうでwahahaさんが書いておられた、コマンドラインで動かすzicalという提案ですが、今回はとりあえず -b オプションで対応しましたが、最初は私も、ZaurusのPIMデータからiCalendar形式へのフィルタを作りたいと単純に思っていました。

しかしどうせならUSB接続時にiCalに直接送りたい、GUIでボタン一発で操作したい、A300とB500/C700の両方に対応したい、と、やりたいことの方向が特化して今のような形になったのです。

しかし原点に帰ると、B500/C700ならzdbatの出力をiCalendar形式に変換するフィルタさえあれば十分(A300ならXMLを直接扱えばいい)という場面もありうるわけで、逆方向の変換もできればさらに応用範囲が広がるかもしれません。

その場合、変換規則の書きやすさ、読みやすさ、扱いやすさからいうと、C++よりは、Perl, Ruby, Schemeといった言語を使うのがベストだと思います。Rubyでは途中まで作りましたが…。

Posted by: Anonymous on 2004年07月08日 16:16

さっそくのサポートありがとうございます。
実は…Zaurusと接続しているUSBポートのIPが
192.168.129.1になってまして、カレンダーのURLに
http://192.168.129.1:8990/zaurus.ics と入力して
うまくいかなかったのです。
ご指摘を受けて、MacをDHCPでなく手動で
lPアドレス設定してみようと挑戦したのですが、
192.168.129.1以外、Zaurusが接続を受け付けてくれません。。。
とっても初歩的なところで悩んでいるようで申し訳ありませんが
ご教授いただけると幸いです。

Posted by: TOMO on 2004年07月08日 18:07

IPアドレスは、
Mac側が 192.168.129.1
Zaurus側が 192.168.129.201
になるはずです。

ですので、iCalで指定するカレンダーのURLでは、Zaurus側のIPアドレス、つまり 192.168.129.201 を指定する必要があります。192.168.129.1 を指定すると、Mac自身と接続することになってしまいます。

Posted by: noir on 2004年07月08日 19:22

とっても基本的なところで躓いているのかもしれません。ご免なさい。。。
まず、Macのターミナルで、ping 192.168.129.201をやってみたところ
PING 192.168.129.201 (192.168.129.201): 56 data bytes
64 bytes from 192.168.129.201: icmp_seq=0 ttl=255 time=1.343 ms
64 bytes from 192.168.129.201: icmp_seq=1 ttl=255 time=1.112 ms
こんなのが永遠と出てきて止まりません。

/sbin/ifconfigもやってみましたが、長々と出てきて、これをペーストして良いものやら…。
ただ、この中に192.168.129.201の記述はありませんでした。
この中にヒントはありますでしょうか?

それから、カレンダー追加の作業をする際は
Zaurus自体をサーバーアドレスで接続し
内蔵メモリーのフォルダーをデスクトップに表示させた状態で行うので間違いありませんでしょうか?
よろしくお願いします。

Posted by: TOMO on 2004年07月09日 10:53

> こんなのが永遠と出てきて止まりません。
Control-C で止めましょう :-)
TCP/IP接続はうまくいっているようですね。

> ただ、この中に192.168.129.201の記述はありませんでした。

ifconfigの出力ででてくるのは、Mac側のIPアドレス(192.168.129.1)です。わかりにくかったですか?

> それから、カレンダー追加の作業をする際は
> Zaurus自体をサーバーアドレスで接続し
> 内蔵メモリーのフォルダーをデスクトップに表示させた状態で行うので間違いありませんでしょうか?

フォルダーを表示したりしなくても、たんにURL (http://192.168.129.201:8990/zaurus.ics) を指定するだけなんですが…。っと、そのまえにZaurusでZiCalを起動して、Startボタンを押しましたか?

ZiCalは「サーバ」といっても、インストールしただけで動作するようにはなっていません。通常のアプリのように、アイコンをタップして起動し、Startボタンを押してから終了するまでの間だけ、サーバとして動作します。

Posted by: noir on 2004年07月09日 14:05

お世話になります。
一応、ちゃんと正しくつなぎ、ViCalのスタートボタンを押した上で行っています。
カレンダー→追加でhttp://192.168.129.201:8990/zaurus.icsを入れたところ

エラー:ダウンロード不能
30秒間試みましたが、ホストとの接続に失敗しました。

と出てしまいます。。。

Posted by: Anonymous on 2004年07月09日 17:35

お世話になります。
一応、ちゃんと正しくつなぎ、ViCalのスタートボタンを押した上で行っています。
カレンダー→追加でhttp://192.168.129.201:8990/zaurus.icsを入れたところ

エラー:ダウンロード不能
30秒間試みましたが、ホストとの接続に失敗しました。

と出てしまいます。。。

Posted by: TOMO on 2004年07月09日 17:35

> エラー:ダウンロード不能
> 30秒間試みましたが、ホストとの接続に失敗しました。

そうですか…。

そういえば、Mac OS X USB driver (http://www.lucid-cake.net/osx_zaurus_usb/index_en.html) のバージョンはいくつのものをお使いですか? 0.2.5 以前のものだと、エラーが出て接続できなかったと思います。

Posted by: noir on 2004年07月09日 23:07

そうか!
お騒がせしています。Mac OS X USB driverのバージョンが古い可能性、大ありです。
月曜日に出社してみたら、さっそく試してみます。ありがとうございます。

Posted by: TOMO on 2004年07月10日 18:49

こんにちは。結論から申しますと、
私が職場で使っているiMacとの相性の問題でエラーが出る事が分かりました。
やはりうまくいかなかったので、他のMacでやってみたら、すんなりとうまくいったもので…。
どうもお騒がせしてすみません。一度、OSを再インストールしてみます。
どうもありがとうございました。

Posted by: TOMO on 2004年07月12日 14:27

 突然の訪問で申し訳ありません。今回初めて使ってみました。
 まだ使い始めなので不具合らしい不具合は見つかっていません。自分のメインクライアントはMac OS Xですが、スケジュール管理はリナザウで行っていました。最近複数のヒトのスケジュール合わせをもっと簡単にできないかと考えていたのですが、問題はWindowsユーザーのOutlookのスケジュールをどうやってiCalに取り込むかという点でした。でもZiCalを使えばリナザウ経由でコマンドを使わず簡単にOutlookのスケジュールをiCalに取りこめてしまうではないですか!これは便利です。部内のスケジュールを合わせるのにExchange Server使うほどの人数じゃあないし・・・。当座の問題はこれで解決しそうです。
 それから試しに趣味に使っているTurbo Linux 10DのKOrganizerに読み込ませてみました。エンコードはEUC-Jで、SDカードに書き出したzaurus.icsファイルを読み込ませました。To-Doリストも含めてほぼ問題なく読み込んでしまいました。ただ、アラームは不安定ですが・・・。もう少し使ってみて再現性をチェックしてみます。
 こんな情報でもお役に立ちますか?

Posted by: Hiroyasu Inoue on 2004年07月25日 01:25

Inoueさん、ありがとうございます。
私は孤独なZaurusユーザーなので、そんな使い方もあるのか、と驚きました。
アラームですが、今のところまだ調査不足で取り込んでいません。
いずれそのうち…。

Posted by: noir on 2004年07月25日 14:57

突然で失礼いたします.
以前にダウンロードさせていただいて試したのですが,うまくいかず,ちょうど仕事が立て込んできたこともあり尻切れトンボになってしまった者です.何かフォローを言わねばと思いつつ失礼をしてしまいました.今回,久しぶりに訪問したところ,ZiCal 0.2があったためさっそくインストールしてみたところ,うまく動作することが出来ました.仕事上の環境が大変便利になり助かります.ありがとうございます.
で,ひとつ質問なのですが,Mac側のIPアドレスは192.168.129.1でないといけないのでしょうか?固定IPでネット接続している環境なのですが,自分のIPのままでは,iCalが,
> エラー:ダウンロード不能
> 30秒間試みましたが、ホストとの接続に失敗しました。
といって,受け付けてくれませんでした.何かアドバイスがございましたらよろしくお願いいたします.

Posted by: Y_U on 2004年07月28日 21:18

Y_Uさん、こんにちは。
MacとザウルスとはUSBケーブルでつないでいますか?
それともザウルスにEthernetカードか無線LANカードかなにかを挿して、ネットワークに参加させている状態なのでしょうか。

IPアドレスはインターフェイスごとに異なる番号が割り当てられるので、たとえば、MacをEthernetでLANにつないでいて、ザウルスとはUSBケーブルでつないでいる場合、EthernetのIPアドレスとUSB接続上のIPアドレスとは異なります。

Posted by: noir on 2004年07月29日 08:13

ありがとうございます.
どうも,基本的なことが分かっていないようで恐縮です.
>MacをEthernetでLANにつないでいて、ザウルスとはUSBケーブルでつないでいる場合
はい,そのような接続環境です.
とりあえずLANからはずして,環境設定のネットワークのところのTCP/IPの欄のIPアドレスを192.168.129.1にするとiCalが追加の項目でデータを取ってきてくれました.ちなみに,そのような操作をしなくてもどちらのIPアドレスでもザウルス(A300)のHOMEはマウントできております.

Posted by: Y_U on 2004年07月29日 09:45

う~ん、EthernetとUSBは両方つないだままで別々に設定できるはずですよ。それに、A300ならDHCPで自動的にZaurusから192.168.129.1が割り当てられるので、何も設定しなくてもいいはずです。

うちの場合 (Mac OS X 10.3.4) の システム環境設定 の ネットワークの画面をキャプチャしてみました。
http://noir.s7.xrea.com/archives/images/netif1.gif
http://noir.s7.xrea.com/archives/images/netif2.gif

Posted by: noir on 2004年07月29日 11:05

EthernetとUSBの両方を別々に設定できることは知りませんでした.さっそくキャプチャしていただいた画面と同じになるように設定してみました.しかし,結果としては,Ethernetのケーブルがつながっている時はiCalがうまくZaurusにデータを取りに行けませんでした.一時的にケーブルを抜けば済むので,それほど不便は感じていませんが,もう少しいろいろと試してみようと思います.
ありがとうございました.

Posted by: Y_U on 2004年07月30日 09:00

こんにちは。ZiCalを便利に使わせてもらっています。Macとzaurusを連携して使うのは無謀か、と思っていましたが、こんなソフトが出ると本当に嬉しいです。
ところで現状では、zaurusでのデータをMacに移すことはできますが、逆(Macで変更したスケジュールをzaurusに反映させる)ことは無理なのでしょうか?
これができたら完璧ではありますが…

Posted by: John on 2004年08月10日 11:46

はじめまして、初心者なりに
パソコン(Mac)とザウルスで
予定表を共有したいと思い続けていました。
メーカホームページではできないということですが...
最近 ZiCalのことを知りました

” ZaurusでZiCalを起動する”を
もうすこし詳しく説明いただけないでしょうか

USBケーブルでTCP/IP接続(認識)は完了しています
(PowerbookG4 OSX10.3.3  と ザウルスSL-A300)
インストール用パッケージ(..ipk)をザウルスの本体メモリーに
コピーをしました

このあとどのようにすればつかうことができるのでしょうか?
簡単にご説明いただけないですか
よろしくお願いします

Posted by: kumi_00 on 2004年08月14日 08:37

kumi_00 さん、こんにちは。
「2. ZaurusでZiCalを起動する。」ですが、
インストールすると、
アプリケーションタブに「ZiCal」とキャプションがついた
白い矢印のアイコンが追加されているはずなので、
それをタップして起動します。

Posted by: noir on 2004年08月14日 12:44

早々のご回答ありがとうございます

基本的な使い方にそって接続に成功しました。
が...
基本的な使い方 4.1の
ToDo の項目を削除 チェックボックスをオフにし、追加 ボタンを押す。
接続が成功すれば、「追加」という名前のカレンダーが追加されるので、ダブルクリックして zaurus に名前を変える。
のところまで完了したのですが そのzaurusカレンダに新規イベントを追加しようとすると
読み出し専用カレンダ(横に横線矢印がついています)と表示されて書き込みができません この状態はどのように対処すればよいのでしょうか?

またZiCalの動作設定
変換開始日付とはどのような使い方をするものなのですか?

2点 ご説明よろしくおねがいします

Posted by: kumi_00 on 2004年08月15日 03:11

kumi_00さん
Johnさんの要望にもありますが、ZiCalは現状、Zaurus→Macの一方向の変換しかできません。
そのため、MacのiCalでイベントやToDoを追加する場合には、"zaurus" とは別のカレンダーを選んで、そちらに追加することになります。もちろんZaurusのほうのカレンダーには反映されません。

「変換開始日付」というのは、ZaurusのカレンダーからMacへ送り込むイベントの範囲を絞るためのものです。以前、Zaurusで大量のイベントを登録しているために変換に非常に時間がかかるというご意見があったのでつけました。
これは今のところA300の繰り返しなし日程についてのみ有効です。

Posted by: noir on 2004年08月15日 16:45

ついでに、Johnさんの要望されている「同期」についてですが、iSyncやSyncMLについて調べなければならず、そこまでやる気がなかったので、取り組んでいません。
Googleで検索してみると、海外にはいくつか、iSyncに対応するためのプロジェクトがあるみたいですが……。

Posted by: noir on 2004年08月15日 17:08

noirさん 初めまして
ZiCalでのコマンドラインについてなのですが
zical -bとした場合、GUIで設定した変更日付は反映されず1970年からのスケジュールが出力されてしまいます。
GUIでの変更日付の設定を反映するようにするか
コマンドラインオプションに変更日付を設定できるようにしていただけるとうれしいのですが。
(特に後者の方が・・・)

お考えいただけないでしょうか?

Posted by: oue on 2004年09月05日 22:34

初めまして,noirさん。ZiCalを使用しております。
質問と要望をさせてください
コマンドラインでZiCal -bにより作成したzaurus.icsはGUIのZiCalのconfigで設定した「変換開始日付」が反映されていないように見えます。
コマンドラインで変換開始日付を設定できるようにできないでしょうか。
 現在,当方がやろうと思っているのは,Zaurusでネットワーク接続を行うごとにZiCalにてzaurus.icsを作成,過去のzaurus.icsとの差分をとり,それを自分のサーバーにコピーして,サーバー側で差分を吸収して,WebDAVにより複数のMacで公開するというものです。
 ネットワークの速度を考慮して差分を転送するという仕様にしたのですが,zical -bでのzaurus.icsの作成に時間がかかっているようです。
ご考慮願えないでしょうか?

Posted by: bal on 2004年09月06日 06:53

回答が遅くなってすみません。
「変換開始日付」ですが、今のところ、XML版 (SL-A300用) でのみ対応しています。
変換が遅いのも、原因がつかめているのですが、なかなか対応できずにいます。
もうしばらくお待ちください。

Posted by: noir on 2004年09月17日 15:01

初めまして、Zicalを使わせて頂いています。
Mac歴は長いですが、知識は素人です。Zaurusはなんも知りません。
最近はiCalを自宅や仕事場の4台でsyncしたり読込んでカレンダーを共有しています。Zaurus860を使ってはいますが、Zaurusに行事を移すのがめんどうです。理想はシンクロですが、Zaurus→MacよりMac→Zaurusの方が私的には、便利なのです。
メインのMacにMergeCal1.0Jというスクリプトがあり、好きなカレンダーを1つにまとめるものです。
このカレンダーファイルをZaurus用に変換して使うことはできないものでしょうか?

Posted by: ita2 on 2004年10月04日 01:06

ita2さん、こんにちは。

iCalのカレンダーファイル (.ics) をZaurusのカレンダーに変換して取り込む方法ですが、yakty さん作の zdbat を使えば、

.ics ―[ ※ ]→ CSV ―[ zdbat ] → カレンダー

の※にあたる変換スクリプトを作ればよさそうです。
誰か作ってないでしょうか…。

Posted by: noir123 on 2004年10月04日 09:18

iCalendar形式のファイルを読み込むスクリプトをいろいろ試していたら、ZiCalの出力形式が一部規格違反だったことに気がつきました。

とりあえず修正したものを
http://noir.s7.xrea.com/archives/000109.html
で公開しました。

Posted by: noir123 on 2004年10月06日 22:02
Post a comment

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

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


情報を登録する?