RubyKaigi2011 2 日目は、7/17 (日) の開催です。今回は大ホールと小ホールで行なわれる発表 (LT を除く) 紹介です。
Ruby のコミッタであり、昨年の RubyKaigi2010 でも発表されている西山さんのお話です。
プログラムを書く上で付いて回るセキュリティについて、西山さん自身の経験から Ruby で実装する上での注意点などをお話してくださるそうです。西山さんといえば、RubyKaigi2008 の LT でもセキュリティについて話されています。とても興味をそそられる内容ですね。
昨年にひき続き、Tokyu.rb の小川さんが jpmobile について話してくれます。
小川さんは、今や携帯サイトを構築するのに必須ともいえる jpmobile の開発者の一人です。昨年は、jpmobile を Rails3 に対応したときの経験談を発表されました。今回は、jpmobile でどのようにシステムを構築するとよいのかというベストプラクティスを開発者本人から教えてもらえるようです。携帯サイトを開発している方、必聴のセッションですね。
Ruby on Rails 用プラグインの kaminari の作者でもあり、Asakusa.rb のファウンダーでもある松田さんによる Ruby on Rails のお話です。昨年の基調講演など、数々の発表を行っており、先日は RailsConf にて JAPAN ON RAILS というタイトルで講演されました。
Ruby on Rails は規模が大きく、進化が早いため、情報の陳腐化も早く、普段から使っていないような人がこれから始めるにはとっかかりが少なく感じることもあります。 そのような状況を踏まえて、松田さんから、開発をたのしく進めていくためのコツをご紹介していただけるそうです。どのようなお話になるのか、とても気になりますね。
yhara さんは RubyKaigi2009 以来、3 度目の発表となります。
yhara さんは、過去の RubyKaigi でも発表されているように、Ruby/SDL や RubyStation という、ライブラリやフレームワークの開発に携わっています。そんな yhara さんが、Ruby で作りたいものを作れるようになるための道筋を示してくれます。
Ruby マスターになるために、どのような事をやればよいのか、とても気になる発表ですね。
台湾在住で、RubyTaiwan の Wen Tien Chen さんによる発表です。Wen さんは、ihower というハンドルで、台湾の Ruby コミュニティの中心人物の一人として活躍しています。
Ruby 1.9 で提供された新しいユニットテストフレームワーク MiniTest についてや、 MiniTest の持つ BDD (振る舞い駆動開発) 構文やモック機能について説明していただけるそうです。
Ruby で使える xUnit 系のテストフレームワーク としては、他にも TestUnit があります。こちらは、3 日目に開発者である須藤さんによる発表があります。RSpec 以外のテストフレームワークからも目が離せませんね。
Rails レシピブックの著者でもある諸橋さんのお話です。Rails レシピブックは、7/25 に Rails3 に対応した Rails3 レシピブックがでます。Rails3 レシピブックから、同じ日に発表する松田さんが著者に加わっています。また、RubyKaigi でおなじみ、ジュンク堂池袋本店にて発売記念トークショーが 7/21 に開催されます (このトークショーは RubyKaigi Advent Calendar 2011 に参加しています) 。
諸橋さんは、この 5 年間 Ruby on Rails と RSpec での開発を行ってきました。その中で、テストを書くことの難しさについて気づいたようです。今回は、5 年間開発をしてきた知見から、どのような設計をすればテストを書きだせるようになるのか、どのように書くことが出来れば効率が良いのか、という点について発表します。
実際に Ruby on Rails と RSpec の機能を使用して、どのように実践できるかを説明しながらの発表となるそうです。根本にある考え方は、Sinatra や Test/Unit2 のような別のフレームワークを使っている人たちにも参考になるはずです。今からとても楽しみですね。
Chris さんは Mustang という Ruby から Google が開発した JavaScript エンジンである V8 を使うためのライブラリの作者です。
Chris さんは JavaScript を用いたアプリケーションのインテグレーションテストは現時点では上手い方法が見つかっているとは言えず、Selenium や Celerity などを使うしかないと述べます。Chris さんたちはそれらに変わる方法を見つけたとのことで、Mustang を用いたインテグレーションテストについて話をされるそうです。
今年の 2 月に Test.js というイベントが行なわれるほど、JavaScript のテストは注目されている分野です。発表の内容から、Web プログラマ、特に JavaScript を活用するアプリケーションを作っている人にとって見どころの多いセッションになるでしょう。
元 Rails コアチームの開発メンバーであり、昨年 Ruby 1.9 のエンコーディングについて話された Yehuda Katz さんの発表です。
Yehuda さんは、今回 Net::HTTP にノンブロッキング READ 機能を実装するお話をされます。Ruby で非同期ネットワークプログラミングを行なおうとすると、EventMachine を利用することが多いと思います。また、Ruby ではありませんが、非同期ネットワークプログラミングを行なう手段として node.js が話題になっています。
そんな注目されている非同期ネットワークプログラミングに対応できるように、Yehuda さんは pure Ruby で Net::HTTP に修正を加えたそうです。どのような修正を加えたか、とても気になりますね。
RubyKaigi2011 の副実行委員長である角谷さんによる、過去 3 年間 RubyKaigi で発表したシリーズの最新作です。
角谷さんは、「Take the Red Pill」, 「Welcom to The Desert of The Real」,「Ther is No Spoon」と映画マトリックスの話をベースに Rubyist へのメッセージを伝えてきました。昨年の発表では「門」というキーワードが強調されていました。そして今年のタイトルは「The Gate」。
現在、概要がなぜか TBA (後日発表) となっていますが、そこからどのようなメッセージを飛ばしてくるのでしょうか?
また今年の発表について、日本 Ruby の会会長の高橋さんは、発表に対する期待を日記に書いています。こちらも併せて読んでおくと、当日の発表がさらに楽しめるのではないかと思います。
フリーランスの Ruby プログラマ Elise Huard さんから、アクターモデルに関する発表です。Elise さんは RubyConf2010 でも並列プログラミングについてのトークを行なっています。
プロセッサのメニーコア化という昨今のハードウェア事情、あるいは大規模計算への需要など、現代では並列プログラミングがホットなトピックになってきています。プログラミングにおける並列化というと共有メモリ方式のマルチスレッドがありますが、ロックの扱いやデータの適切な共有が難しい事などコードが複雑なものになりがちです。
そこで、並行性を容易に扱うことが出来るアクターモデルというものが注目されつつあり、Erlang や Scala などで採用されています。このアクターモデルを Ruby においても実装する方法をいくつか模索し、その結果をお話くださるそうです。Ruby の並列プログラミングというステージ上にどんな「役者 (Actor) 」たちが登場するのか。このセッションでその幕が上がります!
Ruby オブジェクトをプロセスやネットワークを越えてやり取りする、いわゆる分散オブジェクトシステムを実現するためのライブラリ dRuby の作者である 関将俊 (m_seki) さんの発表です。
dRuby には Rinda::TupleSpace という、分散したプログラム同士が協調して使えるストレージのような仕組みが付属しています。Ruby オブジェクトを配列のように並べた「タプル」というデータを一単位として TupleSpace に書き込み、パターンマッチングでそれを取り出せます。この TupleSpace に永続化を試みた PTupleSpace の紹介とその問題点の解説、そして新しい発想を元にそれを置き換え得る Drip というストリーム指向のストレージについて発表してくださるそうです。
また、ご本人のブログに今回の発表の草稿が出ています。当日が待てない人はそちらで一足先にチェックしてみるといいかもしれません。
seattle.rb の Eric Hodel さんによる発表です。drbrain という id のほうが通りのよい方も大勢いると思います。また、RubyGems や RDoc のメンテナとしても有名ですね。
Eric さんは、これまで 75 ものライブラリを RubyGems として公開してきました。ソフトウェアの拡張やメンテナンスを簡単にしてくれるライブラリやプラグインについてや、機能拡張の際の技術、テストの戦略やメンテナンスを楽にするソフトウェアツールについてなど、今まで開発してきた経験から話してくれます。ライブラリ開発時に参考になる発表ですね。
Richard Huang さんによる発表です。Richard さんはタイトルにもある rails_best_practices という ライブラリ の作者で、以前、Rails Best Practice というタイトルで KungfuRails で発表をしています。
rails_best_practices は Rails アプリケーションの良くないコード (悪臭) を自動で見つけ、プログラマのリファクタリングの手助けをしてくれるそうです。今回はその rails_best_practices を使ったリファクタリングについて話をされるそうで、アプリケーションをどうクリーンに保つか、非常に参考となるセッションとなりそうです。
Ruby/TK のメンテナとして有名な永井さんによる Ruby の組み込みクラスの一つ ThreadGroup についての発表です。
永井さんは、RejectKaigi2010 で「マイナーな組込クラス探訪 ThreadGroup クラスって知っている?」というタイトルで ThreadGroup を紹介されていました。ThreadGroup はグループに属する Thread をまとめて操作することのできるクラスです。今回の発表では、永井さんが ThreadGroup をどのように強化したのかを紹介してもらえます。
初日の江森さんの発表と併せて見たいセッションですね。
Ruby コミッタの前田 修吾さんからは、JIS X 3017 の読み方についての発表です。前田さんは昨年の RubyKaigi2010 で、オープンクラスによる影響の範囲を限定する Classbox という仕組みを Ruby で実現するには、というお話をされました。実際にその後 Refinement というほぼ同じ目的を達成する機能が前田さん自身の手で実装されており、将来の Ruby の目玉の一つとして採用されることになっています。
さて、「JIS X 3017」と聞いて一体何の事だろうと思ったかもしれません。今年の三月に Ruby は JIS 規格化されているわけですが、つまり JIS X 3017 とは Ruby の言語仕様を文書としてまとめたものなのです。
JIS X 3017 は PDF か紙の冊子で購入でき、あるいは Web 上でも閲覧のみ可能 (「X3017」で検索) です。ところが、どうも読み方にコツが必要なようです。これから読んでみようという人はこのセッションで準備をしてみてはいかがでしょうか。
JRuby コアチームの一人である Thomas E Enebo さんと、JRuby を使ったパブリッククラウドサービス cloudage CUVIC On Demand の開発者である大場光一郎さんお二人によるセッションです。Thomas さんは去年の RubyKaigi2010 に併設された企画である JRubyKaigi2010 で基調講演をし、そこで普段から Java を使っている Rubyist がたくさんいることを知ったそうです。
しかし、「JRuby は Ruby の Java による実装」ということは知られているものの、Java と Ruby を繋いでくれる JRuby 特有の便利な機能があまり知られていない事が Thomas さんの懸念のようです。このセッションでは、Ruby から Java クラスを使う方法、Ruby で Java のクラスやインターフェースを実装する方法、RubyAPI 風に振る舞う JavaAPI を作成する方法等々、JRuby の魅力を余すことなく伝えてくれることでしょう。
また、昨年に続き JRubyKaigi2011 も RubyKaigi2011 の前日に開催されます。興味がありましたらそちらも是非!
Ruby による Mac OS X デスクトップアプリケーション開発入門の著書もある高尾さんのお話です。
Objective-C による Ruby 実装である MacRuby の紹介です。MacRuby は、その名の通り Mac OS X でのみ動作する Ruby で、Mac OS X のアプリケーションフレームワークである Cocoa へのアクセスが容易であることが一番の特徴です。
以前までは MacRuby 上では Ruby on Rails が動作しなかったのですが、改良を重ねることでついに Ruby on Rails が動作するほどの完成度を迎えたそうです。 そういった作業から見えてきた CRuby の良さや、実際に MacRuby を使ったことのない人たちへの MacRuby の良さを伝えてくださるそうです。とても興味深いお話で、いまからとても楽しみですね。
Ruby はオープンクラスによって既存のクラスを容易に拡張することができます。その変わりメソッドの衝突や上書きなどの問題もでてきました。その問題を解決するために ClassBoxes や Refinements などが提案されています。これらの機能については、RubyKaigi2010 の前田さんの発表や RubyConf2010 でのまつもとさんの発表で紹介されています。
赤井さんは、別の案として Method Shelters を提案されるそうです。マニアックな内容になることが予想されるので、オープンクラスや ClassBoxes についてはあらかじめ予習しておくとよいでしょう。
小崎さんは、世界で一人の Linux カーネルと Ruby のコミッタとして活躍されています。Linux カーネルの知識を Ruby の性能改善に活かされており、Ruby 側で直せないバグを Linux カーネルを修正することで解決したことがあるそうです。
今回は、Ruby の VM 全体をロックさせる Global VM Lock と、Mutex.lock の問題点と改善案について解説してくれます。
こういったディープな内容の発表が聞けるのも、RubyKaigi ならではですね。