[A.I.] 松岡正剛の千夜千冊 第671夜「情報学の基礎」

久しぶりに覗いておもしろそうなのを探した。この記事にあるリンクを辿ると結構おもしろい。人工知能を情報学の視点から考えると新しいアプリケーションが考えうるのではと漠然と考えている。データマイニングを機械任せにするよりは、自らが新しい情報を生み出す---編集するほうが楽しいし、人工知能の役割はやはりエキスパートシステム的なものになるのだろう。要は自動化、単純な繰り返しは人間にとっては苦痛であるから。遺伝的アルゴリズム、ニューラルネットワーク、自己組織化マップとかいう言葉は魅惑的ではあるが・・・なかなか具体的なものにならない。

[AWAKENING Project] みさきニュース

みさきニュースは見ればわかることだが、小宮さんの素晴らしいニュースサイトだ。AWKINGの技術を応用していただいている。デザインがいかしてるのでいいね。うらやましい。

[Computing] 夢のまた夢

ビジネスウィークの11月25日号に、「日はまた昇るか」という記事が出ている。サンマイクロシステムズ社のことである。コンピュータの世界はメインフレームからPCに完全に変化した。ここ30年間の夢のような変化である。SolarisのようなワークステーションもPCが取って代わる。PCとはIntel-WindowsとIntel-Linuxである。64bit-SparcマシンもいずれPCに追いつかれる。太陽が再び昇るためのアイデアはN1プロジェクトである。でも、これってグリッド・コンピューティングの一種。このようなアイデアはIBM-ソニーやHPにもあるしなあ。誰もかもがグリッドに走っているように見える。しかし、現段階ではパーソナルコンピューティングにはあまり関係ないなあと思う。これは本当に次の夢なんだろうか。夢というにはインパクトが弱い。最近の話題は大体があーっそぉーなの、ふーむという感じ。もっといい次の夢を見させて欲しい。わくわくするような・・・

[Computing] コンピュータのパワーは電力のように売られる

ビジネスウィークのバックナンバーをひっくり返していると11月11日号のテクノロジー欄ではIBMのPalmisanoが次の大きなものは"e-business on demand"だと言っている。これもコンピュータ資源を共有するグリッドソフトウェアに関係するものである。グレッグ・イーガンの「順列都市」では、誰かがネットワーク上の計算能力を買い占めて大規模なシミュレーションを行なうとネットワーク上の人間のコピーが減速するような話が展開される。この小説が書かれたのは1994年だ。この中には裕福なコピーは自前のハードウェアを持つというような設定もあったりしておもしろいのだが、今後個人でそれほどのコンピュータのパワーが必要になるとも思えない。まあ、小説のようにマトリックスのなかで自分のコピーを動かすのでもなければ・・・

[Computing] 技

最近は仕事で簡単なPerlのスクリプトを書いたりする。ちょこちょこっと3分で書くレベルのものだけど、これがあるのとないのでは仕事の能率がぜんぜん違う。Excelでは行の高さをデータの量に合わせて自動調整する方法が最近わかった。必要な範囲の左側の行表示をドローで選択して、最下段の境界をダブルクリックするとデータがすべて表示できるようにそれぞれの行の高さが自動的に調整される。こういう技を知っているのといないのでは、できる仕事が変わってくるぐらいの効果がある。400行もあるデータを一行ごとにマニュアルで行間隔を調整するなんて不可能だからだ。そんなことやる気しないよね。

[日記] ポリーニ・プロジェクト

NHK教育でポリーニ・プロジェクトが紹介されていた。今もポリーニのドビュッシーの前奏曲集第二巻を聴きながら日記を書いている。ポリーニ・プロジェクトは現代曲を演奏しないと音楽の将来は保証されないというポリーニのメッセージだ。このようなプロジェクトが企画されるのは大変素晴らしい。これを機会にプロジェクトが紹介した曲をじっくり聴いてみたい。

[日記] 水墨画

昨夜からの雨が上がった昼休み、雲がたなびく宮島は瀬戸内に静かに横たわっている。一幅の水墨画である。水不足が解消されるとよいなあと思いながら、散歩。疲れた頭を少し休める。月の前半は仕事に余裕があるのだが、後半はバテバテ(^^;)

[日記] 胃カメラ初体験

今朝は健康診断異常で腹部超音波エコーと胃カメラの検査を受けに評判の祇園のクリニックへ。エコーの診断結果は軽度の脂肪肝で体重を減らさないといけない。腎臓と肝臓の像の濃淡を比較して診断する。やや肝臓のほうが白っぽい。密度が低いと白っぽくなるのかな?胃カメラでは胃潰瘍が見つかったので来週もピロリ菌の検査結果を聞きに行く必要がある。最近潰瘍が再発したかなと思うことがあったのでなるほどという結果だ。古い十二指腸潰瘍の痕は白くなっていた。胃潰瘍は十二指腸から幽門を介して逆の周辺だ。糜爛が認められる。おもろしかったのは麻酔薬のシロップを口に含んでウォーターベッドに横たわり、10分間マッサージを受けること。さらにもう一度シロップを含んで5分、その後スプレーを喉にかけて完了。看護婦さんから胃カメラの径が細いのを入れてますから楽ですよとの説明を受けた。喉を通るときだけはさすがに大変だったが・・・

[日記] 無線LAN

ノートを居間で使うために一階に設置したハブからいちいちケーブルを引くのはあまりにも様にならないので、無線LANを導入した。エレコムの無線ブロードバンドルータLD-WBBR1を無線LANのアクセスポイントとして使う。ノートのほうには無線LAN PCカードLD-WL11/PCC3を挿す。IEEE802.11b準拠で、11Mbpsだ。テックランド八木店デジタル館でセットで17,800円の価格表示が、購入すると15,800円だった。ヤマダ電機で買うと大体表示価格より安くなるので、少し得した気分になれる。しかし、無線LANもPCカードも安くなったものだ。ノートにCD-ROMドライブが付いていないので、デスクトップのドライブを共有ドライブに設定して、有線LAN経由でドライバをインストールした。アクセスポイントがDHCPサーバーになる。快適にインターネットにアクセスできる。ホットスポットなどのモバイル無線LANでもIEEE802.11bが使われるので、そのままアクセスできればラッキーだが、まだまだ普及度が足りない感じ。PHSの64Kでつなぐようにするかどうかだけど、それほどモバイルで通信が必要かどうかだなあ。64Kではメールを落とすぐらいしか役に立たないし・・・今日はNTT西日本からBフレッツのサービス区域になったのでという勧誘の案内が入っていた。11MbpsのLANでは能力が足りないね(^^;)CATVよりも安いのだけど、来年の3月には引っ越しだし、次はADSL12Mにするつもりなんだが・・・さてさて

[日記] 初雪

東京が大雪。広島も三角州を囲む山々が薄く雪化粧。明日も寒いな。

[日記] マルク・シャガール展

広島県立美術館マルク・シャガール展は明日まで。シャガールはひろしま美術館にもいくつかあるかな。幻想的な一部の代表作は美術の教科書などで知っているのだけど、初期の作品から見るとイメージは変わってくる。キュビスムなどの前衛芸術の影響を受けてスタートしているのは初めて知った。絵の前でなかなか動かない人がいるんだけど、絵の解説をイヤホンで聞きながら見ている人だね。絵の解説は手短にお願いしたい(^^;)常設展はバラエティに富んでいるのだが、まとまりがないとも言える。陶器や日本画からダリの溶けた時計まである。靉光の絵が3点あるが、見落とさなければ興味深いものである。11月はルネ・マグリット展をひろしま美術館で鑑賞。次は、広島現代美術館で横尾忠則を見る予定。

[日記] 読書メモ

まだ読んでいないんだけど、購入可能性リストに載せておくために中國新聞の読書のページからまず2冊。「この人この本」に蛭川立著「彼岸の時間」(春秋社刊、2500円)が取り上げられた。この本はクオリアのメーリングリストでも最近取り上げられたばかりなので印象に残っていた。臨死体験などの神秘体験を脳の働きとして説明しているらしい。ホームページも開設されている。もう一冊は山村修著「遅読のすすめ」(新潮社刊、1300円)。阿川佐和子さんが書評を書いているが、大変おもしろい。「目が文字を追っていくと、それにともないながら、その情景があらわれてくる。目のはたらき、理解のはたらきがそろっている。そのときはおそらく、呼吸も、心拍も、うまくはたらき合っている。それが読むということだ。」という箇所を引用されている。真に読むとはそういうことなのだが、現代人は端折って読むのに慣れているのかもしれない。もっと読むことを楽しむ必要があるなあと、超遅読ではあるが、つい流し読みしてしまうことがある読み方を反省中。目のはたらきと理解のはたらきが同調するときが感情移入ができているときなんだ。

プログラミングPerl第三版二巻を眺めてみたが、まだ買っていない。今更5.6についての本を買ってもねと思う部分もあるし、5.8について書いてあるならゲットなんだがとひっくり返してみたり。もう少し評価の時間が必要かな。今日はメガで久しぶりにスクリプト関係の書籍を購入、Martin C. Brown著、㈱日本ユニテック翻訳/監訳、「Perl/Python/PHPによるXMLプロセッシング徹底解説 -スクリプト言語で学ぶXML×Webプログラミング-」、技術評論社、平成15年1月6日初版第一刷、427ページ、3480円。REBOL、Tcl、Ruby、Applescriptについても60ページぐらいの説明がある。

その他、購入品。軽部征夫著、『知的生産 考える技術 私の方法 これが「アイデア」生産工場94の秘密!』、三笠書房、2001年4月5日第一刷、286ページ、1600円をリサイクルで税込み840円。なかなかおもしろい。『10年単位で「知識」は再インストールする必要がある』など正にそうだと思う。10年経つと変わるよね。坂本啓一著、「スローなビジネスに帰れ eに踊らされた日本企業への処方箋」、インプレス、2001年11月11日第一版第二刷、237ページ、1800円。マーケティングコンサルタントの著者が「マーケティングは画期的な商品が出るまでのつなぎ」というところがおもしろい。本物が残るだけなんだ。

[日記] 下界・夜景

今日は東京日帰り出張。朝6時20分に車を広島空港に向けて走らせる。片道50km程度の行程だ。霧が少し出ていたけどたいしたことはない。ちょっと遠いけど、帰りが気楽。リムジンだとアストラム中須経由は少ないし、だいぶ待たないといけないからね。駐車料一日1000円の足が出るけど、気楽さには代えられない。九段下と八丁堀で仕事。あまり時間的な余裕がなかったので、どこの本屋にも寄らずじまい。帰りは広島空港視界不良で着陸できるかどうかわからないといういつものアナウンス、これまで着陸できなかったことはないので、またかという感じで乗る。案の定、着陸前の旋回に入ると、傾いた機体の窓から下界にはイルミネーションで彩られた夜景、道路に沿って美しく光が連なっているのが見える。着いたなとほっとする。もう少し近ければもっと快適なんだけど、山陽自動車道の暗い雨に濡れた夜道を100km/時で走りながら思った。

[日記] うれしい出来事

小宮さんからメールをいただいたこと。久しぶりにアクセスのあるリンクを調べるとこれまでみたことのないリンクがいくつか見つかったこと。特に楽しみにしている日記ベスト3にこの日記を上げていただいていたのでうれしくなってしまった。アンテナにも載っている。少しは読む人にとってもおもしろいことになっているのかな。人工知能方面も期待していただいているようなので、がんばろうと思う。少し勉強が後退気味、カムバックしなくては。楽なSFをつい読んでしまって・・・最近はダン・シモンズのハイペリオン。バローズの火星シリーズやスミスのレンズマンシリーズを思い出す。読みやすいので困る。

[日記] 冬至

冬至を過ぎると寒さが本格的になると言われる。クリスマスはホワイトクリスマスにでもなれば年末の雰囲気が漂うのだが。今朝は10時からの会議に出るために暗く今にも雨が降りそうな空の下にテルスターを出動させた。まだまだそう寒くない。やはり暖冬かなあ。午後4時には帰宅。年末年始の9連休の策を練る。少しまとまった仕事をしたいね。Tcl/Tk日本語チームの仕事も少しは前に進めたい。やってみたいことはいろいろあるが趣味の世界だし、ゆっくりと今年の垢は落としたい。あっ、そーだ、tsnetworkのサーバーのメンテナンスもしないと、apatchが落ちている(^^;)リモートのメンテは限界があるよねえ。面倒。

[日記] マイクロソフトの"敵"

さあ、新年に向けてのカウントダウンが始まったが、どうも風邪が蔓延しているようだ。医院の前には一日中、車がずらっと路上駐車している。それを横目で睨みながら行ったり来たり、、、、、今日は駅前のジュンク堂書店でソフトウェアデザイン新年1月号等を入手。等の部分が大きくてサイフがまた軽くなった(^^;)Windows Services for UNIX 3.0全解剖[応用編]Interixの記事が出ている。大変興味はあるんだけど、29,800円では手が出ないよね。Cygwinがあるし、VMwareもあるしね。XPに添付して欲しい(^^;)今日届いたフォーサイト新年1月号には「マイクロソフトの"敵"」という記事がある。頭に浮かぶ答えは、Linux、うーんさもありなん、IBM-ソニー連合の動き、それもあるかな。記事の答えは、まいくろそふと。自分自身なのだ。現在の成功を維持しようとすればするほど、自分の首を絞めてしまう。30年前のIBMかもしれない。歴史の皮肉である。

[日記] クリスマス・イブの憂鬱

暖かいクリスマスになりそうだ。ホワイトクリスマスになりそうな気配は露ほどもない。仕事が追い込みでダウン気味。泣いても笑っても後三日だ。データ作りにPerlの出番がありそうだが、明日は大変だなあ。あさっては一日中会議だし、明日しかない。本当にできるかなあ。よく考えると午前中も打ち合わせがあるし、午後からは大掃除だ。憂鬱(^^;)

[日記] 雨のクリスマス

帰宅時の車の中で聞いたラジオでは県北はホワイトクリスマスらしい。寒波は瀬戸内沿岸まではまだ到達せず、少し寒い程度。今日書いたスクリプトは快適に動いたが、まだ仕事を完了させるには至らなかった(^^;)はて、あさって最後の日に賭けるしかない(^^;;;最終的にExcelのファイルを作り出す必要がある。さらには個別のファイルを200名ぐらいにメールで送信したいのだが、ノーツではそういうわけにもいかないしなあ。

[日記] 生温い寒波

今朝は屋根が白くなっていた。大粒のボタン雪が降りしきる中を娘と少し遅めの出発、大町駅まで送る。広島旧市内に向かって車を走らせると次第に霙になり、雨に変わっていく。本社に着いた頃には雨も上がり、西のほうは青空が見えている。うーむ。寒波到来だが、少し緊張感が足りない感じ。

[日記] 時が過ぎ行く

今年も終わりだ。やれやれ、仕事関係で作成していた200人分の資料もクリスマスプレゼントからお年玉になってしまった。出来上がったデータをチェックしていると最初書いたテスト用スクリプトから得られた結果と整合性のないデータになっている。パターンが異なるデータがあるみたいだ。時間切れ、5時でサーバーを止めるというから、メールも使えないのであきらめて、ノートをLANにつないでデータをコピーした。家では仕事はしたくないけど、まあ、テキスト処理は趣味みたいなもんだからね。時の流れには逆らえないので、帰宅することにした(^^;)

[日記] 熊のプーさんとデジカメ付き携帯

やれやれ月曜日になっちまった(^^;)PCの表示では6分過ぎだ。一昨日ぐらいから年末の帰省が始まるので大体NIFTYのフォーラムはアクセスが落ちるのが通例である。しかし、最早生きているフォーラムは少ないので、それを実感することもなくなった。私が巡回しているフォーラムで辛うじてアクセスがまずまずと認められるのは、FLINUX、FDELPHI、FSCIENCEぐらいだ。Web移行したフォーラムも増えてきているようだ。FGALsのライバルだったFWINも移行してしまった。クリスマスの後、一時夜の雪で屋根が白くなる日が続いたが、また気温が少し上がった感じだ。コートを羽織らなくても外を歩くのに寒くて困るほどではない。空気中の水分が雪に凝縮するほど夜の気温も下がっていないのだろうね。

今年の娘へのクリスマスプレゼントは熊のプーさんとデジカメ付き携帯への機種変更だ。今日、携帯の機種変更ってやつを初めて経験したが、なかなかおもしろい。記録されているデータも移行できるんだ。画像は移せないという制限はあるが、電話帳を再度入力するのは大変だし、機種変更を促進するための仕組みは完成している。その場でやってみせて、すぐに電話できるようになる。パチパチと拍手したくなる気分だ。適確に応答する超優秀なおねえさんだった。研修生の名札が信じられない。キーボード操作も携帯の操作も超一流だ。新しい機種はメモリースティックで画像を記録できるようになっているから、PCにもデータを移せる。うーむ、そうなっていない機種は携帯に送ったのでは再利用できないよね。これまでどうしてたんだろう。まあ、PCからメールボックスにアクセスできれば問題ないが、そのような利用を考えたこともない。今度聞いてみよう。

[日記] 大晦日の行事

大晦日だ。みんな趣味に走っている余裕はないと思うが、私は例年通り帰省する必要もないので、ヤマダ電機で購入した両面印刷用紙を使って、RDFのスペックの印刷状態を気にしながら更新日記を書いている。昨日はヤマダ電機も空いていた。ブラックのインクも補充しておいたが、ビッグのほうが安かったな。品揃えはだめだが、価格だけならビッグ、あるものは買いだ。しかし、両面印刷は昨日からトラブッている。紙送りの信頼性がないのだ。片面の紙では100ページの印刷でもトラブルに出会ったことはないのだが。両面印刷する場合は交互に印刷するので、一枚ずつの紙送りが狂うと表裏でページがずれてしまう。結局10枚程度重ねたぐらいなら問題は出ないみたい。重ねた状態のクッションの違いか、紙面の滑りの問題か・・・

年賀状は午前中に出し終えた。ここ五年間ぐらいでは最速の成績だろう(^^;)年賀状の管理は筆まめVer.12だが住所の変更等、データの修正に手間取った。結局、表形式で印刷して、今年の年賀状や挨拶状と照らし合わせながらチェックする。100件を超える程度でも随分手間が掛かる。

夕方は込むから、昼前にガソリンスタンドに車を走らせる。車を洗車してもらって、ガソリンと灯油を補充。貯めたポイントをビール半ダースとティッシュ・ペーパーに交換。後はもう少し買い物がある。それで新年を迎える準備は完了だ。

更新日記が選ぶ2002年の10大ニュース、さて、、、、、大晦日か、元旦に発表(^^)

皆様、良いお年を!

[Perl] The Perl Review 0.6, Nov. 2002

11月のThe Perl Reviewには、三つのレポートがある。それぞれおもしろそうだ。"Simple RSS with Perl"は、RSSからしばらく離れて忘れてしまった人にとってはリハビリにもってこいっていうのは冗談だが(これって私のこと)、わかりやすいレビューになっている。"Delightful Languages: Ruby"はPerlとRubyの違いが要領よくまとめられ、Rubyの紹介記事として優れている。"Who's Doing What? Analyzing Ethernet LAN Traffic"もおもしろそうだが、ネットワーク管理者向け、へーこんなこともできるんだという感じ。2ヶ月に一回発行されるこのレビューは内容が充実している。Perlコミュニティの底力を感じさせる素晴らしいものだ。

[Perl] The Perl Review 購読

The Perl Reviewを購読予約した。オンラインじゃなくて、印刷物として出てくる可能性がある。年4回発行で、International Subscriptionが20$/年。50ページ程度のpdfを印刷するのもインク代や手間が結構掛かるし、20$なら安いかなと思った。寄付が十分多いようなら印刷物を出すという前提つきなので、一種の寄付のつもり。まあ、Perlには大変お世話になっているしね。Reviewは7 issues全部ダウンロードさせてもらったことだし(^^;)

[Perl] プログラミングPerl 第3版

2002年9月25日初版第1刷発行。僕の誕生日だな(^^;)Larry Wall, Tom Christiansen, Jon Orwant著、近藤嘉雪訳、「プログラミングPerl 第3版 There's More Than One Way To Do It Vol.1,2」、オライリー・ジャパン、2002年9月25日初版第1刷、1303ページ、10,000円。Perl5.6について書かれている。改訂版(1997年、Perl5)が759ページで4,900円。ソフトバンクの小さいピンクの版(1993年、Perl4)は633ページで4,500円。Perl5からPerl5.6へはページあたりのコストは少し上がった程度だが、分量的には大きく増えた。倍増だ。今日も講習で広島市内に出たので、帰りにメガに寄ってしばらく読み耽った。分量が多いのはやはり内容的にPerl5までと大きく変わったということだ。Larry Wallの書いた書物として歴史的な価値がある。Perl5.8にも近いだろうし、内容は豊富だ。Unicodeの部分を中心に読んでいると、知らないこともいろいろと書いてある。Perlユーザーなら買いだ(^^;)実際のところShiftJIS日本語処理に使うのはJPerlのある5なんだけどね。まだ、5.8はうまく使いこなせない。encodingのshiftjisやcp932を使っても文字がマップされないというエラーが結構出る。なんだろうね。それに文字コードを意識しないとスクリプトが書けないのはつらい。まあ、私がテキストを見ないで使いこなせるのはPerl4のレベルだし、単なるテキスト処理だけならそれで十分と言える。この第3版は新しいPerlの世界への本格的な入門書になるのだろう。謝辞で査読してもらった人に感謝の意を表しているのだが、その中にGloria Wallの名がある。Larryの奥さんだが、Perlがわかるのだろうか。初期のPerlにはGloriaという名前が付いていたこともあった話を思い出した。この話は766ページに出ている。おとといがPerlの15歳の誕生日だった。生まれは1987年。use Perl;にも記事が出ている。Happy birthday Perl!

[Perl] Encodeモジュール

Perl5.8とUnicodeでGoogleを検索して見つけたYukiWikiサイト。なかなかPerl5.8に詳しい。極悪さんと知り合いみたいだ。

ActivePerl5.8が正式に出たので、インストールして perldoc Encode::JP などして調べるとUnicodeと中日韓エンコーディングとの相互運用の問題について書いてあるサイトが見つかったりする。

use Encode;
@with_jp = Encode->encodings("Encode::JP");
print join(';', @with_jp);

上記のスクリプトをActivePerl5.8で動かすと、7bit-jis;ascii;ascii-ctrl;cp932;euc-jp;iso-2022-jp;iso-2022-jp-1;iso-8859-1;jis0201-raw;jis0208-raw;jis0212-raw;MacJapanese;null;shiftjis;utf8 となる。CygwinのPerl5.8でも結果は同じ。

[Perl] Nazgul

Parrot v0.0.9がリリースされた。コードネームはNazgul。指輪物語の指輪の幽鬼のことらしい。9匹だからだろうね。

[Perl] The Perl Journal December 2002: Ruby vs. Perl

Perlのオンラインマガジンには先日紹介したThe Perl ReviewとTPJがある。TPJは現在はオンラインマガジンの形態だが、オライリーから編集されて書籍としても出ている。オンラインの購読は12$/年なので、月1$という安さだ。pdfの配布で、カラフルなデザイン、CMP Media LLCの発行。25ページ程度だが、活字が小さくぎっしり詰まっている。インクジェットで印刷する場合は少し厚めの紙を選んだほうが良い。カラーの部分はインクがかなりたくさん乗るので、薄い紙だと両面印刷には適さない。

12月号には"Ruby vs. Perl"という記事が載っている。The Perl Reviewの発行人であるbrian d foyが著者。著者は「Perl以外の言語を使ってもすぐPerlに戻りたくなるが、Rubyはそうならない」と述べている。「Rubyに注目し続け、自由な時間があるときは、それで遊ぶだろう。特定の仕事を実行するために小さなRubyスクリプトを使うことさえあるかもしれない。が、Perlを使うのを止めることはできない。Perlは有用過ぎるからであり、CPANのユーティリティは他の言語からは使えないからである。」等々・・・

[Perl] 更新日記作成支援スクリプト

日記作成を支援する簡単なスクリプトを書いた。カテゴリのアンカータグ名をエディタ上から読み込み、日付と曜日を自動生成、アンカータグ名からカテゴリ名を取得して、日記用のHTMLテンプレートを生成する。これをDanaのラウンチャに perl diary_form.pl %T とセットしておく。%Tには、エディタ上の範囲指定した部分を書き出したテンポラリファイル名が入る。曜日を入れるようにしたので、インデックス作成用スクリプトの日付部分のマッチングも修正。

%category = (
	"rn" => "更新履歴",
	"cw" => "Cygwin",
	"ps" => "PS2 Linux",
	"com" => "コミュニケーション",
	"ai" => "A.I.",
	"book" => "蔵書目録",
	"awking" => "AWKING Project",
	"awk" => "AWK",
	"net" => ".net",
	"os" => "Operating System",
	"tt" => "立花 隆",
	"perl" => "Perl",
	"ruby" => "Ruby",
	"tcl" => "Tcl/Tk",
	"python" => "Python",
	"prolog" => "Prolog",
	"linux" => "Linux",
	"printing" => "Printing",
	"hiroshima" => "ひろしま",
	"an" => "ArrangeNote",
	"qnx" => "QNX",
	"web" => "Web Development",
	"diary" => "日記",
	"scheme" => "Scheme",
	"tsn" => "TS Network",
	"tip" => "Tips",
	"col" => "コラム",
	"xml" => "XML",
	"vm" => "VMware",
	"freebsd" => "FreeBSD",
	"computing" => "Computing",
	"lang" => "言語",
	"card" => "カード",
	"oo" => "OpenOffice",
	"sf" => "SF",
	"wbh" => "WinBatchEh",
);
chomp($cat = <>);
$thisday = ("Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat.")[(localtime)[6]];
$mon = (localtime)[4] + 1;
$mday = (localtime)[3];
$year = (localtime)[5] + 1900;
print "<DT>$mon/$mday/$year ($thisday)<DD>\n";
print "<div class=\"emph\"><A HREF=\"renewal_index.html#$cat\">[$category{$cat}]</A> <A NAME=\"${cat}_\"></A></div>\n<p></p>\n";

これを書いていて、プログラミングPerl改訂版の誤植を発見。213ページの曜日を知るための記述の仕方だが、localtimeから得られる配列の曜日を指定するのに、"localtime[6]"としている。"(localtime)[6]"が正解。Pink CamelとBlue Camel第3版は正しい。上のスクリプトの最後の行の"${cat}_"の{}は変数名を"$cat_"ではなく、"$cat"と認識させるためのもの。

[Perl] PerlでExcel!

TPJ#19にJohn McNamaraSpreadsheet::WriteExcelのレビューがある。ActivePerl5.8にSpreadsheet::WriteExcelをインストールしてExcelファイルの自動作成を試してみた。ドキュメントを見ると、バージョンは0.39、かなり本格的にExcelファイルの生成をコントロールできるようだ。v.0.33のドキュメントの和訳は、河馬屋二千年堂の「Perlの小技」にある。Encodeモジュールも使い方が次第にわかってきたので、仕事のほうでもExcelファイルの生成にまで使えそうである。素晴らしい。最初はOpenOfficeのCalcで読み込ませて文字化けするのでおかしいと思っていたのだが、旧我が愛機のExcel97に読み込ませるとShiftJISできちんと表示できたので問題なし。凄いことができる時代になったものだ。

ExcelビュワーはPerl/TkスクリプトでExcelファイルの表示ができる。これまた素晴らしい。川合さんのSpreadsheet::ParseExcelモジュールをインストールして実行しようとすると、FmtJapan2.pmのCP932Excelのマップがないというエラーになる。これは、Unicode::MapにCP932Excel.mapがないからで、CP932に変更すれば動く。その他、ActivePerl5.8に標準で入っていないJcode、Unicode::Mapの各モジュールが必要。

Perl5.8が日本語環境で本格的に使える時代に入った予感がする。既にPerl5.9の開発は始まっており、Perl5.10がPerl5の最終マイナーリリースになるらしい。Parrot/Perl6はまだこれからだろうし、しばらくはPerl5.8を楽しむことになるね。僕は思わぬクリスマスプレゼントをもらったような気がしている(^^)v

[Python] ReportLab Toolkit

PDFをスクリプトから生成するライブラリ、The ReportLab Toolkit。ReportLab_1_16.zipをダウンロードしてインストールする。解凍してできるreportlabフォルダをSJIS版Python2.2がインストールされているpython22jpフォルダにコピーすればよい。もち、python22jpにはpathを通しておくこと。Python Imaging Libraryもインストールしておこう。こちらはPython Imaging Library 1.1.2 for Python 2.2b1 (Windows only) (328k EXE) をダウンロードしてインストールするのだが、c:\py22の下に解凍されるので、これをpython22jpにコピーしよう。DLLsフォルダの中身はDLLsフォルダに、他のものはそのままコピーでOkだ。reportlab/testのtest_pdfgen_general.pyから生成するpdfファイルを覗くとびっくりする。見事なものだ。

[Python] The ReportLab Toolkitでハローワールド

次のようなスクリプトで、ゴシック体で「ハローワールド」と書かれたPDFファイルが生成できる。reportlab/test/test_multibyte_jpn.pyとtest_hello.pyを参考にしたというか、合成しただけ(^^;)SJIS版Pythonを使えば文字列はShift_JISのまま書ける。python-ml-jpを"ReportLab"で検索して読み返していると作者のAndy Robinsonさんが発言されている。日本語もできるんだ。

import string, os
from reportlab.test import unittest
from reportlab.test.utils import makeSuiteForClasses
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfgen.canvas import Canvas
class HelloTestCase(unittest.TestCase):
    "Simplest test that makes PDF"
    def test(self):
        try:
            from reportlab.pdfbase.cidfonts import CIDFont, findCMapFile
            findCMapFile('90ms-RKSJ-H')
        except:
            #don't have the font pack.  return silently
            return
        pdfmetrics.registerFont(CIDFont('HeiseiKakuGo-W5','90ms-RKSJ-H'))
        c = Canvas('test_hello_j.pdf')
        c.setFont('HeiseiKakuGo-W5-90ms-RKSJ-H', 32)
        c.drawString(100,700, 'ハローワールド')
        c.save()
def makeSuite():
    return makeSuiteForClasses(HelloTestCase)
#noruntests
if __name__ == "__main__":
    unittest.TextTestRunner().run(makeSuite())

[更新履歴] Perl AWKING for Beginner?

更新日記インデックス作成用のRubyスクリプトをPerlで書き直した。比較のために新しいページを作って、サンプルとして登録。AWKING Projectのページの参加サイト一覧には小宮さんのサイトを登録させていただいた。

[SF] Avon Books paperback版

Avon Books paperback版のクリプトノミコンは7.99$で買える。11月に出たばかりだ。例のPerlスクリプトには日本語版とは違う誤植がある。本には誤植が付き物だということである。1152ページで一冊。5cmの厚みがある。持ち歩くには不便だが、英語で本が楽しめる人にはお買い得である。

[SF] 順列都市

グレッグ・イーガンの「順列都市」に最初に言及したのは今年の1月27日の日記だけど、ようやく上巻を読み終えた。1年が過ぎてしまいそうだ(^^;)小説というものは感情移入できないとなかなか読み終えることは難しい。従って十分に時間があり、精神的に余裕がないとなかなか読めないものだ。感情移入がスムースに行なわれるに従って、次第にこの本のすごさがわかってきた。ホーガン以来久しぶりに感じる、その設定に感動する説得力がある筆力。サスペンスSFといった趣もあり、読ませるね。次はどうなるんだろうとわくわくする。また、人間とは何か、生とは、死とはと考えさせるところがさすが。主人公の一人、マリアの母は肝臓癌で余命幾ばくもない。親孝行のマリアはなんとかスキャンを受けさせて蘇生させたいと考えているのだ。マリアの母はそれを知って、次のように言う。

<コピー>に知性があることなら、信じているよ。ただ、もとになった人間と<コピー>が"同一人物"であるとは---ついでに、そうではないとも---認める気はないんだ。この件では、答えが正しいとか、まちがっているとかはいえない。これは意味論的な問題であって、真偽が問えるものじゃないんだから。要するに、たったいまわたしがもっている、自分が何者か、どこからどこまでが自分かという感覚には・・・・・将来のいつだかに存在する、わたしの<コピー>は含まれていないってことさ。そこんとこ、わかるかい?スキャンを受けても、このわたしが、、、、、、安心して死ねるようになるわけでもなんでもない。わたしの<コピー>が、仮に走らされることがあって、なにを考えようともね

コピーを作ってもオリジナルとは違うというわけ。当然の議論だが、そうなんだよね、通常のSFなら、そこの部分は一種の不条理としてその問題は残されたままになる。オリジナルとコピーの連続性については、目眩めく理論?が展開されるので、お楽しみに・・・小道具としては、メールをフィルタリングしたり、自動的に応答するスクリーニングプログラムの「ラクダの目」というのが各所に出てくるが、この「ラクダ」からはついPerlのマスコットを連想してしまう。

[WinBatchEh] GUI操作ロボット

昨日の夜の8時か9時くらいから朝の6時過ぎまでDell2(DIMENSION 4300S、現在の僕のメインマシンだ)でバッチが動いていた。バッチといってもWindows Batch Enhancerって知っているかな。Paciこと清水洋平さんのWindows用バッチツールである。これを使うとGUIを操作するロボットを作れる。昨晩動かしたバッチではインターネットエクスプローラに表示されたデータをOpenOffice.org Writerに順次貼り付けて850ページ余りの文書を自動的に作成した。よく考えると、このサイトには、TS Networkingのページにしか、清水さんへのリンクがないなあ・・・

[WinBatchEh] WinBatchEhの掲示板

もっと高性能なGUI制御ロボットを書くために掲示板で清水さんに相談。FGALTSのWinBatchEhの部屋も閉鎖状態だから仕方ないね。一応、FGALTSにも書き込んだけど。インターネットの時代だけど、FGALTSに相談を書き込む人がなくならないのも不思議。大体がAWKについての質問なんだよね。日常的にAWKは使わないし、最近はPerlで書いてみせるということもする気はないから、AWKで頭を捻る。簡単な問題なので捻挫はしないが思い出すのに苦労する(^^;)それはそうと、更新日記インデックス作成スクリプトの日付のパターンマッチがなぜか10月から効かなくなったんだけど不思議だ。マッチしないはずはないんだけどなあ(^^;;;スクリプトとデータのHTMLファイルと毎日にらめっこ・・・

[XML] XML::RSSLiteモジュール

RSSについてリハビリ開始。ActivePerl5.8にはXML::RSSモジュールはまだない。代わりにXML::RSSLiteがあるので試してみた。

use LWP::Simple;
use XML::RSSLite;
my $rss = shift @ARGV;
my $content = (get $rss);
parseXML(\%result, \$content);
print "=== Channel ===\n",
      "Title: $result{'title'}\n",
      "Link:  <a href=\"", $result{'link'}, "\">", $result{'link'}, "</a>\n\n";
foreach $item (@{$result{'items'}}) {
print "  --- Item ---\n",
      "  Title: $item->{'title'}\n",
      "  Link:  <a href=\"", $item->{'link'}, "\">", $item->{'link'}, "</a>\n\n";
}

例えば、perl rsslite_test.pl http://slashdot.org/slashdot.rdf とすると、次のような出力が得られる。無論、凝ったHTMLに変換して、サイトにアップロードすることは簡単だろう。

=== Channel ===
Title: Slashdot
Link:  http://slashdot.org/
  --- Item ---
  Title: DMCA Comments Posted At Copyright.gov
  Link:  http://slashdot.org/article.pl?sid=02/12/22/0445252
  --- Item ---
  Title: FreeBSD 5.0 RC2 Almost Ready
  Link:  http://slashdot.org/article.pl?sid=02/12/22/053223
  --- Item ---
  Title: Vote for 2002's "Best" Vaporware
  Link:  http://slashdot.org/article.pl?sid=02/12/22/0228217
  --- Item ---
  Title: Are Blogging and Unemployment Related?
  Link:  http://slashdot.org/article.pl?sid=02/12/21/1931207
  --- Item ---
  Title: Bochs 2.0 Released
  Link:  http://slashdot.org/article.pl?sid=02/12/21/2310236
  --- Item ---
  Title: OptimumOnline Bans uploads to P2P networks
  Link:  http://slashdot.org/article.pl?sid=02/12/21/1930219
  --- Item ---
  Title: Ultimate Webcam: Rent Time On A CCD Telescope
  Link:  http://slashdot.org/article.pl?sid=02/12/21/2217247
  --- Item ---
  Title: FCC Rule Cuts Bandwidth For 72-Mile 802.11b
  Link:  http://slashdot.org/article.pl?sid=02/12/21/1943207
  --- Item ---
  Title: Sharp 3D Monitor Next Year
  Link:  http://slashdot.org/article.pl?sid=02/12/21/207246
  --- Item ---
  Title: InterTrust Says It Owns DRM, Sues Microsoft
  Link:  http://slashdot.org/article.pl?sid=02/12/21/181258

[XML] 年末最後のお勉強、 Ontology

後、2002年も2時間余り、最後のお勉強。立花隆も一つのテーマを追いかけるのに5年ぐらいは費やしているという話を読んで、なるほど、何かやり遂げようと思えば、その程度の時間は十分掛かる。10年掛かるのもめずらしくないと思う。何事も少しずつ勉強を積み重ねるしかないわけだ。それで、お題は"Ontology"。「そんな言葉は聞いたこともないし、何?」と思うかもだが、ビジネスウィーク(2002/3/4)の"THE NEXT WEB"の記事に出ていたぐらいだから、重要な語である。その時出ていた語は三つ。後の二つは"XML"と"RDF"だ。小見出しには、「ワールド・ワイド・ウェブは神の賜物と考えよ?&#32 2005年までに、ティム・バーナーズ-リーはそれをセマンティック・ウェブに置き換えることを目的としている。それは人間の言語を理解するだろう。」とある。Ontologyは英和辞書を引けばわかることだが、哲学の用語で「存在論」という意味である。そしてこの言葉はWebが一般化する前に人工知能(知識ベース)の分野で使われている。Webは人工知能と結びつこうとしているのである。「ontologyは概念化の系統的な仕様書である。この用語は哲学から借りている。哲学ではOntologyは存在のシステマティックな説明である。」(Thomas R. Gruber, "Toward Principles for the Design of Ontologies Used for Knowledge Sharing", Technical Report KSL 93-04, Knowledge Systems Laboratory, Stanford University, August 23, 1993.)

現在、W3Cのサイトには"Web Ontology Language (OWL) Reference Version 1.0"がある。今年の11月12日のワーキングドラフトである。要約には「OWLはワールド・ワイド・ウェブのontologiesを出版、共有するためのセマンティック・マークアップ言語である。OWLはDAML+OIL Web Ontology言語から導かれ、RDF(Resource Description Framework)の上に構築される。」とある。従って、お勉強の順序は、XML→RDF→OWLということになる。まあ、逆にOWL→RDFというほうが早いかもしれない。