2000-12-19 (Tue)
_ RubyHandler
mod_rubyのRubyHandlerの仕様を決めた。
たとえば、次のようなコードでハンドラオブジェクトを生成したとする。
class MyHandler def hanlder(r) ... end def translate_handler(r) ... end end MY_HANDLER = MyHandler.new
このハンドラオブジェクトを次のようなディレクティブによって ハンドラとして登録する。
RubyHandler MY_HANDLER RubyTranslateHandler MY_HANDLER
つまり、ハンドラによって呼び出すメソッドが違う(RubyHandlerはhandler、 RubyTranslateHandlerはtranslate_handlerなど)ため、一つのオブジェクトを 複数のハンドラに登録できるわけ。 これで複数のハンドラ間でデータ共有ができるはず。
後は実装するだけなんだけど、たいてい実装してみると何か問題があるんだよね。
_ HTTPステータスライン
comp.lang.rubyで、mod_rubyで以下のようなコード(ちょっと変更してある)が 期待通り動作しない、という質問があった。
print "Content-Type: text/plain\r\n\r\n" print "hello world"
mod_rubyはNPH-CGI互換なので、HTTPステータスライン("HTTP/1.1 200 OK" とか"HTTP/1.1 404 Not Found"とかいうやつですね)を出力してくれない。 したがって、以下のように自分で出力する必要がある。
print "HTTP/1.1 200 OK\r\n" print "Content-Type: text/plain\r\n\r\n" print "hello world"
でもこんなの面倒だし、他にも出力するべきへッダがあるので、普通はcgi.rbを使う。
require "cgi" cgi = CGI.new print cgi.header("type"=>"text/plain") print "hello world"
これもFAQに追加しなくちゃ。
_ RD::RD2HTMLVisitor
RD::RD2HTMLVisitorって&<>はエスケープしてくれるけど"はエスケープして くれないみたい。 これっていいのかな。
2003-12-19 (Fri)
_ 免許の更新
免許の更新に行って来た。 最近は誕生日からさらに一カ月猶予があるので12/24までに行けばいいらしいけど、 さすがにそんな日に免許の更新に行くのは嫌だな。
なぜか違反者講習しか受けたことがないのだが(まだ若いから更新自体そんなに何回もしてない せいに違いない)、2時間よりちょっと早く終わることが多い気がする。法令とかで定められて いるわけではないのだろうか。
毎回見るビデオだけど、今回はかなり力の入ったドラマを見せられた。主題歌はさだまさし。 最近はやってるんだろうか。
あと、パンフのイラストに「シュミレーター」っ書くのははずかしいからやめた方がいいと 思います。