札幌Ruby会議01にいってきた

jpmobileでいつもパッチなどを送らせていただいてるid:darashiさんや、wassr上でよくやりとりしてるid:h-sbtさんなど、札幌の面々はいろいろふだんからつきあいがあり、実際に会いたかったので、札幌にいってきた。

wassrでの位置情報の地図はこんな感じ

以下非常に長いふつうの日記。

1日目

新千歳空港と札幌の間は数駅なのでそんなに遠いとは思っていなかったが、普通に遠かった。

駅で島田さんが歓迎してくださって、id:kakutaniさんとid:darashiさんいちおしのPicanteというお店。

http://soupcurry.info/shop/7

id:mrknさんがお店の席をとっておいてくださった。

ついてそうそうid:kakutaniさんがビールを頼む。
ちょっとして、id:t-wadaさんが合流。

おいしくて、量もすごくあるのでおなかもいっぱいになった。ごはんを食べたあとは、各々ホテルにチェックインなどをしないといけないので一旦解散した。

id:mrknさんがにホテルの名前を言っただけで場所を知っていてすぐわかったので非常に助かった。

チェックインしたあとはホテルでだらだらコード書いてたり、cucumberの予習や会場設営のustをながめてたりした。

前夜祭よりはかなり早めにでて次の日の会場などを探してうろうろするがかなり迷ってしまう。

仕方がないので島田さんに電話してなんとか前夜祭の会場にたどりつく。

Ruby札幌は女性の方も多かったので驚いた。木戸さんに青森の話などを聞く。

ここでの舟盛りが大量ですごくおいしかった。

店を出たところでなぜかバナナを配っていた。

ホテルに帰ると腹いっぱいで苦しくて眠れなくて何もせずにねころがっていた。

2日目

朝おきて、Ruby会議の開始が12:00からと結構遅かったので、その日の二次会で行われるという予定らしいものの仕込みを作っていた。

つい夢中になっていて気がついたら時間がなかったので急いで出てなんとか間にあった。

スイーツタイムは、ひととおりは食べてみようかなと思っていろいろ食べまわっていたが、他の人は遠慮がちに食べていたのでもう少しスイーツ(笑)としての嗜みが必要だったのかもしれない。

id:mrknさんが用意した南幌キムチがスイーツの中で明らかに浮いていたが好評だった。

id:elimさんが会場をustしてあるいていた。

artonさんの話

windows環境ならではのrubyを対応させる上での苦労話など。arton節が炸裂して、ircが盛りあがっていた。

えっちなしばたさんの話

自分はあまりtDiaryを触らずにrubyをやってる人なので、その歴史的な話などはあまり知らなくておもしろかった。興味を失わず継続的に開発を進めることは本当に大変で、自分などは特に飽きっぽく作って放置しているプロジェクトがいくつかあるのでそれらもたまには手を入れないとなぁと反省した。

1.9移行計画は、tDiaryのようなアプリケーションはEncodingが非常に重要なところなので、1.8でも動くように保ちつつ、1.9に移行させるのはなかなか大変な作業だろうなと思った。

うまく壊さずに進めるためにはid:t-wadaさんの東京Ruby会議01のおはなしのように、

  • tDiaryの今の挙動をトレースできるようなスクリプトを書く。
  • 挙動がかわらないようにリファクタリングしていじりやすい構成にする
  • Encoding周りで1.9と1.8系のコードを分離する

といった手順を踏んでくしかないかなぁと思ったり。(tDairyの中身をよくしらないので憶測ですが)

せきさんの話

天丼パターン重要。dRuby入門だと思っていたらdRuby実装入門だった。講義についていけずに落ちこぼれたのが非常に悔しい。
まさかのid:darashiさんとの講師交代。

ちなみに既にbuzztterではRindaは動いていないとのうわさw

まいむぞうさんの話

http://gemspec.info/ の話。

gemからメタデータを吸いだしたり、全gemをダウンロードして展開してみたりとかを最近ちょっとやってみたので、かなり興味深いはなしで、そのあとの懇親会やスイーツタイムなどでいろいろ情報交換をしたりさせてもらった。

id:kwatchさんのはなし

http://github.com/kwatch/motto-mysql/tree/master のはなし。

とみたまさひろさんのmysql-rubyをベースに機能を追加したもの。mysql-rubyはDateTime型のデータなどを文字列でしか返してくれないのでオブジェクトに変換したりする機能を提供してくれるらしい。

個人的にも今薄いORMっぽいものを作りたい衝動があるので、割と似たようなものを作るか、このライブラリをラップしてあつかえるようにした何かを作るかもしれない。

さらに http://github.com/oldmoe/mysqlplus/tree/master をベースにすると1.9.0.5にも対応できてかつ早くなるんではないかなと思った

id:mrknさんのはなし

https://github.com/mrkn/ruby-measure/tree は賢い数値単位変換を実現するためのかなりおもしろいライブラリで、既にRuby札幌の勉強会のustの発表を見ていて興味が湧いたのでパッチなどを投げたりしていた。

折をみて色々話をしてみたが、今後の課題としてあるらしい、各単位のクラス化、単位の多次元化や、そのインターフェースなどはなかなか難しい。

個人的にもちょっと色々やってみて良さそうな方法を模索してみようかと思っている。

id:t-wadaさんのはなし

5分のLTなのに非常に内容の濃い話で、それをネタに懇親会で議論しつづけてももちそうな話だった。

なるべく実装に依存しないテストというのは、抽象的になりがちで、中身を見たときにそこで何をやろうとしているのかがすんなりわかるようなテストにするのはなかなか難しいなぁと思います。

ただ冗長すぎると、どんなテストがあるのかわからず、他の人が手を入れることになったりすると、あっというまにレガシーなコードになってしまうなぁと。

テストを消すという発想と、カバレッジがかぶっているときは消すことができるという仮説はおもしろいなと思いました。

id:kakutaniさんの話

などに関しては気になりながらもあまりキャッチアップできてないので、あとで実際につかってみる。

話の内容としては、しばたさんの話を進めるための一つの提言だった。

一つ問題があるとすれば、使おうとしているツールが今のところ1.9対応してないところだろうか。

rspecは1.9で動かないコードが入っていてこれまで何度かパッチが出ていたような気がするが、作者はあまり1.9に興味はないっぽい。

ただし、rspecに関してはmspecである程度は代替できる。rcovは非常に便利で素晴しいツールですが、1.9だと動かない。ただし、1.9からだとruby本体にカバレッジ測定用のAPIがあるのでそちらを使うことはできるような気もする。

なのでひととおりやってしまってから考えてもよいかもしれない。

http://github.com/kakutani/testable_tdiary/ は主に変更されてるのはmaster以外のブランチなので注意


その後、片付けを手伝って発表者でもないのに打ち上げに参加させていただいた。

id:kakutaniさんが前来たときに山のように刺身が盛られていて食いきれないといっていたお店にいった。実際、敵は化け物だった。

あえなく撃沈した。自分たちのテーブルはid:cojiさんが早々に手巻き寿司セット、味噌汁などの流行を作り出していた。

カニむきに定評のあるドラ娘が活躍していた。

二次会は、バーのようなところで、プロジェクターを移してLTをやろうということだった。

いがいがさん( http://iddy.jp/profile/igaiga/ )のQuartzComposerでタイマー+IRCを実現する話は、本番のLTで発表しなかったのがもったいないくらいに面白いはなしだった。

id:kwatchさんのネタは九州で発表するやつらしいのでここでは割愛しておく。

自分は、 http://d.hatena.ne.jp/tokuhirom/20081018/1224344782 の話などruby界隈でももっと盛りあがるとおもしろいかなぁと思って前々からやろうとは思っていたのですが、

http://github.com/walf443/classx-pluggable

vimゼンした。実際のところはまだまだ作りかけで、APIなどはまだまだ変わる余地がいろいろある。

そのあとは、スープカレーのお店。このお店の名前はわすれてしまった。

( 追記: SHO-RINというお店だそうです。 http://soupcurry.info/shop/47 )

id:kwatchさんがまいむぞうさんの辛さ20のやつを間違って食べてしまい、大変なことになってしまっていたのと、フリップフロップ演算子の話で盛りあがっていた。

フリップフロップ演算子はその場にいた人のほとんどが知らないという非常にマニアックな機能で、

x = 0; 10000.times { if (x == 4)..(x == 10); p x; end; x += 1; }
4
5
6
7
8
9
10
  #=> 10000

こんなもの。

応用すると、 http://jarp.does.notwork.org/diary/200810c.html#200810211

のようなことができる。

プロゴルファーになりたい人はぜひとも知っておきたいテクニックだ。

3日目

id:darashiさん、id:mrknさん、しまださん、tmaedaさん( http://tmaeda.s45.xrea.com/td/ )、いがいがさん、ドラ娘、高橋会長と自分で札幌観光をした。

まずはデパ地下でスイーツをキメて、スープカレーを食べた。
北海道のスープカレーは確かにどこも非常においしい。(もちろんマスターid:darashiさんの推薦のお店にいっていることも大きいのだけど)

そうすると雨が降ってきたので、ぶらぶらしながらJRタワーの展望台へ。

その後は喫茶店を探しながらうろうろしたが、雨と日曜日なこともあってか大人数はちょっと入れなかった。

個人的には、id:darashiさんとgitのrebaseとmergeの違いについてが話せてよかった。

地下の広場で座りながら話をして、電車に乗って帰った。

まとめ

本当にほどんど面識がないにもかかわらず、Ruby札幌の人には非常に親切にしていただいて、OSSの人同士のつながりのようなものの素晴しさを再実感できて感動しました。

普段からオンラインで色々議論していてなかなか伝わらずにもどかしい部分などを実際にHackathlonのようなことで伝えられなかったのはちょっと残念かなぁと思っています。

会場の設備、片づけは、もっとみんなでやってもよかったと思う。色々とコミュニケーションを取る必要ができるし、コミュニティってそういうものだと思うのです。発表者と聴衆とスタッフというようにはっきり別れてしまうのは時には必要なことなのですが、壁をつくってしまいがちなところもあったりするような気もします。

あと札幌発表の人が少なかったのも少し残念でした。

というようにあれこれ書いていますが、非常に綿密に計画が練られていて、様々なことに挑戦し、Ruby札幌は素晴しいと思います。これからの発展に期待します。

本当にお世話になったしまださん、ありがとうございました。