
動作は POSE、Palm OS Simulator、 T-600C および Visor Deluxe で確認した。CLIE ハイレゾモード (High Resolutions 320x320) とともに、一応 OS5 高解像モード (High Density 320x320) にも対応している。 オリジナルにあった OS5 デバイスの「日1 (Date)」表示で クラッシュする問題も修正してある。 ただ、OS5 の SDK を使う都合上、オリジナルでは対応している Handera 高解像モードのサポートは外した。 その他の変更点、留意点は以下の通り。
なお、CLIE の OS4 以下のハイレゾデバイスでは動作が若干鈍いかもしれない。
CLIE ハイレゾモードに限っては速度を稼ぐために
オフスクリーン経由でビットマップをコピーするようにはした。
これで T-600C ならまぁまぁストレスなく動くかなといった程度だ。
OS5 デバイスのネイティブ高解像モードについては、実機がないので
どの程度の速度で動くのかは分からない。
ライセンスはオリジナルに基づき GPL。完全無保証。 私の日本語メッセージ翻訳は、GPL ライセンスではなかった v.2.22 における日本語メッセージ翻訳を元にしているが、 これについても 原著作権者である吉川さんから GPL の元での公開にご了解をいただいた。 また、ハイレゾ用のビットマップフォントには GPL ライセンスで利用できる FreeSans を用いた。 ソースは新たに追加したビットマップフォントを含めすべてをまとめたものと、 ソースのみのパッチも置いておく。
| オリジナルソース | bigclock_src_2.83.tar.gz |
| 改変ソース | bigclock_src_2.83c-ye3-1.tar.gz |
| パッチ | bigclock_ye3-1.patch |
追記: アラーム時にクラッシュするバグがあったため、 これを修正した版 (2.83c-ye3.1) に差し換えた。(2006/3/25 17:58)
追記2: ここで配布している BigClock を CLIE TH55 で動作させていただく機会があった。その動作は予想以上に速かった。 ちょっと切ないくらい。 おそらく OS5 デバイスに関しては動作速度が問題になることはないだろう。 (2006/4/9 23:45)
追記3: 若干のバグを修正し、OS4 のアテンション・マネージャに対応した版を公開した。 (2006/4/14 00:40)
2006/03/21 (Tue) 18:27 | タグ: computer bigclock palm | 固定リンク
TVscape は CLIE 上でテレビ番組表を閲覧するソフトウェアである。 専用の番組表データが So-net のテレビ王国というサイトで 配信されている。 TVscape はこの番組表データを直接ネットワークを介して、 あるいは Windows 専用のコンジットを介して取得するが、 Windows 以外を介してこの番組表データの取得するプログラムも いくつか公開されてる。
最初に見付けたのは Mac OS X 用の AYAX TV。 そのネタ元は「TVscape」を Windows 以外でも使う Tips で紹介されている ruby スクリプトのようだ。 このページからのリンクが切れているがスクリプト本体もあった。 この ruby スクリプトを使えば、プラットフォームを問わず ruby さえ動けば番組表データを取り寄せることができる。たまに使うならこれで十分。 ちなみに、さらに大元を探すと ZOB Network BBS: Palm OS 関係 その2。 2002 年かぁ。もう 4 年も前の話だ。
ただ、ついでに GNU/Linux 上の J-Pilot で自動的にデータを取り込むようにしたいなと思ったので、 ruby で書けない私は perl で書いてみた。 私の書いたスクリプト tvscape.pl だと、 Hotsync 前に実行するだけで バナーデータの取得や J-Pilot によるインストールまで面倒見てくれる。 まぁ、ずっと前に Web クリッピングがこけたように 相当時代遅れな話だが、何かの役に立つかもしれない、結局楽しんでいるんだし、 そう思っておこう。
追記: 2006 年 11 月 30 日に TVscape の CLIE 向けデータ配信が終了するとのこと。 詳しくは 「TVscape」用テレビ番組情報提供終了のお知らせ をどうぞ。
こんな記事を書いておいてなんだが、 私は結局この TVscape はほとんど使っていなかったりする。 せめて番組の検索ができればなぁとは思うけど、 そもそも私はテレビをウェブ上の番組表が利用できる PC で見るし、 なおかつソフトウェアとして 画面上に番組情報が表示される tvtime + xmltv を使っているせいもある。 携帯でテレビならびに番組表を見る時代だ。 TVscape の Palm 用クライアントは確かに時代遅れである。
ただ、テレビ番組表の xml データなどオープンげに利用できるデータがあっても、 Palm のクライアントではそういうのを利用できずじまいなのは少し残念。 ネットワークに弱いところが結局ネックになり、 オープンな規格にマッチした流れにも乗りきれなかったというところだろうか。 (2006/5/10 16:09)
2006/03/07 (Tue) 19:01 | タグ: computer jpilot palm | 固定リンク
Palm 上のデータを GNU/Linux 上で閲覧・編集するなら J-Pilot が定番である。 ただ、私の好みからすると使い勝手はちょっと……というところがある。 他の選択肢としては Evolution + gnome-pilot-conduits とか、 jppy、 KOrganizer といったものもあるが、 J-Pilot からの乗り換えを考えるとなると結構微妙だったりする。 まぁ同期や編集は J-Pilot で行なうとしても、閲覧ぐらいはもうちょっとさくっとしたい。 ということで、Palm の予定表と ToDo のデータの閲覧だけは、 GNOME デスクトップの GNOME 時計アプレット (カレンダー)でも行なえるようにしてみた。
GNOME 時計アプレットは、Evolution で扱う iCalendar 形式のデータを evolution-data-server 経由で読込み、表示を行なってもくれる。 DatebookDB.pdb と ToDoDB.pdb を iCalendar 形式に変換さえすれば、 時計アプレットで (もちろん iCalendar 形式のデータを扱う Evolution や iPod などでも) 予定と ToDo が表示できる。 J-Pilot には iCalendar 形式へのエクスポート機能があるが、 コマンドラインで直接実行したり同期時に自動変換することは 今のところ基本的にはできない。 また文字コードの扱いが一部おかしいようにも思える。
やむなく、あれこれ探してみると jpilot-python を利用した変換スクリプトなどもあった。 しかし細かな制御もしたかったので、車輪の再発明かなと思いつつも p5-Palm を利用した変換スクリプトを perl で書いた。 私が必要だと思う範囲での変換スクリプトなので、汎用的なものではない。 タイムゾーンをちゃんと扱えていないので、 Gnome 上でこのデータの時刻を正しく表示するには Evolution 上でタイムゾーンを設定する必要もある。 またアラームのデータも変換していない。
| pdatebook2ical.pl | DatebookDB.pdb → iCalendar |
| ptodo2ical.pl | ToDoDB.pdb → iCalendar |
HotSync 後にこれらのスクリプトを実行し evolution-data-sever に kill -HUP すれば、 GNOME 時計アプレット (と Evolution) で Palm の予定表と ToDo が閲覧できる。 実際のところは、udev の Hotplug 機構で呼び出されるスクリプトから、 上記の二つのスクリプトを呼び出すようにすればよい。 J-Pilot の pc3 ファイルに何とか書き込めば ToDo の同期もできそうだけど、まぁちょっと予定を確認するぐらいならこれで十分便利かな。
なお、変換したファイルを iPod の所定のフォルダにコピーすれば、 カレンダーおよび Todo を iPod 上でも閲覧できる。ただ第三世代 iPod では、 Location フィールドは無視され、Todo は文字コード順に並べられる。 最新の iPod ではどうか分からないが、変換時には注意が必要だろう。
追記: 日指定の月ごとの繰り返しが、 適切に変換されていなかった問題を修正した。(2006/11/8 02:26)
2006/02/25 (Sat) 01:46 | タグ: computer jpilot palm | 固定リンク
BigClock はその名の通り大きな文字で表示してくれる Palm 向けの時計ソフトウェアである。 その機能については Muchy.com のレビューに詳しいが、 タイマーやらストップウォッチ、カレンダー、世界時計などなど機能てんこもりで、 Palm ソフトウェアとしてはメジャーだったと思う。 v.2.22 だと日本語版もあっていろいろ重宝してきたのだが、 新しい版 (といっても二年以上前) はこれまた日本語化されていない。 またオリジナルはハイレゾに未対応。最新版だと画面描画のやり方ゆえに ハイレゾアシストも微妙に効かない。 なお、ハイレゾに対応した製品版 (995 CLOCK) があるが日本語化はされていない。
ということで Progect に引き続いてこれまたいまさらだが、 まずは日本語メニューおよびメッセージをそれなりに 表示するように改変してみた。 またオリジナルを CLIE で利用すると アラームからの復帰時に画面が乱れるが、 この問題を修正する Ling Nero さんによるパッチも取り込んだ。ただ、まだハイレゾには対応していない。 ご注意をば。 オリジナルは GPL に基づき頒布されているものなので、 バイナリ (bigclock-ja.prc)と合わせ、 オリジナルソースとパッチも置いておく。 完全無保証だが、よろしければどうぞ。
なお、実はハイレゾ対応にも手をつけてしまってはいる。 Palm OS Simulator が wine 上で動作することを知ってしまったからだ。wine すごい。 時間に余裕があればハイレゾ対応版を公開できるかも。
追記: ここで公開していたものの翻訳は v.2.22 の日本語メッセージの翻訳を元にしたものでしたが、 公開時にはオリジナルの翻訳者が分からず、 その著作権表記ならびにライセンスが不明確なまま公開してしまっていました。 しかし、オリジナルの翻訳者が Tetsuji Yoshikawa さんであることが分かりましたので、 改めて著作権をクリアにしたものを公開できるまで、 こちらで公開していたものは一旦公開を停止します。 オリジナルの翻訳をされた Tetsuji Yoshikawa さんをはじめご迷惑をお掛けしてしまった方、 申し訳ございませんでした。 (2006/3/18 07:45)
追記2: BigClock v.2.22 で日本語メッセージの 翻訳をされた吉川さんにご連絡したところ、 吉川さんの翻訳ならびにその翻訳を元にした私の翻訳箇所を GPL にて公開させていただけることになりました。 (BigClock のライセンスは v.2.22 の時点では GPL ではありませんでした。) 吉川さんの著作権表記を追加した版に差し換えて再度公開します。 バージョンは 2.83c-ye1.2 になります。 日本語版 v.2.22 の翻訳に携わり、 またこの度の GPL での公開に快くご了解くださった 吉川さんに改めて感謝申し上げます。 ありがとうございました。 (2006/3/19 21:20)
追記3: CLIE および OS5 のハイレゾモードに対応した版を公開しました。 (2006/3/21 18:30)
2006/02/10 (Fri) 13:00 | タグ: computer bigclock palm | 固定リンク
Progect という Palm 用のソフトウェアがある。 簡単に言えばグループ分け、 階層分けのできる Todo (メモ) ソフトウェアだ。 この Progect、リリース版は v.0.29 (2003/12/15) まで、 テクノロジープレビュー版は v.0.30b6 (2004/08/31) まで公開されており、 一応日本語版も収録されている。 ただ、残念なことにいずれの最新版でも メニューなどの日本語がちゃんと表示できていない。 オリジナルの英語メッセージがあれこれ変っているのに追従できていなかったためだ。 また一昨年からか開発そのものもほぼ止っているようだ。
まぁ割りに良く使うソフトウェアなので、いまさらながら 日本語メニューおよびメッセージを それなりに表示するように改変してみた。 面倒なことはなるべく避けたいので、 リリース版である v.0.29 に手を入れることにする。 その際、既存の翻訳も若干ながら標準ソフトウェアに合わせたり、 私の好みで変えてみたりする。 また UI の見栄えも多少変更する。UI の変更で目につくのは (vi 準拠にしようか迷ったのだが) 「タスクの移動矢印」の変更だろう。 GPL ということで、 バイナリ (progect-ja.prc)と合わせ、 オリジナルソースとパッチも置いておく。 完全無保証だが、よろしければどうぞ。
追記1: グラフィティなりで直接文字入力をして新規タスクを作成する際、 公式バイナリには最初の一文字が漢字変換の対象とならない問題がある。 ただ、この問題はソースレベルでは対処されている。 こちらで公開しているものはこの問題に対処するコードを有効にしたものに差し換えた。 (06/02/11 14:50)
追記2: 上記の問題だが、結局ちゃんと対処されていないようだ。 タスクを選択していない時に文字入力で新規タスクを作成するとフリーズしてしまう。 ひとまず元のものに差し換えた。問題のあるバージョンは ye1.1、問題のない元のバージョンは ye1 である。 ダウンロードしてお試しになった方々、すみません。 (06/02/25 23:40)
2006/02/02 (Thu) 22:31 | タグ: computer palm | 固定リンク
CLIE で画像を持ち運ぼうと思い立つ。 160x160、グレースケール 4 階調 (実質 2.5 階調みたいなもの) の Visor では、 画像の閲覧はかなり厳しいものがあったが、 ハイレゾ 320x320、16 bit ハイカラーの CLIE なら画像の閲覧も十分実用になる。 ただ OS 4.1 のこの機種では jpeg を直接扱うことは実質できないので、 Palm 向けの画像形式への変換が必要になる。
Palm 向けの画像閲覧ソフトや変換ソフトはいろいろあるけど、 GNU/Linux 上で画像変換を行なえ、 かつ閲覧ソフトが無料 (フリーとは言わないにしろ) のものは多くはない。 Visor では netpbm 収録の pgmtoimgv で Image Viewer 形式に変換した画像を TinyViewer で閲覧していたが、同様のことをハイレゾ、ハイカラー対応の CLIE でも行ないたいわけだ。
いろいろ探したり、検討してみたが、閲覧ソフトとしては CLIE に内蔵されて いる PictureGear Pocket を使うことにした。 というのも PictureGear Pocket で扱う画像形式 への UNIX 用変換ソフトを見付けたからだ。 PictureGear Pocket は、PictureGear Pocket Format (pgpf) という 専用の画像形式を扱うが、Patrick Reynolds 氏作の pgpf-tools なら ppm 形式とこの pgpf 形式との相互変換ができる。 例えば jpeg から pgpf 形式への変換は、コマンドラインから以下のように行なう。
% djpeg foo.jpg | ppm2pgpf 'Image description' > foo.prc
素晴らしい。変換した prc ファイルを CLIE に転送すれば、 PictureGear Pocket でちゃんと閲覧できる。 なお、Palm 上で利用できる pgpf 形式の無料閲覧ソフトとしては Polar もある。
ただ、この ppm2pgpf での変換ではちょっと気になることがあった。 ppm2pgpf は PictureGear Pocket 用のサムネイルを生成してくれるが、 元画像が正方形でない場合サムネイルの背景色が黒く、 またその位置がセンタリングされていない。 Windows 上の無料変換ソフト PGPmaker は、サムネイルの背景色は指定できるし、 サムネイルのセンタリングもしてくれる。 ということで、ソースを弄ってみた。
まず背景色については簡単。関数 ppmcrop の最後の三つの引数に RGB をそれぞれ 指定すれば良い。私は白にした。
--- ppm2pgpf.c.org 2006-01-07 18:03:29.000000000 +0900
+++ ppm2pgpf.c 2006-01-06 12:49:51.000000000 +0900
@@ -89,7 +89,7 @@
ppmscale(&thumb_ppm, 44, 44*ppm.height/ppm.width);
else
ppmscale(&thumb_ppm, 44*ppm.width/ppm.height, 44);
- ppmcrop(&thumb_ppm, 44, 44, 0, 0, 0);
+ ppmcrop(&thumb_ppm, 44, 44, 255, 255, 255);
if (indexed) ppmdither(&ppm);
ppmdither(&thumb_ppm);
一方、サムネイルのセンタリングについてはちょっと面倒くさいが、 適当にソースを改変した。 ちゃんと検証したわけではないので問題があるかもしれないが、 とりあえずは意図したように動いているようだ。
--- libppm.c.org 2006-01-07 18:03:09.000000000 +0900
+++ libppm.c 2006-01-07 01:01:21.000000000 +0900
@@ -172,6 +172,7 @@
PEL *nimg, *exp;
int x, y;
int uh, uw;
+ int offset_x, offset_y;
if (p->greyscale) {
fprintf(stderr, "Cropping of greyscale images not supported.\n");
@@ -185,22 +186,19 @@
uh = (nh < p->height) ? nh : p->height;
uw = (nw < p->width) ? nw : p->width;
- for (y=0; y<uh; y++) {
- memcpy(&nimg[y*nw*3], &p->data[y*p->width*3], uw*3);
- exp = &nimg[y*nw*3+uw*3];
- for (x=0; x<nw-uw; x++) {
- *exp++ = bg_r;
- *exp++ = bg_g;
- *exp++ = bg_b;
- }
- }
- exp = &nimg[uh*nw*3];
- for (x=0; x<(nh-uh)*nw; x++) {
+ exp = &nimg[0];
+ for (x=0; x<nh*nw; x++) {
*exp++ = bg_r;
*exp++ = bg_g;
*exp++ = bg_b;
}
+ offset_x = (nw-uw)/2*3;
+ offset_y = (nh-uh)/2*3*nw;
+ for (y=0; y<uh; y++) {
+ memcpy(&nimg[y*nw*3+offset_x+offset_y], &p->data[y*p->width*3], uw*3);
+ }
+
ppmdestroy(p);
p->width = nw;
p->height = nh;
私は Debian を使っているので、上記パッチを当てたパッケージをでっち上げた。 よろしければどうぞ。
ついでに、毎回コマンドを叩くのは面倒なので 簡単なスクリプトも書いてみた。実行には ImageMagick が必要だが、ImageMagick で扱える画像なら何でも変換し、 jpilot によるインストールの予約まで行なう。
#!/bin/sh
tmp_dir="/tmp"
while [ $# -gt 0 ]; do
file=${1##*/}
name=${file%.*}
title=`echo $name | nkf -s`
tmp="$tmp_dir/$name.prc"
size=`identify -format "%w %h" $1`
if [ ${size% *} -gt ${size#* } ]
then
resize="320x"
else
resize="x320"
fi
convert $1 -resize $resize ppm:- | ppm2pgpf "$title" > $tmp
echo $tmp >> ~/.jpilot/jpilot_to_install
shift
done
このスクリプトを ~/.gnome2/nautilus-scripts/ におけば、 Nautilus 上で選択した画像ファイルの変換およびインストール予約もできる。 画像についてもこれでようやく Windows 並みかな。
2006/01/18 (Wed) 01:50 | タグ: computer jpilot palm | 固定リンク
Clie を買い、久しぶりに HotSync が出来るようになったので、 Debian/GNU Linux 上で HotSync ボタン一つで HotSync 出来るように設定をしてみた。 HotSync そのものには J-Pilot 付属の jpilot-sync を使う。 かつてこの設定を行なったことはあったのだが、 半年も HotSync 出来ない間に udev やらの変更があったようで若干手直しが必要だった。 例えば、以前は hotplug というパッケージがあったがいつの間にか消えていた。 今は udev で一括して管理するようになっているようだ。
あらかじめ /etc/udev/udev.rules の KERNEL の指定を直しておく。 Debian の udev 0.076-3 だと KERNEL=="ttyUSB*" となっているが、 これだと ttyUSB0 に pilot への symlink が張られてしまうことがある。
BUS=="usb", KERNEL=="ttyUSB[13579]", SYSFS{product}=="Palm Handheld*", \
SYMLINK+="pilot"
そして、/etc/udev/rules.d/custom.rules というファイルをでっち上げ、以下を記述する。 SUBSYSTEM の指定がないと、二つの tty 向けを含めて三重にスクリプトが呼ばれてしまうようだ。 それゆえ、/etc/udev/udev.rules の記述とは別に用意してみた。
SUBSYSTEM="usb_device", SYSFS{product}=="Palm Handheld*", RUN+="/etc/hotplug/usb/clie"
実際に呼ばれるスクリプトは、以前 「USB をシリアルコンソールに」を参考にして良く調べもせず適当に用意したものを、 /etc/hotplug/usb/clie として使い回した。 PAM がらみの問題があるとかないとかいう話もあったようだが、 私の環境では問題ないようだ。
#!/bin/sh
if [ "${ACTION}" = "add" ]
then
su yendo -c jpilot-sync
if [ "X$REMOVER" != "X" ]
then
echo '' > $REMOVER
echo '#!/bin/sh' >> $REMOVER
echo 'killall jpilot-sync' >> $REMOVER
chmod +x $REMOVER
fi
fi
exit 0
ただ、もうこんな記述はいらないかもしれない。 もう面倒なので確認していないが、udev の rules に、 RUN+="su yendo -c jpilot-sync" とだけ書いても 大丈夫なのかも。
結局 udev については面倒くさすぎてまともにマニュアルを読んでいないけど、 「udevルールの書き方」 は参考になるかも。 ようやく HotSync は Windows 並にまでなった。はぁ、しかし面倒くさい。 gnome-volume-manager あたりが面倒を見てくれないかな。 HotSync という概念そのものが obsolete になってくれてもいいけど。
2006/01/16 (Mon) 23:16 | タグ: computer jpilot palm | 固定リンク