RubyKaigi2009 スペシャルレポート

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

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

笹田耕一さん「Ruby VMの高速化の展望⁠

東京大学の笹田さんの発表です。日本Rubyの会と書いていないのは,本職として開発を行っているからだそうです。⁠それならネクタイじゃないの?」とヤジもありましたが:-)

2009年1月30日にRuby 1.9.1がリリースされましたが,これは笹田さんが開発したバーチャルマシンYARVが同梱された正式なリリースでした。 このバージョンでは,最適化が入って高速化していますが,安全性のために最適化をオフにしている部分もいくつかあります。

VMに関しては,JavaScriptのエンジンでTraceMonkeyやV8など,JIT compilerが流行です。TraceMonkeyの開発者と会い発奮し,YARVの開発を大量のコーヒーを飲みながら頑張っているそうです。

メモリ解析フレームワークを,研究室の学生にテーマのひとつとして与えたが,面白そうだからと自ら手を出し,開発を行っていると述べました。 このために,あるオブジェクトが具体的にどの程度メモリを消費しているかを調査するフレームワークを作成しました。requireするだけで簡単に利用できる,profiler.rb, profile.rbのように利用できるメモリプロファイラを開発しています。

また,インスタンス変数へのアクセスについて,Ruby1.9では,メモリ効率はよくなったが速度が遅くなりましたが, この部分の改良も行っています。

科学研究費補助金に採用され,Rubyによる超並列・超高速な計算を行うプロジェクトが発足しました。 ハイパフォーマンス向けRubyを目指し,Ruby向けのコンパイラや,Ruby向けハイパフォーマンスコンピューティング環境の構築を行います。そのなかで,⁠Rubyの動的特性の本質とは何か」⁠Rubyっぽさとは何か」という部分を議論しなければいけないと述べました。

その他の研究として,Rubyの中にCを直接記述できるRicsinを紹介しました。また,科研費やGoogleとの共同研究として,組込Rubyプロジェクトも動いているとのこと。

VMに関して掘り下げた話が多く「10人に向けて話してます」と何度も強調していましたが,コミッタの方々からは様々な意見が飛び交っていました。

画像

画像

Lightning Talks

前説

Lightning Talks(以下,LT)の残り持ち時間を表示する「タイマー」について,LT用タイマー「TwYM」作者の五十嵐邦明さんより前説がありました。以前より実装されていたIRCのチャットメッセージ表示機能に加えて,今回新たに「発表に対して☆を投票する」機能が追加され,ますますLTを盛り上げてくれる存在となりました。

持ち時間終了を告げるドラを鳴らす「ドラ娘」には,すでに貫禄をまといつつあるナガタユウコさん。会場に鳴り響くドラの音も,LTにさらなる爽快感を与えてくれます。

画像

江渡浩一郎さん「パターン、Wiki、XP、そしてRuby⁠

先陣を切ったのは,7月10日に発売されたパターン、Wiki、XP ―― 時を超えた創造の原則の話を引っさげてやってきた江渡浩一郎さんです。

自身でqwikWebを運営しながらWikiというシステムに強い関心を持ち,同時に,デザインパターンやXPについても探求を続けてきた結果,たどりついたひとつの考え方が「建築家アレグザンダーのパターンランゲージ⁠⁠。一見ばらばらに思える3つの対象の交わる点がどこにあったのか…続きはぜひ書籍で!

画像

永井秀利さん「Ruby/Tkは本当にダメな子なのか?⁠

永井秀利さんは,Ruby標準添付のGUIライブラリ,Ruby/Tkの紹介を行いました。

標準添付のライブラリとしてはあまり認知されていないそうですが,モダンなGUIを作成できることをアピールし,批判が多い点については「知らない人間による的外れな批判だ!」と一蹴していました。 奥の深さを知ってほしいという,熱意のこもった発表でした。

画像

あんどうやすしさん「たぶん一番かんたんなRails on GAE/J⁠

「Javaが大好き,って人はご注意を」と始まったあんどうやすしさんの発表。Google App Engine(以下,GAE)におけるJavaのサポートの素晴らしさを「JRubyが動くこと!」と言い切り,GAE上でRailsアプリケーションを動作させる魅力について話してくれました。

最後に,自作のデプロイツールの説明もありました。あんどうさんのブログにも紹介エントリがありますので,どうぞチェックしてみてください。

画像

荒井省三さん「IronRuby on Rails⁠

.Net Framework上で動作するRuby実装がIronRubyですが,荒井省三さんは,そのIronRuby上でRuby on Railsを動かすデモを行いました。

Rails上でSilverlightアプリを生成する,Silverlineというライブラリも利用していたようです。 RailsのバックエンドDBにMicrosoft SQL Serverを利用でき,Microsoft製品をフルに活用してRuby on Railsを動かせる!とアピールしていました。

画像

gaoohさん「むいちゃいました(仮⁠

株式会社ドリコム勤務のgaoohさんは,社内で開発されたCGM構築フレームワーク「unshiu」のオープンソース版である「Peeled unshiu」を紹介しました。できあがったものは,社の業務で実運用に乗せられるため,⁠成果の上がったものは標準に組み込む」フローが整備されていて素晴らしいです。

開発体制としては,テスト駆動開発や開発ルールの整備を徹底しており,2年前から開発が行われているにも関わらず,現在の最新版のRailsでも問題なく動作すると,信頼性の高さをアピールしていました。

画像

山崎泰宏さん「Wakameで手早くRailsを大規模サイトにする⁠

山崎泰宏さんによる,Amazon EC2でRuby on Railsをスケールアウトする,Wakameの解説です。

EC2の登場で,サーバのスケール化は可能になりましたが,実際にサーバを動作させるとなると,セットアップ作業にコストがかかってしまいます。 Wakameは,突然のアクセス増に対応でき,アクセスが増えてからのサーバセットアップを自動化するソフトウェアです。

大規模サイトの運用経験がある人を「珍獣」と称し,⁠Wakameを試して珍獣になろう!」と述べていました。

画像

相澤歩さん「レガシーマイグレーションのためのRuby DSLによるJCLの実装⁠

相澤歩さんは「誰も知らないであろうJCLの話をします」と置いて,いかにしてレガシーシステムの価値を引き継ぎつつ,システムを新体制に移行するかについて話してくれました。

しばしばCOBOLで書かれているレガシーシステムの移行を考えたとき,問題なのはCOBOLそのものよりもむしろ人や環境であるとし,現在のメンバーにも受け入れられるようにRubyのコードでDSLを実現する例を見せてくれました。ときに激しいジョークが飛び出すトークに,会場が沸いていました。

画像

Mohammad A. Aliさん「Arabesque, a brand new Ruby queue⁠

Railsでのデータ管理を,Arabesqueというライブラリを使うことで, マルチCPUへの対応,GCを高速化し,パフォーマンスアップができるという紹介です。

内部でBerkeley DBを用いることで,マルチCPUやGC高速化を実現しています。 実際のシステム構築例などを示し,利点をアピールしました。

画像

おおいしつかささん「MiyazakiResistanceを作ってみたよ⁠

おおいしつかささんによる,MiyazakiResistanceについての発表です。

MiyazakiResistanceとは,TokyoTyrantをActiveRecordのインターフェイスで操作できるようにしてくれるライブラリです。TokyoTyrantでは,データを絞り込むときの条件の記述が複雑ですが,MiyazakiResistanceではその点が上手く解消されます。

接続先データベースのマスタ・スレーブ構成だけではなく,デュアルマスタにも対応しており,極めてデータ更新頻度の高い「食べログのお店ごとのアクセス数」計上も,問題なく動作しているとのことでした。⁠東京がダメなら宮崎からどげんかせんといかん」は名言でした!

画像

こしばとしあきさん「ローカル環境向けKey-Valueストアの紹介⁠

こしばとしあきさんによる発表です。恐らく今回のLTで最も盛り上がりました。

流行のKey-Value Storeシステムの説明から始まりました。 しかし,ハッシュを持ちWebではないGUI機能をもったKVSとして紹介したものは, 実際にはExcelをRubyから操作し,Excelのセル上のデータを操作するライブラリでした。

「Rubyはプログラマに優しく,Excelはビジネスパーソンに優しいので,みんなに優しいシステムの実現である!」と述べていました。

画像

松本一輝さん「WebスタートアップにやさしいRailsの育て方⁠

ランゲート株式会社のCTOを務める松本一輝さんは,Railsアプリケーションのスケールアウトについて,淡々と,しかし力強く話してくれました。

Railsは(もっと言えばActiveRecordは)裏側にRDBMSを前提としているため,クラウドなRDBMSがない現状では,⁠DBをクラウド化すればスケールできる」という単純なものではありません。また,クラウドDBのそもそものレスポンスの遅さも問題になります。そこで,既存のDB接続をRESTなWeb APIに置き換えて,さらに大きなキャッシュプールを持たせることで,実運用に耐えうる構成になるとのことでした。

自己紹介を日本語と英語の二カ国語で行ったのは,さすがLang-8の中の人です!

画像

著者プロフィール

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

ハンドルネームは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