RubyKaigi2009 スペシャルレポート

Ruby会議2009 3日目レポート[更新完了]

この記事を読むのに必要な時間:およそ 11.5 分

東京都千代田区の学術総合センターにて3日間にわたって,RubyKaigi2009が開催されています。本ページでは,3日目のレポートを随時掲載していきます!

世界各地からRubyistが集まっている本イベントも最終日です。

画像

※今回のレポートは,一橋記念講堂でのセッションを中心にお送りします(全セッションを回れておりません。ご了承ください)。

メトロー ジョンさん「Edo Cabinet」

メトロー ジョンさんは,日本語で発表してくれました!発表内容は,平林幹雄さんが開発したTokyoCabinetとTokyoTyrantをRubyから簡単に操作するRufus::TokyoとRufus::Edoの紹介です。

TokyoCabinetは平林さんがRubyバインディングを作成していますが,Cライクな書き方しかできませんでした。Rufus::TokyoはRuby FFI(Foreign Function Interface)を利用し,TokyoTyrantと通信するライブラリです。プロトコルはTyrantプロトコルで通信を行います。

Rufus::Tokyoは,SQLのテーブルのような記述で表現できることだと説明しました。SQLとの違いは,スキーマではなくハッシュであるところです。ローカル接続だけでなく,リモートのコネクションも可能であることを項目としてあげました。

Rufus::TokyoではFFIを利用していましたが,FFIはC拡張と比べると低速です。そこで,C拡張としてRufus::Edoを開発したそうです。Rufus::Tokyoと同じ記述で利用できます。FFIを利用する場合やリモート接続をする場合はRufus::Tokyoで,そうでない場合はRufus::Edoと使い分けてほしいと述べていました。

また,Ruby::TokyoTyrantというライブラリがあり,Rubyで最も高速だと言われていますが,このライブラリでもRufus::Tokyoのような記述が可能だということです。

会場から,keyにSymbolを書くとクラッシュしてしまうのでSymbolを書けるようにしてほしいと,ライブラリを改善するフィードバックがありました。

画像

画像

Andriy Hnativさん「Checking Interactively-Developed Code」

対話型プログラミングでのエラー検知について,Andriy Hnativさんが発表しました。

Rubyにはirbという対話型インタプリタがあります。コード片を書きチェックすることができ,すぐにフィードバックが得られます。また,コードに集中でき,コンパイルの必要がないためエラーを早めに発見できます。

irbの問題点は,実行するまでエラーがでないこと,依存しているコードが実行されるまで対象のコードが実行されない点です。例として,まだ完成していない関数を呼び出すと,他のコードの部分のテストができません。また,分岐によって変数の型が変化する場合,その後のコードは実行するまで動作するかわかりません。

この問題を解決するため,Rubinというシステムを開発したそうです。Rubyの型は動的なので,実行時まで型チェックを行いません。型をあらかじめ記述する方法もありますが,Rubyには合わないだろうと述べ,別のアプローチを紹介しました。

対話的プログラミングの場合,プログラム全体を見ることができません。このため,逐次的なチェックでは,正しいプログラムを謝りであると解析することがあります。 そこで,型チェックの義務を持たせ,新しくコードを書くとき既存コードとの型チェックを行う方法を採用したとのこと。loopに入っていないnext,breakなどもチェックできると述べました。

JRubyを利用し,二つの型変数が正しくバインドされること,expressionが正しいことを保証することを説明しました。Rubyのシンタックスを変更することなく利用できます。また,jirbにコードをはりつけ,エラーを検知するデモを披露しました。

会場からは,すぐに試せるかという質問がありました。これに対しては,修士号のために作っているのでまだ公開できないが,12月に公開したいと回答しました。

画像

画像

Joshua Hullさん「To the Edge of Web Performance and Beyond」

Joshua Hullさんの発表は,Webページのサーバサイドのキャッシュの問題についてです。キャッシュを利用することでとても高速になりますが,Railsなどで,HTMLの断片をどのようにキャッシュコントロールするのかが問題となります。

この問題に対し,ESIという規格を紹介しました。これは,Webページに他のファイルを取り込み,最終的なページを組み立てるというものです。ESIはAkamaiが提案し,現在W3Cに提案されていますESI Language Specification 1.0)。

ESIは,include,try,var,chooseのタグがあります。 includeには,読み込むソースのURLを渡し,エラーの場合どうするかを定義します。 tryには,実行することと,失敗した場合行うことを記述します。 chooseは,条件から動作を選択します。 varは,変数の定義をします。

mongrel用のmongrel-esiや,nginx用のnginx-esiなどが開発されていることとについても言及しました。また,esi-for-rackを昨日リリースしたそうです!nokogiriをパーサとして利用しています。ESIの実装はまだ少ないので,自分で作って公開してくれると嬉しいと語りました。

そして,ESIの記述をRailsなどのviewとして利用できる,spackleというライブラリを公開しているとのこと。rack-temperproofというライブラリは,Rackのミドルウェアとして動作します。SHA1でcookieの偽造を防ぎます。

ESIの問題点として,仕様にまだあいまいな部分があることを指摘していました。会場からは,この規格はW3Cの勧告ではなく,Notesの段階であると補足がありました。

画像

画像

角谷信太郎さん「Regional RubyKaigiのご報告」

RubyKaigi2009の運営委員長を務める角谷さんの発表は,去年のRejectKaigiで角谷さんご自身から提案された「Regional RubyKaigi(地域Ruby会議)」の紹介と開催報告でした。

まず,アメリカの「RubyConf」の発展の歴史を振り返り,日本のRubyKaigiも同じ流れを踏襲していると説明しました。最初にRubyKaigiが開催されたのは2006年。その後,開催を重ねるごとに参加規模は大きくなり,応募された発表が「不採用」となることも多くなりました。そこで,発表の場自体を増やすために生まれたのがRubyKaigiです。

これまでの1年間(日本のRuby暦では,RubyKaigiが開催されてから次のRubyKaigiが開催されるまでを「1年」と数えるそうです :-D)で日本全国8ヶ所で開催されたRegional RubyKaigi。開催地は開催順に東京,札幌,関西,九州,仙台,松江,栃木,広島です。Web上でもWEB+DB PRESS Vol.50に掲載されたRegional RubyKaigiの特集や,Rubyist Magazine 0025号0026号などに情報がまとまっています。

角谷さんは,Regional RubyKaigiのWebサイトの最上部に掲げられているD.A.Blackからの引用をもう一度持ち出し,Regional RubyKaigiへの大きな期待の気持ちを表しました。

きのう,RubyKaigi2009の開催2日目には,企画部屋で「RubyKaigi Kaigi」が開かれ,「Regional RubyKaigi season #2」についての会議が行われました。これから開催してみたいという地域も含めて,2年目・2周目に突入するRegional RubyKaigi。今後も全国各地で開催されることになるでしょう。また,「Regional RubyKaigiだけではなく,勉強会のようなカジュアルなイベントを気軽にどんどん開催したい」という会場からの声には「いいぞもっとやれ!」と回答があり,ますます盛り上がっていきそうです。

コミュニティセッションらしい,ぽかぽかムードに包まれた温かい発表でした!

画像

画像

増満工将さん「上海のRailsコミュニティー! 日本がぼやぼやしている間に、上海はアツイ!」

コミュニティセッション2つ目の発表では,増満さんが上海でのRuby,Railsコミュニティの盛り上がりを伝えてくれました。

ある日,上海の友人から「上海でRubyのイベントを開催してMatzを呼びたい」と相談を受けた増満さん。「彼はとても忙しいし,難しいんじゃないかなぁ…」と答えると,「YES YOU CAN DO IT!」と元気な言葉が返ってきたそうです。その後,友人たちは3日でイベントのためのWebサイトを構築,開催ミーティングを設け,ロゴまで作ってしまいました。

ついには「Ruby Conf China」は現実のものとなりました!そして夢であった「Matzを招待」も実現され,そのときの上海RubyistのTwitterのタイムラインでは「Matz大神 光臨」という言葉が躍ったそうです。まつもとさんの発表は日本語で行われ,会場からは中国語で質問が飛び出し,回答は英語で…というコミュニケーションの苦労話もありました。

次の大きなイベントとして「KungfuRailsChina」がアナウンスされました!「Conf」を文字って「Kungfu」とは,実に中国らしくて素敵ですね。

「ジュンク堂RubyKaigi店を見ると,日本語で書かれたRubyやRailsの書籍の充実っぷりに驚かされます。中国にはRubyを学習するための充分な書籍がありません。他のコミュニティの力を借りながら充実させていきたいです」と,教育方面への意気込みを語る姿も見せてくれました。

画像

画像

Daniel Bovensiepenさん「Hello World From The Other Side Of Earth」

日本,上海のコミュニティ紹介と続いたこのセッションの最後は,「地球の裏側からこんにちわ!」と題して,ドイツから9000kmの距離を経てやってきてくれたDanielさんの発表です。

「裏側とは言ったものの,実は日本の場所を知らなかっただけで…」と申し訳なさそうに話し始めたDanielさん。発表スライドでは「"Nearly"地球の裏側」と訂正が入っていました。RubyKaigiに参加しようと思ったきっかけは,「RubyConf 2008のシンタロウの発表を見て!」だそうで,会場にいた角谷さんがガッツポーズで喜んでいました。なんというコミュニティセッション!

「僕のホームタウンは,『ハーメルンの笛吹き』で有名なHamelinの隣町のHannoverです」のように,ドイツに多数存在するRubyコミュニティを,地域の特色と絡めながら丁寧に解説していました。Bremen,Hamburg,Berlin,Munich,さらにはドイツの地図からはみ出たところにピンを立てて,オーストリアのウィーンにscript.aculo.usの作者がいることなども合わせて,ヨーロッパの状況をまとめて勉強できる機会になりました。

質疑応答の時間には,会場の皆さんと活発なコミュニケーションがあり,Danielさんから出た「日本語の情報が追えなくて,svn upなんかいつもドキドキです。どうしたらよいでしょうか」という問いに「日本人も大体同じ状況です」と声が返りました。この状況を改善すべく,Danielさんは,翻訳などのGoogle APIをRubyから利用するためのライブラリgapiを開発されているとのことでした。

"ほぼ"地球の裏側ドイツから,ヨーロッパのコミュニティの現状を伝えにきてくれたDanielさんに大きな拍手が送られました!

画像

画像

著者プロフィール

大和田純(おおわだじゅん)

ハンドルネームはjune29。RubyKaigi2009当日スタッフ(KaigiFreaks)。

ディスカバリーエンジン「デクワス」を開発・運用中のサイジニア株式会社勤務のWebクリエイタ。北海道出身。技術が人々の生活をどのように豊かにしていくかを考えるのが楽しくて,新しいものはどんどん日常に取り入れてみる。好きな言語はRuby。尊敬する漫画家は荒木飛呂彦先生,好きな擬音語は「メギャン」。

URLhttp://june29.jp/


白土慧(しらつちけい)

ハンドルネームはkei-s。RubyKaigi2009当日スタッフ(KaigiFreaks)。

ディスカバリーエンジン「デクワス」を開発・運用中のサイジニア株式会社勤務のWebエンジニア。札幌市出身。大学時代にWebと複雑ネットワークの楽しさを知る。人と情報のつながりを考えるのが好き。好きな言語はJavaScriptとRuby。好きな小説家は舞城王太郎。

URLhttp://d.hatena.ne.jp/kei-shttp://friendfeed.com/keis

コメント

コメントの記入