2006年06月29日

L.L.Ringのチケット購入

L.L.Ringのチケットを購入しました。3年振りに東京に行くことになります。

楽天チケットで申し込みをしてバイクでローソンに行き、Loppiで受け取り手続きをしたのですが、Loppiの操作手順をメモしていなかったので、最初にLoppiを操作したとき何が何かわからずにそのまま帰るという情けない結果に終わりました…。

帰宅して操作手順を携帯のカメラで撮影し、翌日、会社の行き帰りにどこかのローソンに寄って…と思ったけど、通勤路の近くにも会社の近くにもローソンが無い!

しょうがないので帰宅してからまたバイクでローソンまで走りました。

開催は8月26日(土)。前日、会社の帰りにそのまま東京入りして、日曜日の夜に帰宅する予定です。東京の友人に「泊めて」と連絡して宿を確保しなくては。
posted by はしもと at 13:07| Comment(0) | TrackBack(0) | 日記

2006年06月12日

CGI::Session::ExpireSessions 1.08がリリースされました

CGI::Session 4.14がリリースされたことを受けて、古くなったセッションデータを掃除するモジュールのCGI::Session::ExpireSessions 1.08がリリースされました。

CGI::Session::ExpireSessionsはこれまで独自にセッションデータを処理していましたが、今回のCGI::Session::find()のaccess time書き換え問題がfixされたことで、CGI::Session::find()を使うexpire_sessions()メソッドが追加されていました。

これまでのexpire_db_sessions()メソッドとexpire_file_sessions()メソッドも引き続き使えるようですうが、CGI::Session 4.14以降を使えるのであればCGI::Session::ExpireSessions 1.08を導入してexpire_sessions()を使うようにした方が良さそうですね。
posted by はしもと at 18:54| Comment(0) | TrackBack(0) | Perl

CGI::Session 4.14がリリースされました

6月11日付で、CGI::Session 4.14がリリースされました。
Changesに書いてある内容を追いかけてみます。

訳文を書いていますが、あまり信用しないでください(^_^;。

NEW: The find() command now has better documentation.

「find()コマンドのドキュメントが新しくなった」ということかな?次にfind()の変更についての記述があるので、ここは軽く流します。

FIX: find() no longer changes the access or modified times

「find()はaccessとmodifiedの時刻を変更しないようになった」かな?
これまでのバージョンでは、find()メソッドを使用して保存されているセッションデータを検索した場合でも、_SESSION_ATIMEが書き換えられてしまっていたようです。
このため、古いセッションを探して削除するような処理にはfind()を使えない、ということになってしまっていました。これがこのfixで解消されたのでしょう。

FIX: param() called with two parameters now returns the value set, if any

「param()は二つのパラメータで呼ばれた時に、設定した値を返すようになった」かな?
これまでは、param()に二つのパラメータを渡す、つまりキーと値を指定して値を書き換えた時に、常に真値(数値の1)を返していました。
これが、このfixで、設定した値をそのまま返すようになったようです。

ソースを読んでみたところ、param()は
    $s->param($name1 => $value1, $name2 => $value2 [,...]);
という記述を許可しています。一度に複数のキーと値のセットを変更できるということですね。
この呼び出しの場合、param()が返す値は$value1になるようです。
これはドキュメントに書いていない方法なので、使う場合には注意した方がよさそうです。

FIX: driver, serializer, and id generator names are now untainted

「driver、serializer、そしてid生成名はuntaintされるようになった」かな?
これまで、インスタンス生成時に渡される
"driver:DB_File;serializer:FreezeThaw"
のようなData Source Nameは、分割されてもuntaint処理はされていなかったようです。これが、
"CGI::Session::Driver::" . ($self->{_DSN}->{driver} =~ /(.*)/)[0]
のように、untaint処理をしてからモジュール名を生成するようになっていました。

INTERNAL: automatic flushing has been documented to be unreliable, ...

ちょっと長いので文章を切りました。実際にはこう書いてあります。
INTERNAL: automatic flushing has been documented to be unreliable, although it was recommended in the past. Automatic flushing can be affected adversely in persistent environments and in some cases by third party software. There are also some cases in which flushing happened automatically in 3.x, but quit working with 4.x. See these tickets for details.

http://rt.cpan.org/Ticket/Display.html?id=17541
http://rt.cpan.org/Ticket/Display.html?id=17299
長くて、ボクの英語力では訳文を載せることはできません(^_^;。意味としては「自動フラッシュは3.xの頃は動作していたが、4.xではしないようにしてください」みたいな感じのようです。ああ、これすら怪しいかも…。

二つあるURLの一つ目は、DESTROYブロックでflush()メソッドを呼び出すようにするとおかしなことになる、ということのようです。

二つ目もflush()メソッドに関することのようです。

Session.pmのdiffを見ても、これに関するソースコードの修正は無さそうでした。見落としている可能性はありますが。
ドキュメントには、flush()メソッドの項に文章が追加されています。
Synchronizes data in memory with the copy serialized by the driver. Call flush() if you need to access the session from outside the current session object. You should at least call flush() before your program exits.

As a last resort, CGI::Session will automatically call flush for you just before the program terminates or session object goes out of scope. This automatic behavior was the recommended behavior until the 4.x series. Automatic flushing has since proven to be unreliable, and in some cases is now required in places that worked with 3.x. For further details see:
この後に、さっきのURL二つが続きます。

前半はプログラム実行中にflush()メソッドを使うべき、みたいな記述だと思うのですが、間違っているかもしれない文章を書いて、たまたまそれを見つけた人が混乱してしまうかもしれないので、原文そのままにしておきます。
以上、曖昧な点の多い文章になってしまいましたが、CGI::Session 4.14の今回のUpdateについてでした。
posted by はしもと at 03:04| Comment(0) | TrackBack(0) | Perl

2006年06月11日

Kansai.pm 第1回Perl翻訳フェスタ

6月10日(土)、Kansai.pm主催の「Kansai.pm 第1回Perl翻訳フェスタ」に行ってきました。

このイベントは、
みんなで集まってPerl関係の文章を翻訳しよう!
という主旨のイベントです。

イベントの告知が遅くなって直前に流したにも関わらず、9名ぐらいの参加がありました。

ボクは英語のドキュメントは目を通してある程度の意味をなんとか読み取ることはできるけど、翻訳という形で文章にするほどの英語力がないので、翻訳された日本語文章のチェック係のつもりで参加してきました。

最初に、翻訳支援ツールの「OmegaT」について、Skypeを使ったリモート講演で説明してもらいました。Javaベースのツールで、MacOS Xならインストールも楽々。アーカイブを展開するだけで環境が整います。

昼食を食べて、「perldocjp」についての講演を聴き、翻訳開始。

最初、perldocjpに登録されているモジュールの翻訳ドキュメントの「Config::Simple 4.55」を元に、最新バージョンの4.58のドキュメントを翻訳してみようと考えました。

両バージョンのアーカイブをダウンロードし、PODを抜き出してdiffで比較してみると…。ドキュメントは全然変更されていませんでした。どうやら、この2つのバージョン間の違いはバグ修正のみで、ドキュメントには変更がなかったようです。

その後、少しPerl6::Pugsの付属文章の翻訳をしてみようとしたのですが…。ははは…。

夜、19時半頃に残っていた5人で夕食に出かけました。会場近くにあるイタリア料理のお店です。

料理はとても美味しかったのですが、出てくるのがゆっくりで、食べ終わったのがイベント終了予定の22時直前でした。こういう店には時間があるときに行かなければ。

イベントの感想としては、えっと…。

OmegaT、フリーだけどとてもよくできたソフトだと思います。翻訳メモリとして蓄積されていくので、ドキュメントのバージョンが上がった時にもバージョンの追随が簡単になりそうです。

翻訳を開始してしまうとみんなで黙々と作業する事になるので、2時間毎とか定期的に休憩を挟んで情報交換とかをするのも良さそうです。

こういうイベントは継続して定期的に行わないといけないですね。イベント発案の井上さんも次回は年内には開催したい、と話していたので、またお手伝いとしてでも参加したいと思います。
posted by はしもと at 15:55| Comment(0) | TrackBack(0) | Perl

2006年06月04日

PC不調

気が付けば5月は1回しか記事を書いていませんでした…。それも、特に内容のある話じゃないし…。

いや、それ以前の記事にもちゃんと内容があったかどうかは疑わしいところなのですが(^_^;。




もうずっと前からなのですが。自宅Windowsマシンが不調です。

去年は、起動に失敗するとか、メモリチェックを失敗するとか、終了時に終了してくれないとかいろいろ問題があったので、年末にマザーボードを交換したのでした。

メモリチェックの失敗は、最初はメモリが悪いのかと思ったのだけど、新しいメモリに差し替えてみても改善しないので、メモリには問題が無かったようです。

マザーボードを交換してそれらの問題は改善されたのですが、今度は1日1回勝手に再起動をするようになってしまいました。

始めのうちは1日1回で済んでいたのですが、いつの間にか1日数回になってしまいました。それまで見たことの無かったブルースクリーンも時々出るようになってしまいました。

マシンは、3年ほど前に買った某ショップの組み立てキットです。ロクに知識も無いのに適当に組み立てたから、どこかおかしかったのかも…。

CPUとマザーボードを交換したらいけそうな気もしますが、組み立てが不安になってしまったので、ショップブランドの完成品を買おうかと考えています。

iBookをMacBook(またはMacBook Pro)に買い換えたかったけど、次期OSが出てからにしよう…。
posted by はしもと at 22:54| Comment(0) | TrackBack(0) | 日記