[トップ] [更新履歴] [著書] [コンピュータ] [ゲーム] [CGI配布]
あえて言おう、DOCは時代遅れだと・・・
PluckerとはPlucker teamにより作られたオフラインHTMLビューワである。 なんといっても嬉しいのがGPLベースのフリーソフトウェア(NOT FREEWARE!!)。 Pluckerはparserとviewerのふたつの部分に分かれている。 parserは母艦からPlucker形式のファイルを作成するツール、viewerがPlucker形式のファイルを見るPalmwareだ。
Pluckerは、
などなどの特徴がある。 似たようなソフトとしてはiSiloがあるが、それはsharewareなので触れない。
コンパイル済みのバイナリもあるので安心だ。
カラーハイレゾ機でのすばらしいscreenshotがKIRA*さんの手により公開されている。 *1
parserはtakayosi_satoさんのPyPlucker-JPを参考に俺が日本語化&高速化パッチを作った。 PyPlucker-JPは速度が犯罪的にまで遅いのでその問題を解決。
Plucker公式サイトより入手できる。 rpm, debも用意されているので、RedHatやDebianなら簡単にインストールできる。 この際、母艦側にはオブジェクト指向スクリプト言語Python、Palm側にはZLibライブラリもインストールする必要がある。 parserはPythonで書かれている。
そしてZLib圧縮を使わないと高い圧縮率は期待できない。 母艦側で ~/.pluckerrc に
[DEFAULT] compression = zlib
と設定しておこう。 これで高圧縮率のZLib圧縮が使える。
次にmattoさんとこかコンパクト化したviewerからviewerを手に入れよう。 外部プログラムとしてnkfを使うが、たいていのUnix系システムには入っていると思われる。
最後にparserの拙作日本語化&高速化パッチを当てる。 このパッチで、以下の改良をしている。 このパッチはPlucker1.6がベースとなっている。
なお、パッチがあてられない環境のためにパッチ当て後のファイルも用意した。 そういう人はオリジナルのファイルを上書しよう。
plucker-buildコマンドを使う。 あるいは、
$ python /usr/lib/python2.1/site-packages/PyPlucker/Spider.py
のように Spider.py スクリプトを実行する。
$ plucker-build --help
とすると使い方が詳しく出てくる(英語)。 オプションはたくさんあって気が滅入るかもしれないが、いくつか知っていれば十分だ。 また、英語ではあるがひじょ〜に親切なマニュアルがついている。
w3mユーザのためにplucker-buildコマンドが起動するw3m local CGIも用意した。
ホームページ(開いたときに最初に出るページ)を指定。 変換したいサイトのURLかファイル名を指定する。
リンクをたどる深さを指定。 1ならばホームページのみを変換し、リンクをたどらない。 2ならばホームページとそれに含まれるリンク先を変換する。 以下同様。
画像のビット数を指定
1:白黒 2、4:グレースケール 8、16:カラー
リンクをたどる際ホームページのあるホスト以外のリンクをたどらない。 -Mを深く指定したときにこれを指定しないと膨大なデータ量になってしまうので注意。
--stayonhostに似ているが、--staybelowはurl-prefixから始まらないURLを除外する。 --stayonhostの一般形とも言える。
たとえばリンクが(架空のケースです)
とあるとき、--staybelow=http://www.test.com/story と指定すればindex.htmlをたどらず、story2.htmlとstory3.htmlをたどるようになる。 -Mを深く指定したときにこれを指定しないと膨大なデータ量になってしまうので注意。 このオプションは特にオンライン小説などを読む場合に重宝する。
pdbのファイル名を指定。 拡張子は省いて指定する必要がある! ファイル名(-拡張子)だけを指定するとpluckerディレクトリ(一般に ~/.plucker)以下に置かれるので注意。 よってフルパス(-拡張子)で指定しないとそのディレクトリにファイルが置かれない。
なお、ローカルファイルを扱う際parserはファイルの拡張子でHTMLかplain textかを判断する。
使ってみればわかるので省略(笑)。 いやほんとマジ。
とはいえ、他データベースへの書き出しについては書いておく必要があるだろう。
DOCリーダにはたいていテキストをコピーする機能がそなわっている。 メモ帳と同じように普通にコピペしたい文字列をドラッグしてコピー(カット)→ペーストのアレである。 しかし、Pluckerは大小様々なフォントを使っている関係でそのままコピペすることはできない。
その代わり、一般設定→タップで画面をタップすることで機能を割り当てたり、ドラッグすることでスクロールできたりする。

→
→
ハードコピーを選択すると、現在画面に表示されているテキストをメモ帳のようなフォームが出てくる。 そのなかでできるのは、
しかし、Export to Memopadの画面が出てくるまでにやや時間がかかる上、メモ帳にハードコピー全体を書き込む用途が思い付かないので、中途半端な機能とも言える。 daMemoPadが起動するとかならば、少しは使えるかもしれないが。
DiddleBugというPalmwareを御存知だろうか? GPLなフリーソフトウェアの手書メモ(スケッチ)ソフトだ。
Plucker的に注目したいのは、
の二点である。 Plucker動作中にDiddleSnapを起動すると、画面がDiddleBugに切り替わり、表示されている内容がDiddleBugスケッチへ書き出されるのだ。 手書メモなので、書き出された後は印を付けるなどの編集も自由自在。 しかも、そのスケッチにはアラームまで設定可能ときたものだ。これはすごい。
たとえば、番組表をPluckerで見ていて見たいテレビ番組があったらDiddleSnapでDiddleBugに書き出して印をつけ、アラームを設定してしまえばその時間になったらアラームが鳴る!といった使い方がある。 予定表ソフトに書き込むまでもないけど、ちょっとした予定なんかはこれでも十分管理できるのだ。
ただし、DiddleSnapはHackなのでPalmOS 5では動かないかもしれない(?)

PluckerはHTMLの表現力をそのままPalmに取り込むことができるので、使い方は本当に幅広い。 ウェブで公開されている情報をいつでも取り込めるし、自分でHTMLを作成してそれを取り込むこともできる。 普通のDOCリーダを使っている人は特にHTMLの表現力のありがたみを感じることだろう。
現在、ウェブで公開している小説(オンライン小説)はたくさん存在する。 それをゆっくりPalmで読むのもなかなかいいものだ。 しかし、オンライン小説サイトの長編小説は多くの場合複数ページに分けられているのでPalmに入れるのに苦労している人もいるだろう。 Pluckerはこういう場合もあっさり解決してくれる!
Palmに取り込む前に、取り込みたいページの形式をざっと把握する必要がある。 経験的に大きくわけて3通りのケースがある。
複数のページに分かれていてもほとんどのケースでURLに規則性があることに注意したい。 たとえば、小説トップページが
http://www.test.com/story.html
としたとき、1ページ目は
http://www.test.com/story1.html
2ページ目は
http://www.test.com/story2.html
などとなっていることが多い。 そういう場合、--staybelowオプションが使える。
--staybelow=http://www.test.com/story
とオプションを指定しておけば、http://www.test.com/storyから始まるURLのみを取り込むことができるのでサイズの節約になる。
2のケースは-M2オプションをつければよい。 そのページとリンクを1段階たどるのでこれだけで全文をPalmに取り込むことができる。
3のケースは-M20(全20話の場合)など深く巡回する必要がある。 そのかわり--staybelowをつけないと膨大なデータ量になるのでサイズと回線を圧迫してしまうので注意がいる。 3のケースでURLに規則性がないケースは俺は確認していない。 不幸にもそういうケースに遭遇した場合は1ページずつ取り込んでいく他はないと思う。
オンライン小説読者は特にw3m/Pluckerの利用をおすすめする。*2
テレビの番組表をいつもPalmに入れておくと便利かもしれない。 しかし、番組表はとてつもなく巨大な表である。 そのままPalmに入れようものなら、あの小さな画面じゃとてもじゃないけど見られたモノじゃない。 *3 そこで、番組表を展開して次の形式にする。
このように「開始時刻-終了時刻 チャンネル 番組名」をリストする。 こういう形式にすれば画面の小さいPalmでもなんとか見られるようになる。 お気に入りの番組を探したければ、Pluckerの検索機能を使えばいい。
また、当然縦長のリストになるので文頭に時間別の目次を作ってある。

この処理をするスクリプトを作成してみた。(要パッチ当て後のparser、w3m) 毎日cronで自動実行するように設定しておくと便利だろう。 このスクリプトは引数を取らない。 なお、情報源はYahoo TVである。
番組表と同じく、天気予報もPalmで参照できると便利だろう。 これまたPalm用に加工する必要がある。

この処理をするスクリプトを作成した。(要パッチ当て後のparser、w3m) これもcronで自動実行しておくとよい。
でっちあげなのでソースは汚いです(^^;
テキスト(/tmp/weather.txt)に落とす。*4
Plucker形式にする。
さて、冒頭で「DOCなんて時代遅れだ」と言ったが、じゃあ既存のDOCファイルをどーすりゃええんだなんて声が聞こえてきそうだ。 当然その要望には応えるよ。 というわけでDOC→Plucker変換器を作ってやった。 実験によると、DOCと比較して約30%の軽量化が実現した。 うまくいけばDOCの半分以下になることもある! DOCファイルをたくさんPalmに入れている人は是非ともやってみよう。 無論、MeDocにも対応している。
とりあえず俺が作ったPlucker形式のドキュメントを置いておこう。 これらを使う分にはparserがなくても大丈夫!! こんなのを置いて欲しいというリクエストがあったらいつでもどうぞ。
mattoさんところで配布されているものよりもサイズを減らしたもの。 古い機種を持っている人にはおすすめかも。
ハイレゾ無効、画面回転機能なし、アンチエイリアスなしの日本語ビューワ。
./configure --disable-hires --disable-rotate --disable-anti-alias --disable-scroll-to-bottom --with-lang=ja
でコンパイルしたもの。俺が使っているもの。
mattoさんの日本語plucker、とても便利に使っています。 画面の内容をメモ帳へコピーする機能のおかげで完全にpluckerの虜です。 ありがとうございます。
俺のparser日本語パッチはPyPlucker-JPをヒントにしました。 takayosi_satoさん、ありがとうございます。
*1ローレゾで悪かったね><
*2Windowsな人にはちょっととっつきにくい環境だと思うけど(^^;
*3パソコンですら見辛いくらいなのに・・・・
*4俺はテキストに保存して、メモ帳に保存し、それをdaMemoPadで見ている。