mod_rewrite で外部ホストへ転送(で良いのかな?)2009/06/08

mod_rewrite には 'proxy|P' (force proxy) というフラグがあるらしい

http://httpd.apache.org/docs/2.2/ja/mod/mod_rewrite.html#rewriterule

'proxy|P' (force proxy)
  This flag forces the substitution part to be internally 
  sent as a proxy request and immediately (rewrite processing stops here) 
  1put through the proxy module. You must make sure that the 
  substitution string is a valid URI (typically starting with http://hostname) 
  which can be handled by the Apache proxy module. 
  If not, you will get an error from the proxy module. 
  Use this flag to achieve a more powerful implementation 
  of the ProxyPass directive, to map remote content into 
  the namespace of the local server.

いやまあ、とあるドメインで稼動している Apache のサブディレクトリを 全く別のホストに割り当てたいという要求があって、 リバースプロキシをかけるなら mod_proxy だろJKぐらいの勢いで用意した設定を、FQDNを割り当てられているホストの管理者に投げたら 「うちのホストは mod_proxy を有効にしていないんで(ry)」みたいな返答が返ってきた。

mod_rewrite を使って欲しいと言われたのだが、mod_rewrite なんて同一ホスト内でのパスの書き換えの黒魔法ぐらいにしか使った事がないし、試しに書き換え後のアドレスにホスト名から書いてみたところ、 'redirect|R' (force redirect) のフラグの有無に関わらず、redirectになってしまう。

「んじゃ、そっちのWebサーバからAPサーバの転送ってどうやってんの?」 と教えてもらったのが、このフラグ。

だけどさ、同じセクションに

Note: mod_proxy must be enabled in order to use this flag.

と書いてあるのだが……。

はてブ2009/06/11

お仕事でやってる某サイトの未公開ページ、というか、トップからリンクがまだ無いページにはてブからリンクが張られていてビビる。

内部の犯行か?

それなりに期待いただいているようで、ちょっと嬉しい。

いやまあ、それだけですが。

(追記)

別のプレス資料にURLが記載されていたらしい……。 うーむ。

ターミネーター42009/06/14

なんか、シナリオというか設定が納得いかんですよ。
アクション映画としては、普通に楽しめる出来だと思うけど、色々気になって仕方がないです。

なんか反乱軍の装備が充実しすぎです。
Sky-netには接続されてないのだろうけど、LAN接続されたPC群とか、良く整備された攻撃機やヘリコプター、
それらを維持できる兵站が存在するなら、普通に戦争やって勝てるんじゃね?

一番面白かったのは、ターミネーター(の一部モデル)にはUSB端子が装備されているらしいということ。
(ジョン・コナーが、移動手段を手に入れるために、バイク型ターミネーターをPDAでハックするシーンがある)

Safari4 と Cookie2009/06/18

Safari4 は value が http escape されていない等、 おかしな set-cookie ヘッダを含む レスポンスを受け取った場合

  • 同じレスポンス内の set-cookie ヘッダを(それ自身は正常でも)すべて無視する
  • その他、ページのレンダリング自体は通常どおり処理する

ようだ。

ちょっとハマったのでメモ

Safari には Firefox の Live Http Headers のようなプラグインは無いのかな?

天下一プログラマー2009/06/19

天下一プログラマーコンテスト via MEMOはてな支店

名前が素敵。 ってのはともかく、今一ターゲットが不明。 提示されている例題を含めての話。

天下一

天下一なんて冠をつけたからには(うちのSKKのJIS-L辞書には入ってない単語だけど、多分DBを意識しているんだよね?)geek方面を意識しているんだと思う。

で、実際

審査基準
 1. 出題通りに正しく動作するか
 2. 所要時間
 3. コードのエレガントさ

とあるわけだけど、これで例題が

以下の文字列はUTF-8を文字エンコーディング形式とする16進数のバイト列である。
UTF-8でエンコーディングされた文字列として解析した場合、
この文字列の【文字数】を答えなさい。

e4bba5e4b88be381aee69687e5ad97e58897e381af5554462d38e38292e69687e5ad97
e382a8e383b3e382b3e383bce38387e382a3e383b3e382b0e5bda2e5bc8fe381a8e381
99e3828b3136e980b2e695b0e381aee38390e382a4e38388e58897e381a7e38182e3828be38082

ってのは何か違うんじゃないかなあ。

こんな問題に "出題通りに正しく動作するか" 悩んだり、 "所要時間" が計測可能な程時間を掛けたりする "天下一プログラマー" は居ないよ。

"コードのエレガントさ" に関しても、主題に頭を使う部分が全くないので、小手先のそれこそGolf的な凝り方しかすることがないと思う。 んで、(個人的にGolfは好きだけど)これも "天下一プログラマー" の要件では無い。

  • バイト列が実はUTF-8符号化として正しくないとか
  • 幅無しの空白文字が含まれていてこいつの「文字数」は0なのか1なのかとか
  • 解答に与えられる時間が秒単位だとか

ぐらいの制限なりひっかけなりが無いと、コンテストとしての面白みに欠けると思うけど、どうだろう?

蛇足

あと、細かいところだと"16進数のバイト列"って表現もおかしい。 "バイト列の16進数表記"ぐらいなら我慢もできるけど。

"以下の文字列は、ある文字列をUTF-8で符号化したオクテットストリームを16進数表記にしたものである。" が正しいと思う。

ちなみに、僕の解答は

p <<EOT.gsub(/(.)./){$1}.tr("8-b\n",'').size
e4bba5e4b88be381aee69687e5ad97e58897e381af5554462d38e38292e69687e5ad97
e382a8e383b3e382b3e383bce38387e382a3e383b3e382b0e5bda2e5bc8fe381a8e381
99e3828b3136e980b2e695b0e381aee38390e382a4e38388e58897e381a7e38182e3828be38082
EOT

#=> 41

こんな感じ。

MEMOはてな支店 ここの最初の例と全く同じですね。

(追記)

この手の問題をわんこそば形式でひたすら解いていき、一定時間内の正答数を競うコンテストはそれなりに面白いかも。

と思ったけど、それってなんて Project Euler