Charsbar::Note

2012/01/20

Perl QA Hackathon 2012について

たぶん興味のありそうな方にはすでに何らかの形で情報が届いていると思いますが、3月30日から4月1日までの3日間、パリでPerl QAチームのハッカソンが開催されます。

http://2012.qa-hackathon.org/qa2012/

私も以前から行きたいと思っていて、実際昨年も会場では直前のOSDC.TWで発表したスライドを取り上げてもらったりしていたようなのですが、今年はYAPCのLTでちらと話したCPANTS/Kwaliteeの件で海外勢からもいくつか反響をいただいていたので、思い切って参加してみることにしました。

参加者一覧と、今年話題になりそうなテーマは下記にまとまっていますが、思った以上に関心が寄せられているCPANTSのほかにも、PAUSEフロントエンドのPlack移行とか、MetaCPAN、Module::Build::Tiny、スモーカーまわりの話など、CPANを支えるさまざまなツールについて、議論や実装が進みそうです。

http://2012.qa-hackathon.org/qa2012/wiki?node=Attendees

参加申し込みは今月末までで、フランス以外に住んでいるハッカーの渡航費やハッカソン公式ホテルの宿泊費(二人部屋、三人部屋)についてはいま主催者側の方でさまざまな伝手をつかってスポンサーを募集してくださっていますが、下記予算にある通り、まだ全額カバーできるほどにはなっていないようです。もしスポンサーになってもいいという企業・団体の方がいらっしゃいましたらお知らせいただければさいわいです。

http://2012.qa-hackathon.org/qa2012/budget.html

また、あわせて個人スポンサーも募集しているそうです。貢献はしたいけどパリは遠すぎるとか言葉の壁が……という方はこちらもご検討ください。

http://2012.qa-hackathon.org/qa2012/donate.html

2012/01/19

DBD::SQLite 1.36_01

遅くなりましたが、1.35のリリース以降いくつか不具合の連絡をいただいていたので、ひとまずsegfaultするものを中心に修正しました。特に64ビット環境でお使いの方は更新&テストをおねがいします。

なお、今回の版ではバンドルされているSQLite側のライブラリの都合で内部スキーマのバージョンが変更になっているため、新しく作成するデータベースファイルについては作成時に「legacy_file_format」というプラグマを有効にしておかないと、2006年以前のSQLiteでは読めなくなります。ほとんどの方にはいまさら関係ないとは思いますが、大昔のシステムを維持管理している方には影響があるかもしれませんのでご注意ください。

ちょっとしたおまけ機能として、SQLiteのAPIをたたくsqlite_traceとsqlite_profileという独自メソッドも実装しておきました。使い方はこんな感じ。本気でトレース/プロファイルしたいときには物足りませんが、DBI標準のDBI_TRACEやDBI_PROFILEを経由したトレース/プロファイルだと情報が多すぎるという向きには便利かもしれません。

use strict;
use warnings;
use DBI 1.609;

my $dbh = DBI->connect('dbi:SQLite::memory:');

$dbh->sqlite_trace(sub { my $stmt = shift; print "$stmt\n" });
$dbh->sqlite_profile(sub { my ($stmt, $time) = @_; print "[$stmt] $time\n" });

$dbh->do('create table foo (id)');
$dbh->do('insert into foo values (?)', undef, 1);

なお、sqlite_traceについては、DBI標準のtraceメソッドと衝突するため、古いDBIでfuncを使って呼び出すときも $dbh->func(sub {...}, "trace");のような形ではなく、$dbh->func(sub {...}, "sqlite_trace"); のように明示的に「sqlite_」をつけてください。

2011/12/04

手元のPODを簡単・綺麗に見るひとつの方法

ほかにもやり方はいろいろあるわけですが、カレントディレクトリにCPANモジュール風のディレクトリ構成をもった何かがあるとすると、コマンドラインから

> cpanm Mojolicious Pod::Simple (必要なら)
> mojo generate lite_app podviewer
> perl podviewer daemon

とタイプして、http://localhost:3000/perldoc/lib/Hoge のようなURLを見ると、http://mojolicio.us/perldoc 以下で使われているPODビューアを構文ハイライトやらなにやら込みで利用できます。

また、実際には@INCの中をチェックしているので、必要ならpodviewerを起動するときに-Ilibを追加するか、podviewerの中でuse lib "lib";のような行を追加してやると、http://localhost:3000/perldoc/Hogeでよくなります。深い階層のモジュールの場合は、http://localhost:3000/perldoc/Hoge/Fuga ないし、http://localhost:3000/perldoc/Hoge::Fuga で大丈夫です。

Pod::Simpleが十分に新しければ=encoding sjisのような指定を入れておけばsjisのドキュメントも読めますし、便利な場合も不便な場合もあるとおもいますが、検索範囲内に存在しないモジュールを検索した場合はmetacpanの該当ページに移動してくれます。

機会があったらお試しあれ。

2011/11/29

DBD::SQLite 1.35

ほかのモジュール管理チームからのリクエストで予定より一週間ほどリリースが遅くなりましたが、DBD::SQLite 1.35が出ました。変更の詳細については過去の後方非互換についての記事と、mod_perlとの相性問題についての記事をご確認ください。また、私自身はまだきちんと比較検証していませんが、本家の方でインデックスやらソートやらが高速化された成果が取り込まれています。性能に関心がある方はぜひ確認してみてください。

次の安定版リリースは(SQLiteチームからの更新勧告がなければ)きっとまた半年後とかになってしまうかと思いますが、いまのところコードフリーズ中に寄せられたUnicode対応の強化の件や、FTS4やらなにやらへの移行等々が検討課題にあがっています。また、以前から検討課題にあがっていたsqlite_use_immediate_transactionについてもデフォルトで有効にする方向で話を進めようとおもいます。

2011/11/21

うちのPPMリポジトリの件

諸事情あって春先にサーバを借り換えたあと半年ほど消えたままになっていたのですが、お問い合わせをいただいたので取り急ぎ最低限リポジトリの動作に支障がない程度に復旧しておきました。内容についてはかなり古くなっていますので、古い環境にPlaggerをインストールするのでもなければひとまずActiveStateのリポジトリを利用した方がよろしいかとおもいます(そのうちなんとかします。しばしお待ちをば)。