2012年9月21日金曜日

札幌Ruby会議2012に参加した

はじめに

札幌Ruby会議2012に行って来たので、感想やメモを書きました。
会議の内容については札幌Ruby会議2012のレポートチームによる下記の記事が詳しいです。

札幌Ruby会議2012 スペシャルレポート

 9/13(木)

移動日

岡山からの札幌便が、14:35発の1便しかないため前日入。
飛行機が遅れて15:00離陸、新千歳空港についたのが17:00過ぎくらい。
札幌まではさらに1時間くらいかかった。
ホテルにチェックイン後、晩御飯を。
コリコリしてて旨かった。

9/14(金)

会議前

Herokuから、先着100名に弁当を配るということで開場よりもかなり早く行ってみました。
めでたく弁当ゲット。配っているメンバーも、相澤さん、まつもとさん、笹田さんと豪華メンバー。
タンブラーもいただいた。

■9/14(金) 1日目

 

スポンサーセッション Heroku 相澤 歩さん


HerokuはただのPaasをやっているのではなく、プロフェッショナルのための生産性をいかに高めるのかを哲学にしているという言葉が印象深かった。
最新のスタックのCedarでは、Ubuntu10.04で動く言語なら何でも動くらしい。Railsだけのサービスではない。

スポンサーセッション マイクロソフト 平野 和順さん


マイクロソフトのオープンソース戦略についての話。
MacやLinuxで開発している人にもWindows Azureを使ってもらえるようにSDKをそれぞれのOS用に用意したり、能楽堂というRailsのアプリケーションサーバー、Webサーバーを開発している。

HerokuやSqale、このAzureもだけどRailsを動かすためのPaasタイプのサービスが増えてきて面白い。仕事でも個人でも今はRailsでアプリを書いているので試して比べてみたいと思う。

スポンサーセッション 英和システムマネジメント 高橋 健一さん


ソーシャルコーディングについての話。
コードを書くにはエンドツーエンドテストを最初に書き、Rspecでユニットテストを書いていく。
gitを使っていて、pull request単位でコードレビューをしているとのこと。

コードレビューの面白い例として、リーダブルコードの章番号付きで、なぜ良くないかのを示してレビューコメントがあった。

「自分たちが納得できるようなプロダクトを作ることも出来ずに、お客様を満足させることは出来るのか?」
この言葉が熱かった。

この部分はこんなんじゃ駄目だなーという思いが残ったまま仕事してると、やっぱり駄目なことになってしまう。

スポンサーセッション クックパッド 井原 正博さん


クックパッドの組織づくりについての話。
色々とキーワードが出てきたけど、自分が気になったのは以下のところ。
・才能がきちんと活かされる世界であって欲しい。
・全社員が技術を正しく理解している
・絶対に自分より優秀な人を採る
・バスに乗れる人数は決まっているので、誰を乗せるかが大事

これを実践して組織づくりしてるってマジで凄いと思う。
最近同僚ともこの手の話をよくするので考えされる話だった。

料理をささえる技術 クックパッド 舘野 祐一さん


rails2.3からrails3.0への移行にあたって、どんなふうに作業していったかをかなり具体的に解説。
本番環境のリクエストを複製して、rails3.0バージョンのアプリに流すやり方はなるほどと思った。
これは同じような事が出来るようにうちでも環境を作りたい。

提供しているサービスの形態が違うので同じように出来ない部分もあるけど、今後もrailsアプリをメンテしていくのにとてもためになる話だった。

MobiRuby masuidriveさん


RubyでiPhoneアプリが書けるMobiRubyの話。
mrubyを使って開発している。実際にMobiRubyで開発されたアプリがApp Storeにリリースされている。
Rubyで色んなアプリが書けるようになると嬉しいので、こういうのどんどん出てきて楽しい。

Androidにも対応する予定みたい。

一日目最後


Rubotのセッションのはずが、急遽なくなってしまったということでMatzに質問コーナーが。mrubyについて色々聞かれていた。

メモ取ってなかった。

9/15(土) 2日目


Purely functional programming in Ruby  前田 修吾さん


Rubyは関数型っぽい言語で、関数型言語由来の機能がけっこう入っているが、やっぱり命令形言語である。
そのRubyで副作用のない関数プログラミングをするにはという話。



配列を使うと副作用をさけられないので、HaskellなどにあるListを実装する。
再帰をつかって処理を書くとすぐにオーバーフローする。末尾再帰の形で記述してもrubyだとやっぱりスタックがあふれる。
じつは末尾再帰最適化のオプションがデフォルトでoffになっている。ruby2.0では有効になるかもしれないとのこと。

gem install immutableでインストール。

ベンチマークを取るとArrayよりかなり遅い。実用には向かないとのこと。
でも面白いので使ってみたい。

Patter Matching in Ruby


先ほどのセッションに続き、関数型っぽい話題。
gem install pattern-matchでインストール。
Arrayだけでなく色々なオブジェクトでマッチ式を書ける。

正規表現のマッチとかすごく便利そう。これは実践でも色々使ってみて情報共有してみたいと思った。

Keynote Aaron Patterson


サラミの情報のリアルタイムシステムについて。
この発表は面白かった。
ハードウェアから自作する人とかすごく尊敬する。

Keynote Matz


まつもとさんのコードを書く話。
すごく熱い話だった。
我コード書く、ゆえに我あり。
自由に、強制されずに、書こう。

モチベーションが大事で、モチベーションがあるなら車輪の再発明でも何でもやればいい。
この話、すごく背中を押してくれた感じ。参加してたみんなもそうなんじゃないかなぁ。

アメリカのカンファレンスに行こう 原田洋子さん


英語が分からないから勉強してからとか、アメリカ遠いとかそういうこと考えないで
とにかく行こう。行ってみて英語使わないと話せるようにならない。
プログラミング言語と同じで、使わないと使えるようにならない。
使えるようになってから使うとか考えてたらいつまで経っても出来ない。

今回札幌にもかなり思い切って行ったのだけど、次はアメリカ行きたいなぁ。

Japanese a programming language アンドリューグリムさん


日本語は面白い言語という話。プログラミング言語であると。
日本語は文法が簡単で、順序を変えずに単語を変えるだけで質問になる。
英語だと順序が変わる。

アンドリューさんは、一日目と二日目の懇親会への移動時に話しかけてくれたんだけど
質問されて答える。質問されて答える。だけで会話が終わってしまう上に
会話自体なかなか通じなくて、自分の英語のひどさを再自覚。

原田さんのセッションでもあったとおり、勉強しようと思っててもしないので
もっと英語圏の人に関わって、使うようにしないなと思った。

Ruby2.0 笹田さん


Ruby2.0の中身の話。
Ruby2.0がどうなるかという話ではなく、Ruby2.0の機能をどうやってやるかの話。
笹田さんなので、きっとそういう話だろうというつもりで聞きに行くと、
RHG(Ruby Hacking Guide)くらい皆読んでますよね? との入りから。
一応読んでるので大丈夫なはず。

といっても、Flonumの話くらいしか理解出来ずだったけど。
まぁしかしRuby2.0は楽しみだなぁ。
聞いててRubyのプロファイラとか作ってみたいと思った。そういう技術興味ある。

Rubyによる本気のGC


RubyでGCを作りたいけど、でもRuby自体のGCが影響してあれだしという悩みから
色々なVMとかGCを調べて、JikesRVMというVMを使ってやってみたという話。
実装したGC中に、実装言語のGCが走らないように対象言語のオブジェクトを作らないように
とかやってるうちに、「C死ね」から始まったのに結局Cを直接読んだりとか
色々微妙になってしまったとのこと。

言語処理系の実装の話が好きなので面白く聞けた。

LT


LTのところはメモがあんまり取れてないのでざっくり書きます。
(LTはその場の臨場感を楽しむものだと思ってるので、集中して顔を上げて聞いてました。
 花火大会で花火の写真を撮らずに見るのと同じ)

家計簿さなたろう。個人のプロダクトで奥さんと話し合いながら作った。
うちも嫁さんから使いやすい家計簿が欲しいと言われてて、いま個人でやってるプロジェクトが落ち着いたら作ろうと思ってたので、じっくり参考にしたい思う。githubに公開されていたので早速フォークした。

Axlxsの話。Rubyからxlsxを扱えるライブラリ。
CSVなんて使うな、ユーザーはそんなもの使ってない。開発者の怠慢だってのがグサッときた。

コードレビューの話。
良いレビューは、「どこが悪いか」「なぜ悪いか」「どうすれば改善するか」を入れる。
m9(^Д^)とか書いちゃ駄目。

9/16(日) 3日目


Rubyの世界の継続的デリバリ 柴田さん

自分のなかで、いま一番課題になってて悩んでる部分の話。
ものすごく参考になった。というか、これからガンガン参考にして
今のプロジェクトの問題点をやっつけて行きたい。

具体的にどういうツールを使っているかも聞けて、今回の中で個人的には一番聞けてよかった話だった。

分散 RSpec 村田健太さん


これもまさに今の仕事での悩みの一つ。
クックパッドのテスト、分散環境で10分以内に終わるようになったのは雑誌でも見てて
実行時間が平均化するように振り分けているのがすごいんだけど、
そこからさらに進んで、動的に振り分けてさらに効率良く平均化出来るように取り組んでいるとのこと。

俺の前職の経験で、負荷が高い処理を複数サーバーに動的に振り分けるってのをちょっとやってたのもあってこの完成形が楽しみ。

クックパッドはこういう成果を公開してくれて、ライブラリを出してくれたりして

本当に仕事が助かってる。すごい会社。

ぬRubyKaigi Smalltalkハンズオン


まさかのSmalltalkハンズオン。
Squeakによるもの。前に図書館で本を借りて読んだことあったんだけど
Squeak面白くて、時間とって勉強しようとしてたので、つい参加した。
言語というより、OSに近い環境そのものって感じ。
スライドもSqueakの中で動いてた。
このまえ「自由自在Squeakプログラミング」がpdfで配布されてるのを入手したので
それも読んで色々とやってみたい。

まとめ


上記に書いたもの以外のセッションも聞いたりしたんだけど詳しくはスタッフのかたがレポートをまとめてくれているのでそちらを見るといいと思う。

今回本当に楽しかった。3日間ものイベントであれだけの参加者でスタッフの方々はすごく大変だったと思う。
こんなに楽しいイベントをやってくれてありがとうございます。

ちょっと自分の話を書くんだけど、すごくやってて良かったと思うのが「るびま編集」。
これやってなかったら今回色々と話しした人の半分とも話せなかったかもしれない。
岡山のRubyist、いっしょに編集やろう! (記事も書いて!!)
岡山のRuby盛り上がるし、こういういい事あるよ!

で、反省点はやっぱり「英語」。
これはねぇ。どうしようかなぁ。
アメリカに一回行ってみるかなぁ。