行ってきました。
感想は……とにかくみんな 軍曹大好きなんですね と言うことで。
あとは、すずきひろのぶさんの GnuPG の基礎……と題して実の中身は 暗号の基礎から X.509, PKI とか幅広く取り上げていた話が面白かった。 今のCAに昔は本当に単一の "root CA" が存在していたなんて 初めて知りました。
しかし本当に参加するばっかで全然手伝っていませんね私。 と言うのが反省事項。
*Backtrace* を見て、自分のも やってみた のだけど……
cross signatures じゃなくて other signatures のところにたくさん出てくるな。
The set of keys is retrieved from the keyserver at wwwkeys.ch.pgp.net,
[PGP pathfinder & key statistics FAQより引用]
とのことなので、こことデータを交換しているサーバに送らないといけないのかな。あとでやってみよう。
どうも mod_jk2 は開発止まってるみたいだけど、mod_jk の方はリリース されてる。でも、その割には検索しても mod_jk2 の設定ログみたいな ものしか出て来ない。いったいどうなっとるんじゃ。
……と、勝手に思っていたのだけれど。
mod_proxy のバックエンドになっている様です。 もう既に 本家に翻訳済みのドキュメント どころか HowToまである じゃないですか。
それに思いっきり
JK2 will have it's successor within core Apache2.1/2.2 distribution. We have developed new proxy_ajp that is an addition to the mod_proxy and uses Tomcat's AJP protocol stack. It is developped in httpd-2.1 and integrated in it. We have also developed a new proxy_balancer module for load balancing http and ajp protocol stacks.
[15 November 2004 - JK2 is officially unsupported!より引用]
って書いてあるやん。何処読んでたんだ > 自分
ずいぶん時間が掛かったけれど、もうだいぶ慣れてきて、 全くテーブルを見ずに打てる様にはなった。 でもまだローマ字打ちより遙かに遅いんだけど。
ともあれ使ってみて思うことは、例えば技術的なマニュアルを 書くと多少効率は落ちるかも。と言うことだろうか。 新聞記事や小説なんかには問題ないのだろうけど、カタカナの用語で "ー" "ぁ" "ぃ" あたりを多用する場合はちと辛い。
ま、でも今のローマ字と同じくらいのスピードで打てるようになれば その欠点を飲んでも早そうだ。まだまだ慣れが必要。
予定が狂った上に人数が集まったので、 買って以来ずーっとほったらかしだった ポータブルカタン をプレイ。みんな殆ど初めてだったのだけど、これは確かに楽しい。 流石に評価が高いだけはあるか。
しかもこのポータブル版、トークンとかがかなり工夫されている。 盤面や各プレイヤーのシート(リファレンスを兼ねる)は マグネットになっていて、駒みんなこれにくっつけて管理できる。 ポータブル版と言うだけあって駒はかなり小さいのだけど、 常に何処かにくっつけておくので吹き飛んだりすることもない。 オリジナルをやったことのある人は材質の面で不満が出るかなー とは思うけど、自分はこれで満足。
ありゃ。本当にイチハラヒロコだったらしい。
あげられている書籍の 「この人ゴミを押しわけて、はやく来やがれ、王子さま。」 はかなり面白いので、興味のある人は是非。
mod_ruby の真価は ruby script が早く動くことではなく apache の挙動を ruby で制御できることだ。 ……というわけで今まで mod_rewrite でやっていた URL 書き換えを mod_ruby のハンドラでやってみることにした。
と、思い立ったのは良いんだけど オフィシャル 見てもドキュメントが全然無い。 仕方ないのでソースと mod_perl のサイトを読む。 URL Translation phase でコードを実行するには RurbyTransHandler ディレクティブに translate_uri メソッドを持つオブジェクトを 指定すれば良いみたい。
自分で調べた部分は Wiki に勝手に追加しといた。
わざわざ singleton を使わなくてもclass のオブジェクトを そのまま渡せばいいや、と言うことでこんな風に。
class SugiTDiaryRewriter BASE_URL = "/diary/" # must end with / def self.translate_uri(r) if r.uri !~ /^#{BASE_URL}/ return Apache::DECLINED elsif r.uri =~ %r[^#{BASE_URL}(\d{6,})(-\d+)?.html?$] new_uri = "#{BASE_URL}?date=#{$1}#{$2}" elsif r.unparsed_uri =~ %r[^#{BASE_URL}(?:index\.cgi)?\?(?:.*&to=)?(\d{6,})] # HNS style new_uri = "#{BASE_URL}?date=#{$1}" end if new_uri r.internal_redirect(new_uri) return Apache::DONE end return Apache::DECLINED end end
このコードを呼ぶために httpd.conf の VirtualHost 内 に以下を追加すればOK。
RubyRequire /etc/apache2/vhosts/sugi/tdiary-rewrite.rb RubyTransHandler SugiTDiaryRewriter
SugiTDiaryRewriter と言う定数はクラスそのものなので、 クラスメソッドの translate_uri が正しく呼ばれます。
うう。後で気づいたけど、英語の方にはちゃんとあった ……。ソースの doc ディレクトリに入ってるのもこれか。
とりあえず debian package にこのドキュメント入れて欲しい と言うのをBTSに出しておく。
もう一つついでにメモ。
上の話は内部リダイレクトを使っているけど、例えば Alias ディレクティブの様にファイルシステムへの マッピングを書きたい時もある。例えば以下のように。
Alias /diary /home/sugi/www/sugi/tdiary
このAliasと同じ事をするには、r.filename に代入してやればいい。 この辺は mod_perl と同じなので、 perl のドキュメント当たった方が早そうですね。
class MyAlias def self.translate_uri(r) if r.uri =~ %r[^/diary(.*)] r.filename = "/home/sugi/www/sugi/tdiary#{$1}" return Apache::OK end return Apache::DECLINED end end
前の時々 Internal ServerError になる現象は tDiary の spam フィルタが Domain Blacklist を引きにいってる間に TERM シグナルを受け取ると (rubyが)デッドロックしてしまうからのようだ。 FastCGI では TERM は「(現在リクエストの処理中ならば完了してから)終了処理に入れ」と言う要求なので単に無視するわけにもいかない。かと言って何もハンドラを定義しないと、処理中に中断される可能性があるのでそういう訳にもいかない。
……と言うところまで突き止めたのだけど、どうしようもないので DNSBL を引かないようにして回避。確かにエラーはでなくなった。
ところでこのサーバでは mod_fastcgi ではなくて mod_fcgidと言うコンパチモジュールを使っているのですが、これがかなり良い感じです。 ただし ExternalServer は使えないけど。
タイミングが謎。 タグ情報の読み込みの時によくなる気がするが、それ以外でも起きる様だ。
仕方ないので暫く xmms に戻してみた。 あれ…… UTF8 locale でちゃんとフォント出てるね。 時間がないので追求は先送り。
電撃で少し前に完結した学園ホラー「Missing」シリーズの作者による、短編集。Missing に登場した魔女と影の人が全編に登場するが(最後の短い1話を除き)直接は関係ない。
一時期グロの方に行ってしまった作者だけれど、これはちゃんと サイコホラーで結構面白い……のだけれど、特に怖いと思わないのは 私が摩耗したせいだろか(カッターナイフの話は痛そうだなーとは思う)。
しかしそれはさておき。 この本電撃からでているライトノベルなんだが、ハードカバーで1300円もする。最近この手の単行本を出しているのは売り上げが頭打ちになってきてて、短期でも良いから1冊の利益をあげようと言う事なんだろうかね。
また遅い話なうえに書きかけです。
内容については素晴らしい議事録 があがっているので、そちらを参照。
個人的にはyoheiさんの発表内で非表示でスキップされたスライドあたりに 興味があったのだけど。そこで紹介されていたプロトコルの話 ( Protocol independence )を後で読むためにメモ。
会場で思ったけれど、REST の概念は CoolURI や Web2.0 とごちゃ混ぜにされてしまってかなり曖昧になっている。 この辺の概念は大体同じような方向を向いているので、それほど問題はないのだけれど、だからこそわかりにくい。
と、思っていたら yoheiさんのblog で REST でよくある間違い と言う翻訳が公開されている。 RESTに興味のある人は必読と言っても良さそうだ。 これ読めば以下のコメントは読まなくても十分。
例えば REST と CoolURI は結構衝突する部分がある。
……と、ずっと会場で考えていて、ふとちゃんと書いてみようと思ったら全然まとまらない。そこで気づいたのだけど、"CoolURI" のちゃんとした定義が無いのだ。あれだけ会場では「CoolURI重要」とか言っていたっていうのに。唯一あるとすればクールなURIは変わらないくらいだが、これは単に不変なURIを設計する指針に過ぎない。CoolURIもどんどん拡大して見えなくなってきてると言うことかな。もしくは私が勝手に妄想していただけかも。ともあれそう言う"CoolURI"とRESTのギャップを書き出してみる。
REST | 一般に言われるCoolURI |
---|---|
リソースにURIを振る(概念/コンセプトに対するポインティング) | 綺麗な整理されたURIを「設計」する |
URI は単なる識別子であって、可読である必要はない (勿論可読でもいい) | 人間が読め、意味が推測でき、URIを人間が組み立てられる (例えば 2005年11月12日に撮った写真一覧の URI が /photo/2005/11/12 だとすると、最後を /13 にすれば次の日だろうとか、 /photo/2005/11 は月の一覧だとか) |
識別子(URI)間の関係を扱わず、識別子をクライアント側で組み立てるのは NG |
これは勝手に考えている事なのでRESTの範囲からは外れるかもしれないけど。
(後で追記する……いつだよ!)
_ Henrich [軍曹好きの一人です。寒い発表ですいませんでした…orz]
_ sugi [いえいえ。面白かったですよ:D それにしてもみんな好きだなぁと。私もですけれど。]