2009年6月29日月曜日

[Perl] CPXXXANプロジェクト

CPXXXANは古いバージョンのPerlでも動くCPANモジュールのリストを作ってダウンロードできるようにするという発展途上のプロジェクトである。

Perlはこの数年でバージョン5.6、5.8、5.10と進化してきたが、未だに5.10より前の古いバージョンを使い続けている人もいる。しかし、5.6のユーザーが普通にCPANに行ってDBIモジュールをダウンロードしても動かない。最新のDBIは5.6に対応していないからだ。CPXXXANはこの問題を解決するべく開発されている。

CPXXXANという独立したソフトウェアがあるというよりは、Perlのバージョンごとに用意されたURLを通してCPANにアクセスするという言い方が近い。

さて、CPXXXXANを試してみよう。

試す前に環境のテスト

普通にCPANシェルを起動して最新のDBIを取得してみる。

% cpan

cpan shell -- CPAN exploration and modules installation (v1.94)
ReadLine support enabled

cpan[1]> get DBI
...
DBI-1.609/
DBI-1.609/Changes
DBI-1.609/dbd_xsh.h
...

最新版の1.609がダウンロードされる。

CPXXXANの設定

たとえばPerl 5.6.2を使っている場合、CPANのターゲットURLをhttp://cp5.6.2an.barnyard.co.uk/に設定する。

cpan[2]> o conf urllist http://cp5.6.2an.barnyard.co.uk/                     
Please use 'o conf commit' to make the config permanent!

cpan[3]>

ここで「o conf commit」とすると設定ファイルが上書きされるが、今は試して遊んでいるだけなので上書きはしない。

CPXXXANからダウンロード

上でCPANのURLを設定した後、

cpan[3]> reload index
...
Fetching with LWP:
http://cp5.6.2an.barnyard.co.uk/authors/01mailrc.txt.gz
...

としてPerl 5.6用に作られたインデックスファイルを取得する。

さてDBIをもう一度ダウンロードしてみよう。

cpan[4]> get DBI
Running get for module 'DBI'
...
DBI-1.604/
DBI-1.604/Changes
DBI-1.604/dbd_xsh.h
...

と、1.604がダウンロードされた。これが5.6.2で動作するDBIの最新バージョンである。

まとめ

さまざまなしがらみで古いバージョンのPerlを使わざるを得ない人は多い。「古いPerlはサポートしません」というのはモジュール作者の自由だが、このようなやり方で古いPerlのユーザーを救済するやりかたは美しい。正式公開が待たれる。

ちなみにこのプロジェクトの存在はPerl Seminar NYで教えてもらった。

2009年6月28日日曜日

Doodle 4 Googleの展覧会がNYで開催中

Doodle 4 GoogleとはGoogleのトップページのロゴをデザインするコンテストだ。Google社が米国の高校生以下の子供を対象に開催していて、今年が2回目である。

現在ニューヨークのCooper-Hewitt, National Design Museumという美術館で入選作品を展示しているので行ってきた。

Cooper Hewitt

同じものが結果発表のページで見られるのでどうということはないはずだが、やはりその「もの」を見るのはいい。

3万点近くの中から選ばれたとあって超力作ばかり。子供らしさを全面に押し出したものよりは、プロのデザイナーのように洗練された作品が多い。

ちなみにこの美術館、このあたりでは珍しく館内の撮影が禁止だ。

この日本語のブログを読んでいる人はほとんど日本在住だろうし、ニューヨークの人でさえ「それインターネットで同じのが見られるよ」と言われそうだが、お時間のある方はどうぞ。7月5日まで。

2009年6月27日土曜日

簡体字から繁体字の変換をGreasemonkeyで

簡体字の文章を日本の漢字に変換するツールが公開されている。

同じ要領で簡体字から繁体字に変換する方法はないかと探していたら、案の定Greasemonkeyを公開している人がいた。

ただ、これをそのまま実行すると日本語のページさえ繁体字に変換されてしまう。恋愛が戀愛になってしまうとあまりラブリーな感じがしない。

完全な解決方法ではないが、スクリプトを1行だけ変えてひらがなが入っているノードは繁体字に変換しないようにした。

function traditionalize(cc) {
if (cc.match(/[ぁ-ん]/)) return cc; // ここ
var str="";

繁体字から簡体字への変換

その逆に、簡体字への変換を行うGreasemonkeyもある。