RubyKaigi2010スペシャルレポート

Ruby会議2010 3日目レポート[更新終了]

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

Shay Friedmanさん「IronRuby - What's in it for Rubyists?」

Shay Friedmanさんによる,今年の4月に1.0がリリースされたIronRubyの発表です。聴衆に対して「MacBookやiPhone持ってますね。IronRubyはMicrosoftだよ」というジョークで笑いを誘いながらの開始となりました。

「.NET,Microsoftの世界と繋げたい」と語り始めたShayさんはIronRubyが好きで,そこからRubyを好きになった。だから,みんなにもIronRubyを通じて.NETを好きになってもらいたいと語りました。

IronRubyの特徴として、.NET Frameworkとのシームレスな連携ができるデモとし,irb上で.NET上のwindowライブラリを読み込んでウィンドウとボタンをを表示させるデモを行ない,容易に連携できることが紹介されました。 .NET Framework との連携の容易さとして,クラスやメソッド名がRuby形式になっていたり,namespaceがModuleになっているため,Rubyからの操作でも違和感なく扱えると述べられました。

また,リリースされたばかりのIronRuby1.0はRuby1.8.6相当とやや古いバージョンなのですが,次のリリース予定であるIronRuby1.1はRuby1.9.2相当としてリリースされる予定だそうで,できるだけ早く出したいとのことです。

WPFを使ったデモとして,Twitterのトレンドを表示して,クリックされるとトレンドの検索結果を表示するWindowsアプリケーションのデモが行われました。そして,ソースを表示して,Windowsの表示などを行う部分のソースコードが20~30行程度でかけることが説明されました。

その後,Silverlightを使ってブラウザ上で動作するデモが行われました。ブラウザ上でSilverlightを使うためのJavaScriptファイルを読み込んだあと,HTML上でJavaScriptを書くのと同じように,

<script language="ruby">

内でRubyのコードを書いてDOMを操作できるということを,HTML上のソースコードを示しながら説明されました。

最後にエミュレーター上ではあるものの,Windows Phone 7上でも動作するというデモを行い,IronRubyの可能性について多くのことが語られました。

なお,IronRubyについての情報源としては,以下を参照すると良いとのことです。

画像

画像

Kouhei Sutouさん「るりまサーチの作り方 - Ruby 1.9でgroonga使って全文検索」

「Rabbitを使っていないとコミッタにはなれません。プレゼンテーションにはRabbitを使いましょう」といって発表を始めたのは,Rubyのコミッターであり,件のRabbitや画像処理ライブラリrcairoの他にも,数多くのプロダクトで知られるSutouさんです。RubyKaigi2010用には,名札には名前を大きく書きましょうジェネレータを開発して公開されていました。

今日は,るりまを全文検索するWebアプリケーション「るりまサーチ」の紹介です。

単にクエリを入力して全文検索するだけではなく,Rubyのバージョンを指定したり,⁠インスタンスメソッド」等の種類を指定してドリルダウン検索(絞り込んで検索)することもできることが説明されました。また,検索結果ページのURLにクエリを含めるようにすることで検索エンジンにもインデックスされやすくなっていることや,さらにはキャッシュを有効活用しており,高速にレスポンスを返すように実装されていることが語られました。

前半は「ユーザから見たるりまサーチ」の紹介でしたが,後半は「るりまサーチの作り方」について話されました。

るりまサーチでは,バックエンドとしてgroongaを使用していることが言及されました。groongaは,Senna: An Embeddable Fulltext Search Engine - Senna 組み込み型全文検索エンジンの後継にあたる全文検索エンジンで,連携するRDBMS側の更新時にロックが発生してしまうというSennaの問題を解決するため,自前でデータストアを持つようになっています。おかげで,高速でロックフリーな検索が実現され,るりまサーチのようなアプリケーションの内部で活躍していることが説明されました。

groongaがカラム指向であることも,るりまサーチの上で活きていることが語られました。よく知られたRDBMSとは異なり,groongaはレコードごとではなく,カラムごとにデータを保持するため,ドリルダウン検索に向いていると言えるそうです。大量のデータの中から「ある属性を持ったデータの集合」を取り出すときには,カラム指向データストアが有効であると説明されました。

最後に,るりまサーチの「副産物」であるとしてrackngaの話が少しだけ語られました。興味のある方は,こちらも合わせてチェックしてみてください。

画像

画像

Tom Lieberさん「ゲームとバーチャルタイム」

iPhoneアプリのOcarinaや,iPadアプリのMagic Pianoはご存じでしょうか。これらの革新的なプロダクトを提供するSmuleから,開発者のTom Lieberさんの登壇です。発表では,Rubyのプログラム上でのタイミング制御について話されました。

Tomさんの発表は,なんと楽曲の演奏から始まりました。テキストエディタに書かれた

piano([C3, E3, G3])

といった,なにやら演奏用と思しきコードが次々と実行されて奏でられるリズムに,発表の舞台である中ホールは愉快な雰囲気に包まれました。歓声と拍手のあと,実装技術についての説明へと入りました。

ニコニコ動画:https://www.nicovideo.jp/watch/sm11927013

まず紹介されたのはChucKオン・ザ・フライ方式のオーディオプログラミング言語です。特殊なタイミング制御を行っているのが特徴で,ChunKにおけるスレッドは「Shred⁠⁠,スケジューラは「Shreduler⁠⁠,フォークは「spork」と,それぞれ呼ばれます。

Tomさん作のライブラリruckは,ChunKの強力なタイミング制御の力をRubyにもたらすのです。通常のRubyのコードでは,例えば2つのオーディオファイルを読み込んで再生しようとしたとき,読み込みにかかる時間が異なれば,同時に再生を始めることはできません。RubyのThreadの代わりにruchのShredを使えば,タイミングを制御することができることが説明されました。

説明の中で,もう一度,音声を扱うサンプルが示されたあと,ruckのサンプルにも含まれている宇宙空間をさまよう宇宙船を操作して星を集める2Dアニメーションゲームのデモが行われました。これには,午前の企画Rubyゲーム会議に参加していた聴衆たちが大いに食い付いており,発表終了後も,ソースコードを通じたコミュニケーションが盛り上がっていたようです。

デモも参加者からの質問も多く,賑やかな発表でした!

画像

著者プロフィール

KaigiFreaks レポート班

KaigiFreaksとは,会場に来れなかった人にも,雰囲気や内容を楽しんでもらえるように動画収録や配信を行うことをミッションに,RubyKaigi2008で結成された特別編成チーム。

RubyKaigi2009からはgihyo.jpを中心にテキストと写真で現場の様子を伝えるレポート班が加わり,現在のKaigiFreaksは配信班とレポート班の2班編成。


赤松祐希(あかまつゆうき)

2010年よりフリーランスとして活動するプログラマ。Ruby(on Rails)によるアプリケーション,システムの開発を得意とする。好きな言語ももちろんRuby。コードの質について考える日々。

blog:http://ukstudio.jp/
twitter:http://twitter.com/ukstudio


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

源氏名はjune29。RubyKaigi2010実行委員,KaigiFreaksレポート班。

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

URLhttp://june29.jp/


すがわらまさのり

ハンドルネームはsugamasao。

若手IT勉強会によく出没する。仕事では Flex での Flash 開発を中心に,自社サービスの iPhone アプリ開発や Ruby での Web アプリケーションの開発を行う。普段はどーすればラクして良い仕事ができるかを考えている。Rubyとアルコールが好きです。伊坂幸太郎さんはもっと好きです。

blog:http://d.hatena.ne.jp/seiunsky/
twitter:https://twitter.com/sugamasao


白土慧(しらつちけい)

ハンドルネームはkei-s。RubyKaigi2010実行委員,KaigiFreaksレポート班。

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

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


三村益隆(みむらみつたか)

(株)永和システムマネジメントサービスプロバイディング事業部所属。Asakusa.rb。お仕事では,Linuxのカーネル開発やC++での開発等Ruby以外の仕事が多いが,Ruby好き。

blog:http://d.hatena.ne.jp/takkan_m
twitter:http://twitter.com/takkanm