日本 Ruby 会議 2010 1 日目 の発表紹介

RubyKaigi2010 初日は、8/27 (金) の開催です。今回は大ホールと中ホールで行なわれる発表紹介です。

目次

大ホール

jpmobile on Rails 3 の作り方

スピーカー
Shin-ichiro OGAWA
時間
14:00〜14:30 (大ホール)
セッション概要
jpmobile を Rails 3 や Sinatra に対応させるまでの道のりを紹介。いまや、Rails で携帯向け開発をしようとすると必ずお世話になるといっても過言ではないjpmobile。そのメインコミッタの1人である Shin-ichiro OGAWA さんによる発表です。

OGAWA さんといえば、るびま 28 号るびま 29 号にて、jpmobile についての連載を書いていますね。

このところ、jpmobile は Rails 3 対応や、Ruby 1.9 対応など、とっても精力的に開発が進んでいるライブラリですので、発表が楽しみですね。

Ruby on Rails ではじめる携帯電話向けオープンソーシャルアプリケーション開発

スピーカー
Masaki Yamada
時間
14:30〜15:00 (大ホール)
セッション概要
Ruby on Rails を使ったオープンソーシャルアプリケーション開発

最近流行りのオープンソーシャル。オープンソーシャルの開発では、開発実績や情報量の差から PHP を選択するケースが多いようです。

そんな中、Ruby on Rails を採用した mixi アプリ スイーツコレクションでの開発ノウハウのご紹介です。

Ruby と OpenSocial というのは、まだ情報が少ない分野です。とても楽しみですね。

リアルタイムウェブができるまで

スピーカー
Makoto Inoue
時間
15:30〜16:00 (大ホール)
セッション概要
リアルタイムウェブのサービスとしてリリースされた「Pusher」の、リリースされるまでの経緯や発見についての共有を行います。

ロンドン在住の Ruby on Rails エンジニア、Inoue Makoto さんの発表です。

Pusher はサーバ側からクライアント側への非同期な通知を行うためのサービス、及びライブラリです。サーバ側でリクエストを処理した後、 Pusher へ通知を行うと、ページを閲覧している各ユーザへ WebSocket を通じて処理が通知されます。

いわゆる「Comet」のような通知方法を WebSocket を用いて実行されるというもので、 HTML5 周辺の技術としても非常に興味深い内容ですね。

われわれは、GC を X 倍遅くできる

スピーカー
nari
時間
16:00〜17:00 (大ホール)
セッション概要
CRuby に実装される LazySweepGC についての紹介と、今後の GC の改善の展望について。

Ruby コミッタであり、『ガベージコレクションのアルゴリズムと実装』の著者である、nari さんの発表です。

nari さんと言えば、絶対復習という Web サービスや、るびま 25 号での GC の話や、るびま 28 号でのインタビューなどがあります。

今回は現状の Ruby における GC の実装についての解説、及び LazySweepGC が実装される事になった経緯や今後の展望についての説明と、GC の効果を評価するためのグラフィカルに動作するデモを実施する予定です。

RubyKaigi2009 では、「RubyのGC改善による私のエコライフ 〜レジ袋は結構ですよ (2009 夏) 〜 - 日本 Ruby 会議2009」というタイトルでも GC について発表されましたが、今年もマニアックな内容が楽しみですね。

Ruby で作る DSL の基礎

スピーカー
Yasuko Ohba
時間
17:30〜18:00 (大ホール)
セッション概要
やさしい DSL の作り方

株式会社万葉の社長であり、最近『JRuby on Rails 実践開発ガイド』を翻訳された大場寧子さん。去年の「Pragmatic Patterns of Ruby on Rails - 現場で役立つ Ruby on Rails パターン」につづき、RubyKaigi 2 度目の発表となります。

今年は、ドメイン特化言語 (DSL) についてお話されます。DSL がどのような場面で有効であるか、DSL を書く際に必要となる考え方、習慣、テクニックについて、あますことなく紹介していただけるようです。

DSL という言葉を初めて聞くという方もおられると思います。そんな方は、kdmsnr さんが翻訳された Martin Fowler さんの記事を読んでみてはいかがでしょうか?

また、Ruby と DSL の関係としては、以前オープンソースマガジンにて角谷さんが書かれた記事を読んでみると参考になります。

君のクラスの最高の偽物

スピーカー
Shugo Maeda
時間
18:00〜19:00 (大ホール)
セッション概要
オープンクラスとグローバル汚染とその対策案

Rubyist Hotlinks の第 2 回にも登場してくださった前田修吾さん。昨年 12 月には『Rails によるアジャイル Web アプリケーション開発 第 3 版』の翻訳をし出版されましたね。

RubyKaigi2009 では Re-introduction to Ruby という講演タイトルで「Ruby とは何か」という問題についての発表をされました。

今年は、Ruby の特徴であるオープンクラスの問題点と、その解決案のひとつとして新しい予約語などを導入せずに、(一見) 静的なスコープに限定してクラスを拡張する方法を見せてくれるようです。

オープンクラスは Ruby の特徴としてよく挙げられるものですが、その問題点もよく指摘されます。特徴と問題点について以下の記事で復習しておくといいかもしれません。

オープンクラスの問題の解決策として、Ruby では昔から classbox や selector namespace などが議論されています。

この話はとてもマニアックなものになることが想定されるので、是非予習復習をして挑むのもいいですね。

中ホール

Feels Like Ruby

スピーカー
Sarah Mei
時間
14:00〜14:30 (中ホール)
セッション概要
Ruby のように JavaScript を書くために

Pivotal Tracker を開発している Pivotal Labs から、Sarah Mei さんの発表です。 Pivotal Tracker はストーリーベースの Issue Tracking System で、 『アジャイルな見積りと計画づくり』で紹介されているイテレーション単位での開発、 ストーリーポイントでの見積りなどをサポートする Web アプリケーションです。 日本語での紹介は Pivotal Tracker: はじめかたにあります。

RubyKaigi2010 での Sarah Mei さんの発表は、モダンな Web アプリケーションで必要になる JavaScript のコーディングについて、Ruby でコードを書くように JavaScript を書き、 JavaScript を Ruby アプリケーションの「一級市民」にするためのテクニックを紹介するとのことです。

Pivotal Tracker はブラウザ上での編集がリアルタイムで反映されるなど、JavaScript の力を存分に利用している点も特徴です。確かな技術に裏打ちされた発表に、期待大です!

User Experience for Library Designers

スピーカー
geemus
時間
14:30〜15:00 (中ホール)
セッション概要
ライブラリのユーザインタフェースについて

スピーカーの geemus (Wesley Beary) さんは、Ruby on Rails のホスティングサービスを提供している Engine Yard からいらっしゃいます。

今回の発表では、自分のためのコードは書きやすいが他人に使ってもらうコードを書くのはタフである、という自らの経験から、様々な人に利用してもらうライブラリの設計についてお話しされます。ライブラリ開発で経験した良いプラクティスや悪い習慣について例示して紹介するそうです。その経験を示すように、geemus さんの github 上のリポジトリ には、たくさんのライブラリが公開されています。

よいライブラリの書き方については、東京 Ruby 会議 03 での田中哲さんの発表 (PDF) や、 るびまでの青木峰郎さんの連載などがあります。こちらと比較して、共通点や違いを見つけるのも面白いかもしれません。

Rubygems, Bundler, and the future

スピーカー
Carl Lerche
時間
15:30〜16:00 (中ホール)
セッション概要
Rubygems とそれに代わる Bundler について

Engine Yard に所属する Carl Lerche さんによる発表です。Carl Lerche さんは Bundler のコミッターの 1 人です。carlhudaの”carl”の方としても一部で有名です(“huda”はYehuda Katzさん)。

Bundler は gem の依存関係を RubyGems 本体よりうまく管理してくれるツールです。Ruby on Rails 3 において採用されています。Bundler はフレームワークに依存しているわけではなく、Ruby on Rails 2 でも使用することが可能です。詳しい使い方は公式サイトに記載されているので、事前に試しておくとより発表が楽しく聞けるのではないでしょうか。

Truth and Consequences: Handling Ruby 1.9 Encodings in Rails

スピーカー
Yehuda Katz
時間
16:00〜16:30 (中ホール)
セッション概要
Ruby 1.9 のエンコーディングをうまく扱う方法

Yehuda Katz さんによる発表です。Yahuda Katz さんは wycats という名前でも活動しているのでこちらの名前で知っている人も多いかもしれません。また、carlhudaの”huda”の方でもあります(“carl”はCarl Lercheさん)。

Ruby 1.9 からは Ruby M17N が導入され文字エンコーディング周りが Ruby 1.8 に比べ大分変わっています。その結果、たくさんのアプリケーションやライブラリに多くの混乱も発生しました。Rails も例外ではありません。Rails 開発のコアメンバーである Yahuda Katz さんはその混乱を取り除くためにしてきたことを話してくれるようです。

Ruby M17N についてあまり詳しくない方はるびまに記事があるので読んでおくと発表の理解の手助けになるでしょう。

Ruby M17N の設計と実装

井の中の蛙、大海を知らず

スピーカー
Sarah Allen
時間
16:30〜17:00 (中ホール)
セッション概要
複数の言語の扱いについて

Web アプリケーションは本来グローバルなものであり、例えば日本のサービスだとしても海外のユーザーが母国語でテキストを入力する可能性は十分にあります。Sarah Allen さんは Mightyverse を構築したときの話を中心に Unicode テキストや Ruby でのマルチバイトテキストの扱いについて話してくれます。

My many failure products

スピーカー
jugyo
時間
17:30〜18:00 (中ホール)
セッション概要
たくさんの失敗プロダクトと少しの成功プロダクトについて

「世界の “g man”」こと jugyo さんによる発表です。RubyConf 2009 の Lightning Talk で g紹介して “Best Lightning Talk” に選ばれた jugyo さんは、g 以外にも、たくさんのライブラリを作成しています。jugyo さんの GitHub に公開されているプロジェクトをチェックしておけば、より深く発表を楽しめることでしょう。

jugyo さんにとっての「失敗」と「成功」の境界線はどこにあるのでしょうか。そして、どんなお話をしてくれるのでしょうか。楽しみです。

みんなが楽しくプログラミング出来る魔法

スピーカー
tenderlove
時間
18:00〜19:00 (中ホール)
セッション概要
楽しむためのプログラミング、楽しいプログラミング

HTML や XML を XPath や CSS セレクタで便利にパースできる Nokogiri や、Web サイトへのアクセスやページ遷移等の操作を Ruby で記述できる Mechanize の作者であり、「たこ焼き仮面」「ひげの山男」の愛称で親しまれている tenderlove さん。彼が作成したライブラリのお世話になっている人も多いのではないでしょうか。そんな素晴らしいライブラリを生み出す「プログラミング」と「楽しさ」には、一体どのような関係があるのでしょうか。

RubyKaigi2008、RubyKaigi2009 に続き、3度目の登壇となる今回。毎度、発表の場に立つ度に会場を沸かせてくれる彼ですので、今年の「楽しいパフォーマンス」にも要注目です。