■2005-01-03
* [状況] 謹賀新年
いつも来てくださってる皆様、ありがとうございます。本年もよろしくお願いいたします。
帰星の日、出かける直前に窓を開けたらこんこんと雪が降っていて唖然。電車内からみる風景と郷里のそれとがあまり変わらない状態でしたよ。
さて、私の生まれ育った家というのはずいぶん前から誰も住んでいなかったのですが、先だってのアレで壁にひびも入り、とうとう取り壊すことになりました。既に更地になった土地の小ささに、今更ながら驚きました。本当に狭い空間だったんだなあ。で、取り壊す前に色々と家財道具を今の家に持ってきたらしいのですが、その中に大量の絵本がありました。『ねないこだれだ』とか『みんなの世界』など、私が小さい頃なんどもなんども読んだものばかりです。『ねないこだれだ』は、当時本当に怖かったですし、『みんなの世界』も伝染病の絵が結構インパクト強かったです。
私が生まれる以前の本の中に『アラビアンナイト』というのがありまして、文が川端康成(1954年、トツパン印刷)。子ども向けの優しい文体と、色鮮やかな美しいイラストのくせに、アリババのお兄さんバラバラにされるは、死体縫い合わすわ、任務に失敗する盗賊の手下は親分にどんどん殺されるわで結構、えぐいえぐい。大変貴重な一品でした。こういうものが捨てられずに残っていたのは素晴らしいことです。
■2005-01-08
* [Perl] Class::DBI 0.96 翻訳
一昨年訳したClass::DBIの0.94から大分ドキュメントに変更があったので、久しぶりにperldocjp。例によってperldoc.jpからブラウザで閲覧できます。
* [メモ]
・「在日の就業と生活保護の統計まとめサイト」はデマサイト 題名通り。
・コボ論―コボちゃんを論(あげつら)ふ 国民文化研究所。ザセツしないでぜひ続けて欲しい……
・Acme関連のカテゴリを「Perl」から「今月のAcme」に変更する。
* [Perl] Class::DBI::Plugin::Iteratorの改造3
Class::DBI::Plugin::Iteratorに先読み機能がつけられたようです。nextの実装はオリジナルの方が美しいので前に改造したものもそれにあわせて修正しました(先読みする判定法と配列の使い方は若干違います)。 →差分(0.03との差分ですが)
■2005-01-15
* [今月のAcme] Win32::DieとAcme::Magic8Ball
書くことがないのでネタ帳を見てたら、Win32::Dieというモジュールがメモされていました。えーと、Windowsにおいてperlスクリプトをダブルクリックで起動したとき、通常はエラーが出ると直ちにプロンプトが閉じてしまうので、それを邪魔するモジュールと。エラーが確認できなくて残念な思いをしないよう、役に立つかと思ってメモしてたみたいです。
ほんとは[今月のAcme]を書こうと思ったのですが、Recentで目に入ったのがAcme::Magic8Ball。 って、"Magic 8 Ball"て何? わからないのでモジュール示されていた8-Ball Frequently Asked Questionsを見てみます。
「ザイールに住んでますが、どこで手に入りますか?」
……
「ボールを解剖してみたら指が青く染まっちゃいました。落ちません。」
……
というわけで、退っ引きならない質問をしてからボールをひっくり返すと答えが現れるという、まことに有り難いボールであらせられる。こんな感じ。かなり昔からあるのね。そういえば、「うる星やつら」でこんなボールが出てきたような。
最後にAcme::Magic8Ballで占ってみました。「今年の仕事の調子は如何?」→ "Better not tell you now." それはさておき、今回のは[今月のAcme]に含めないということで。
■2005-01-21
* [Perl] Class::Wiki
Class::XMLというClass::DBIライクにXMLの読み書きを行うモジュールがあるので、見習ってClass::Wikiをつくろうと思い立ちました。その手始めにDBD::Wikiをこさえることに。DBD::FileやDBD::iPod、DBD::Googleなど参考にちまちまとやってます。問題はXML-RPC for Wikiを利用しているのですが、これが実装されているWikiがほとんど存在しないのと(FreeStyleWikiは拙作のCGIが)、XML-RPCでやりとりしたくないなあ……というところ。いつものように役に立たないモジュールになるはず。
あー、この一週間search.cpan.orgは"Bad Gateway The proxy server received an invalid response from an upstream server."ってエラーが出てなかなか繋がらない。
* [Perl] DBD::Wiki
少しでけたー。
use DBI; my $url = 'http://www.jspwiki.org/RPC2/'; my $dbh = DBI->connect( "dbi:Wiki:drv_if=xmlrpc;url=$url" ); my $sth = $dbh->prepare(q{ SELECT * FROM wiki WHERE name LIKE 'S%' LIMIT 10 }); $sth->execute(); while( my $row = $sth->fetchrow_arrayref() ){ print join(', ',@$row),"\n"; # 実はnameカラムのみ } # テーブルは wiki, pages, links の3つ
てな感じ。
SELECT linkpage, href FROM links JOIN wiki ON wiki.name = links.name WHERE name = 'Menu'
ぐらいの構文ならなんとか(WHERE句のnameが曖昧だけど)。データの取得をXML-RPC for Wikiで実装しているので、実際にできることは少ないです。 続く。
■2005-01-28
* [Perl] Class::Wiki
DBD::Wikiがあらかたできたので、Class::DBIを使ってClass::Wikiを作成。
# Class::Wikiを継承したクラス package MyFSWiki; use base qw(Class::Wiki); my $url = 'http://www.donzo ko.net/cgi-bin/wiki3_5_3/wiki_xmlrpc2.cgi'; __PACKAGE__->connection( "dbi:Wiki:drv_if=xmlrpc;url=$url",'',' ); # main my $page = MyFSWiki->retrieve('JSPWikiFAQ'); print $page->lastmodified,"\n"; print $page->content,"\n"; my $it = MyFSWiki->retrieve_all(); while( my $page = $it->next ){ print $page->name,"\n"; }
とりあえず動きました。近々公開できるかな。$page->delete
とか$page->update
とかできてしまのは、もしかしたら危険かしら。