Hub情報局@IT編集部の西村賢がRuby/Rails関連を中心に書いています。X用のRackサーバ「Pow」をオープンソースで公開しました。これまでにない種類のプロダクトで、その使い勝手のシンプルさとアイデアに鼻血が出そうになりました。実装にNode.jsとCoffeeScriptを使っているというのも面白いです。Powの売りは、「Zero-configuration」(設定要らず)ということで、複数のRails/Sinatraアプリをローカルで動かして開発するようなときに、仮想的なドメイン名を手軽に割り当ててアクセスできるようにしてくれる、というものです。RailsやSinatraなどのRackアプリのディレクトリをPowのディレクトリにシンボリックリンクを貼るだけです。~/Projects/myappこれだけで、このアプリには「http://myapp.dev」というホスト名でアクセスできるようになります。Configurationの精神で、ホスト名は「ディレクトリ名.dev」と決め打ちです。Powはインストール時にlaunchd(Mac版のinit、inetdみたいなもの)を使ってファイアウォール設定を書き足していて、「ディレクトリ名.dev」というリクエストが来ると、powディレクトリ下のRackアプリを起動するという仕組みです。1アプリ当たり、最大2ワーカーが起動し、15分間アクセスがないとアプリを終了させます。「localhost」の代わりに名前を付けるために、これまでは「/etc/hosts」を手で書き換えたりしていて、これだと複数アプリを開発環境で動かすための設定が煩雑だった、ということです。37signalsは自社のオンラインのサービス群で共通して使う決済アプリなどがあり、開発に当たっては複数アプリを起動する必要があり、この設定が面倒だったということです。サブドメインを設定して違うアプリに割り当てたり、アプリのディレクトリトップに「.rvmrc」を書いておいて、異なるバージョンのRuby処理系を使って各アプリを起動したりもできますいろいろなアプリを同時並行で開発しているケースなどに便利かもしれませんね。「/etc/hosts」を手でいじるよりも良いアプローチのように思えますから、複数アプリを開発するわけでなくても、Powは使われていくようになるのかも、と思いました。●CoffeeScriptの実例としての面白さPowはCoffeeScriptで書かれていて、http://pow.cx/docs/を見ると、注釈付きでコードが見られます。list)のように面倒なループがスッキリ書けたりするようです。cubesとコンパイルされます。}};にコンパイルされるといった具合です(このへん、CoffeeScriptの公式サイトからサンプルを持ってきています)。打鍵数が多くて嫌われ者(?)のfunctionも不要で、「->」というのでラムダが書けるのってRubyっぽいですよねCoffeeScriptのリアルなコード例が見れるという意味でもPowは面白いなと思います。名前を記憶しておくコメント:SpecialPRスポンサーからのお知らせPR西村賢@IT編集部の西村賢がRuby/Rails関連を中心にブログしています。久しぶりの対面研修で思ったことよく学びよく遊びよく寝る、頭の回転が良い子供がたくさん育つ国になるといいな。新着記事SpecialPR@ITメールマガジンのお申し込み新着記事をいち早く知りたい、オリジナルコラムを読みたい――メールマガジンに登録して、@ITを120%使いこなそう。ITmediaはアイティメディア株式会社の登録商標です。