最後のrubykaigiに行ってきた

7/16〜18は、最後のrubykaigiに参加していた。


rubykaigiは関西に居たころから行ってみたくて、いつもWeb上のレポート記事を見ながらやきもきとしていた。
関東に来てからも予定が合わなくて去年は行けず。
今回、最後のrubykaigiについに行くことが出来て本当に良かったと思う。
自分は、こういう大人数が集まるイベントでは高確率でぼっちになるところなのだが、
少し前に参加した、railstokyoや、yokohama.rbで知りあった方のおかげで、
ぼっちにならずに、rubykaigiを楽しむことが出来た。


一緒にrubykaigiを楽しんでくれた皆さんに、心から御礼を申し上げます。


以下、つらつらと感想等を記してみる。
(3日分まとめて書いたら、凄い長文になってしまった。誰が読むんだこれw)

1日目

たこ焼き仮面ことAaron Pattersonによる基調講演

ペアプログラミング道の動画は最高に面白かった。
掴みのエンターテイメントに定評のあるAaron、流石というほか無い。
rubyのコミッタのスタイルと、railsのコミッタのスタイル、
それぞれの文化の違い、良い点、悪い点というのは、チームのあり方を考える上で、
非常に参考になる話だったと思う。
そして、Aaron程の人でもrubyで仕事がしたい、どうすりゃいいんだ、という懊悩を越えて、
そこに立っているということに、少し親近感を覚えた。
スターの裏に歴史あり。

Next version of Ruby 1.8 and 1.9

あのグダグダ感と、凄い重要な話が、壇上のノリで決まっていく様は、
見ていて大丈夫かこれ?と若干心配になるほどw
Matz座長率いるRuby新喜劇って感じ。

Ruby を利用した大規模ウェブサービスの開発・運用, Shipping at the Speed of Life

Cookpadgithubの中の人による、大規模なウェブサービスを運営していく、開発していく際の、
今までのプラクティスについて。
強く実感したのは、rubyに限らないと思うが、変化の早い世界で大規模なサービスをガンガン改善していくためには、
TDD, CI, 徹底的な見える化による観測, こういったものは必須であり、既に常識と化しているということ。
そして、githubの強烈なまでの自動化には、正直圧倒された。世界が違う。

Toggleable Mocks and Testing Strategies in a Service Oriented Architecture

SoAなシステムにおける、モックの活用法について。
FakeWebを利用して、Webアクセスをシミュレーションする。
Artificeを使って、Rackレイヤーを丸ごとフェイクする。
そういったプラクティスについて解説されていたのだが、
Artificeの使い方について、イマイチピンと来なかった。
一回、ちゃんと調べてみようと思うが、どうも準備するものが非常に多くなりそうな印象がある。
分離された外部サービスに依存していると、テストがかなり難しくなるので、
個人的には、テストコード記述の壁を感じているポイントでもある。

Issues of Enterprise Rubyist 〜SIerのなかのRubyistが考えるべきこと〜

発表していた相澤 歩さんは凄い。マジ凄い。
私もかなり業態が近いSIerに居るため、氏の行いが如何に凄いことか実感できた。
SIerの中で、Rubyを使って仕事をするために、足掛かりを築いていく。
その中には、本当に数え切れない程の壁があるのだが、
それを一つ一つ、丁寧に分析して潰していく過程。
正直、普通の人だったら心が折れると思う。
政治力と技術への情熱を合わせ持った人でなければ、こんなことは出来ない。

闇rubykaigi

勢いで闇rubykaigiに応募してしまったので、発表内容を考えていて、
最後のセッション二つは、殆ど聞けなかった。残念。
闇rubykaigiについては、一つ前のエントリに書いた。
軽い感じで2分間だけの発表とは言え、
ずっと憧れていたrubykaigiの壇上に立てた、感無量である。
というか、知らない人ばっかりの場所で発表するなんてほぼ始めてなのに、無茶したもんだと、後になって思う。

2日目

正直、体が二つ欲しかった。

Actors on stage

並列実行のための、Actorパターンの活用について。
Actorという名前にかけた、クラシックなサイレント映画の1シーンと、字幕っぽいスライドが渋い発表だった。
お洒落感が凄い。流石ベルギー美女。
ErlangScalaの例を織り交ぜて、メッセージのやり取りによる並列実行モデルの実装方法について、
分かりやすく解説してくれた。
サンプルコードに使われていたCellroidというgemは全然知らなかった。
シングルプロセス、マルチスレッドによる平行処理より分かりやすく書くことが出来るが、
それは仕事の境界が明確になる時だけ、また順序が厳密に要求されるような処理には、
基本的に使えないという話もあった。

Drip: Persistent tuple space and stream.

ストリーム志向なオブジェクトの永続化ストレージ、Dripについて。
渡したオブジェクトはログファイルのようにずっと内部に持っていて、
利用したい時は、クライアント側にクローンされてくる感じ。
データ取得の方法が面白い。
キューっぽく使えるし、ハッシュ永続化っぽくも使える。
ファジーなデータログとしても使える。
でも、実際、具体的な用途ってどこなんだろう。
メインは、メッセージキューっぽい使い方になるのだろうか。

たのしいRails

本当に楽しいのは、Railsで作るんじゃなく、Railsを作ることなんだよという話。
人のためのコードを継続的に書くというラインに行くためには、
自分のレベルを一つ上げていかなきゃならないと感じた。
正直、自分のことしか考えてないところがあるので、これは良くない。
世界が狭くなる。
後、英語の勉強しなさいよという話。
今回のrubykaigiで色々と実感した。
本当、英語読めるだけじゃ駄目だわw

Rubyマスターへの道

アウトプットの大切さを改めて考えることになった。
ブログ書いてても、長い間は特に反応も無い感じで、面白くないかもしれない。
それでも書き続けることで、ちょっとづつ変わっていくものらしい。
私も、誰かに届くことを願って、大海にボトルメールを流すような感じで、
アウトプットしていかなければ、と思いました。
更新ペースが悪いので、もうちょっと頑張ろう。
でも息切れしないように、無理はやめようw

BDD style Unit Testing, 5 years know-how of RSpec driven Rails app. development.

TDD(BDD)のための、実践的な話。
前者はどっちかというと考え方、BDDというスタイルについての解説だった。
一方、moroさんの発表は、ものすごく具体的。
めちゃめちゃ参考になった。
テストコードを書く上でハマるポイント、それを乗り越えるための実践的な対策。
もっと聞きてえ、そう思う発表内容だった。
RSpec1脳な感じがしているので、shared_contextを使って
テストコードのリファクタリングをしてみようかな等と考えたり。

Efficient JavaScript integration testing with Ruby and V8 engine.

V8エンジンを、htmlunitのようなAPIで呼び出し、javascriptのテストを行うためのライブラリを作っているという話。
Seleniumは遅すぎて我慢できねえ、とか。
高速でかつrubistにとっても使いやすいAPIのheadless browserとなれば、期待せざるを得ない。
最近、cucumberとselenium-driverによるテストを勉強し始めたばっかりなので、
この分野は、要勉強。

!rubykaigi

yokohama.rbの@satococoaさんの発表。趣味プログラミングのすすめを聞きにいく。
自主的に継続して開発をして、アウトプットを続けているのは凄いことだ。
自分も、仕事でrubyrailsが使えないので趣味で書いているが、アウトプットが十分じゃない。
見習わなければ。

The Gate

角谷さんによる特別講演。
溢れんばかりのアニキ感。
やっぱりプレゼン能力が尋常じゃない。
ただ、この熱さに引かれて盛り上がってるだけでは、何にもならない。
精神、心の持ち方はあくまで地盤であって、行動があって始めて形になるもの。
rubistとして幸せになるため、楽しく仕事をするために、
自分は、これから色々なものを変えていけるだろうか。
正直、よく分からない。
まあ、自分の人生のモットーは無理しないことなので、何事もちょっとづつだ。
自分には、肉体的にも精神的にもタフさが足りないw

LTから懇親会

@nagachikaさんの発表からスタート。
すごいイイところでタイムアップになってしまって、非常に続きが気になっている。
どこかで最後まで聞きたい。
Tokyo rubist meetup。英語力を鍛えて、いつか行く。今は無理w
るりまサーチを検索バーに登録できるのは知らなかった・・・。


懇親会ではぼっち力が若干発揮されたため、そんなに色んな人と絡めなかったのが、ちょっと残念。
そして、何人かの外国から来た方と、少しだけ話をしたのだが、
この時に、人生で最も自分に英語力が必要だと実感した。
めちゃめちゃ勿体ねーわ、これ。
大学2年以降、技術文書読む以外に英語に触れてこなかったツケが回ってきた感じ。
セッション聞いてる中でも、大体分かるんだけど、早口になってくると推測が混じるし、
一瞬、え?ってなると、置いてかれてしまう。
ある程度読めりゃいいってもんじゃないなと、再び書いておく。
そして3日目にも、その実感はやってくることになった。


yokohama.rb、minami.rbの人達と二次会に行き、
目の前にRubyコミッタの人が二人並んでいるという、凄い光景。
rubykaigiすげー。yokohama.rbすげー。
本当、ありがとうございます。

3日目

寝たのが4時過ぎてた気がする。
当然のように寝坊。
parse.yについて聞けず・・・。
3日目の朝は、やたら人が少なかったらしいが、さもあらん。

Rails勉強会@Tokyo 出張版

@satococoaさんによる、Rails3時代の情報のキャッチアップについて。
@moroさん, @a_matsudaさん、ダブル著者によるRails3レシピブックの解説。
そして、飛び入りセッションとして、秋田ファビオ誠さんによるrubistとしての意識の持ち方。
思い返してみても凄い豪華だな、これ。
ここでファビオに、英語を学ぶこと、語学力の重要性について説かれ、
再度、英語力の必要性を認識することになった。
特に後半は、得意でない人にも伝わるように、めちゃくちゃ丁寧に喋ってくれてるのが分かった。
完璧じゃなくてもいい。間違えながら、失敗しながら、そして楽しみながら学ぶこと、
それが大事だと教えてくれた。

Personal Dilemma: How to work with Ruby in Brazil?

昨日の寝不足の影響もあり、疲れが残っていたので、
少し休憩してから、先ほど話してくれたファビオの発表に行く。
氏の熱さが、バリバリ伝わってくる発表だった。
何か角谷さんに通じるものがある。
先のrails勉強会でも話しをしてくれていたことだが、
他者との差別化こそが価値に繋がるという考え方、
そして、リスクを越えて失敗を越えてこそ何かを成せるということ、
当たり前っちゃ当たり前なんだけど、中々実践できないことだと思う。
でも、それを人に伝えるだけのパワーを持っている人だった。
まさにスーパーエヴァンジェリスト
また、企業(特に大企業)が保守的で、良いと思うことが実践できないジレンマは、
日本だけの問題じゃないということ。
日本企業の性質が腐ってるとか、そういう考え方は間違っていることを知った。
どこの国もそうであって、それを変えることは出来るという実例を示してくれた。

分散オブジェクト環境DeepConnectの新バージョンについて

参照渡し、コピー、ディープコピーをメソッド単位で制御できるってのは、良さそうだと思った。
ただ、全体としてピンと来なかった。
というかスライドの文字が小さすぎて、色々見えなかったw

O/R Mapperを支える技術

SQLの性質と、モダンなO/R Mapperが目指すところ、
それを実現するための要素であるクエリオブジェクトについて、とても分かりやすく解説してくれた。
SQLは一つのクエリを分割して、名前を付けたり、それらを結合したり出来ない。
再利用性に乏しくなるし、直感的では無い。
集合に名前を付けて、オブジェクトとして扱えるようになることで、
集合演算を直感的に示すことが出来るということ。
Rails3のArelによる記述が何となく分かりやすいとは感じていたが、
その背景について知ることが出来て、何かスッキリした。
後、遅延評価になっていることへの利点とかも、おおーって感じだった。
フラグメントキャッシュを使う時の、ビューとコントローラーの結び付きが、
遅延評価であることで上手く分離できている例は、何か凄いスッキリした。

Matz基調講演

なんか、黒Matz全開で、やたら面白かった。
大人気ないMatz、負けず嫌いなMatz。
ライバルは「全力で潰す」らしい。
競い合う相手が居るから、お互い成長するということを言っているんだろうと思うがw
そして、Matzもまど☆マギネタを持ってきたw
今回のrubykaigiは、まど☆マギとミサワネタが多かったが・・・。
rubistが他者を呪うと、ソウルgemが濁って、割れるとMatzが死ぬらしいw

閉会

グランドフィナーレ。高橋会長が涙ながらに言葉に詰まる様にグッと来てしまった。
感極まるとは、正にこの事だ。
来年が無いのが、とても残念。また来たいのに。
でも最後の最後に参加できて良かった。
楽しく、そして充実した3日間。
心から、ありがとうございました。

Reject Heroku Party

rubykaigi終了後、Heroku主催による参加無料のパーティがあると案内があった。
行ってみると、会場溢れててRejectされたw
クラウドなのにスケールしてねえよHeroku!
仕方ないので、Forkして近所で飲むrubist達。
ただ、入った店がめっちゃ狭かったので、すごい暑かった…。
後からMatzが来てくれて、凄い勢いでMatz撮影会が行われたりとか。
「会いにいける言語開発者Matz」って感じ。
私も2ショット写真を撮ってもらい、再び感極まる。
体力が持たなかったので、22時ごろに退散。


ヘロヘロになるぐらい疲れた。
でも、こんなに充実した連休は中々無い。
あー、最後のrubykaigi楽しかったー!