彼女のステータスを返す日々着実にバカな方にバカな方に向かってるのを実感してるfaultierです、みなさんお久しぶり。一昨日あたりに見かけた「彼女がいないことをステータスコード404で表わす」ってのが大変ツボに入ったので、今日はせっかくだから実際にそれを実装してみたよ。なんと以下のURLをGETすると「faultierの彼女」ってリソースがいまどんなステータスなのか返してくれるんだ。http://faultier.jp/resource/kanojo...まぁ俺に彼女がいるかどうかなんて瑣末なことはどうでも良くて、一応これGET/POST/PUT/DELETEに対応してて、それぞれ違うレスポンスを返すように作ってあるので、生まれついてのHTTPクライアントな感じの少年少女紳士淑女な方々はいろんなリクエストを送って「リソース:faultierの彼女」をいじってみるといいと思うんだ。操作しようが何も起きませんが。何、あんま使わないからってサボってGETとPOSTしか実装してない?しょうがないやつだな、GETするときにURLの末尾に/putとか/deleteとか入れてみなよ。それっぽい動きするから。teapot」とかも実装する予定。あ、あとちなみに、GETするときにmode=prevとかmode=nextってクエリを付けると「前の彼女」「未来の彼女」についての情報も返ってくる。追記:418も実装した。ついでに多少ステータスコードをいじった。そのリクエストにそのレスポンスは普通無いだろ、みたいのがあるとあれなので。あと、HEADを忘れてたのでHEADも対応した。Rack可愛いよRackネタはネタとして置いとくとして、今回はこれをRackとHamlを使って作ってみた。何でかというと、今Ruby版Atompub::Serverみたいの作ってて、RailsやMerbのプラグインもそのうち書くつもりではいるんだけど、まず単体でサクっと動くの作りたいなと思っていろいろいじってるところだったから。Hamlは興味はあったんだけど中々触る機会がなかったので、ついで。なんというか、Rackは素敵だなぁ。この程度のものを作るのにちゃんとしたWAFを使うのもなんだかゴキブリ退治に対戦車ミサイル持ち出すみたいで気がひけるんだけど、かといってCGIってのもねぇ、みたいなときにもとても良い。簡単な認証とかロギングとかセッションとかは添付のミドルウェア使えば実現できちゃうし、WEBrickとかで簡単にローカル環境で開発サーバ作れちゃうのも魅力的。そんでもって深く考えなくてもWEBrik、thin、mongrel、fcgi、Passengerと色んな環境に対応できちゃうのも素敵だ(というかそれは話が逆で、そのためのインターフェースライブラリなんだけども)。なによりRack::Testが便利すぎる。こんなしょうもないアプリでもちゃんとSpec書いたんだぜ、あんまり簡単だったから。ハムは食べたいけどもHamlの方は、なんというか、結構微妙。いやまぁ、確かにすっきりシンプルなテンプレートが書けるんだけど、普段見なれてるHTMLから乖離しすぎててちょっと抵抗あるかも。学習コスト考えたら素のHTMLとRubyをそのまま書けるerbやその派生/改善版のテンプレートエンジンのがよっぽどとっつきやすい気がする。一人でやってるときはともかく、デザイナーやマークアッパーとの分業で仕事してると、これ出力がどうなるか想像しながらやんなきゃならなくて作業しづらいんじゃないのかなーとか思ってしまう。言え不思議な魅力もあるのも確かで、文句言いながら書いてたけど数分後にはなんとなく慣れてしまった。趣味でなんか作るときにはしばらく使ってみようかなと思ってたりする。ところで一応言っとくけど、あそこからエントリーしても別にデータとか保存してないしメール送ったりもしないので、安心して彼女の名乗りを上げるといいよ!まぁ本当に名乗りたければあんなとこで慎しやかに名乗られても困るけど、いないよねそんな人。10:45どうやらUnicornというのが良いらしいという噂を聞きつけたので、どんなもんじゃろと試してみることにした。02:26このブログではまず滅多にPerlの話を書かないのだけど、実は仕事ではPerlばっかり書いてたりする。16:28「彼女のステータスを返す」のソースが読みたいというリクエストがあったので、少し書き直してgistに上げてみた。一応上の状態でrackupすれば動きます。hamlとrackの最新版が必要な他は特に何も要らないはず。ちなみにRubyのバージョンは1.8.7。00:30昨日のネタではRackで簡単なアプリを作ってそれを複数立ち上げたThinで動かしつつ、表のApacheからmod_proxy_balancerで適当にプロキシしてやるって構成にした。Railsとかでもよくやるので慣れてるし、扱い易いので好きな構成だ。