みなとRuby会議01 で「怠惰なRubyistへの道」という発表をしました

6月2日は Yokohama.rb 主催のみなとRuby会議01 に参加しました。今回はスピーカーとして参加しました。けど Yokohama.rb の一員としてなんとなく開催側のような気持ちでもあり、個人的になんとも印象深い Kaigi になりました。

みなとRuby会議01 - Regional RubyKaigi

飛行機の離陸/到着が遅れて13時過ぎに会場に到着。実行委員長のオープニングを見逃しました。残念。飛行機は遅れるもの、ということを折り込んで移動計画を立てないといけませんね。

ソーシャルコーディング

それから会場ではペアを組んでの課題プログラミング。あみだくじを生成する問題と数字を英語表現に変換する問題があったようです。Kaigi でペアプロをするってどういう感じなのかなーって不思議に思ってましたが、たいへん盛況でしたし参加者の方々の感想でも ice break になって良かったとか評判良かったようです。わたしはというとこの時会場の後ろのスピーカー席で発表スライドのチェック、手直しなどしていました。そしてここでバグを発見。構成を組み換えとかしてたのでした。

yokohama.rbとminami.rbのおいしい関係

Yokohama.rb の姉妹.rb である minami.rb の代表である @satomicchy さんが発表に来てくださいました。
Yokohama.rb と minami.rb が姉妹.rb になった顛末とか実はよく知らなかったので、その場の光景が目に浮ぶような再現がおもしろかったです。それから沖縄 Hackathon の話があって、福岡でもどこかに話を持っていってみたいなーと思います。沖縄へ家族旅行って体で行って、家族は観光してわたしはHackathonしてるとかどうかな。だめか。
あとここで Yokohama.rb に参加したことがない人はどのくらいいますか、と挙手を求めたところ、結構多くて驚きました。

ごきげんRails

株式会社万葉の社長の大場さん(@nay3)が Rails の嬉しいところとか作法について、息もつかせぬトークでした。「壇上に上がると息をするのを忘れるので」とおっしゃる通り息が上がってきて、twitter で「社長、息してください」ってツッコまれてました。咳さんの「ここで水を飲む」というスライドを入れるメソッドをまねて「ここで呼吸する」というスライドが必要ですね。
最近 Rails もするようになったわたしにはすごく勉強になる内容でした。特にテストのところが。変更に耐性のあるテストにするためには検査したい対象のレイヤを揃えるというのはうんうんと頷きながら聞きました。
あと近々万葉さんから書籍が出るそうです(そのはず)。
あと質疑応答でみんなどのくらいテスト書いてるの、っていうアンケートになってこれも興味深かったです。

怠惰な Rubyist への道 - Enumerator::Lazy の使いかた

わたしの発表でした。 2.0 (trunk) で追加されている Enumerator::Lazy という新しいクラスの機能について、おそらく日本語では初めてユーザ向けに解説したものではないかと思います。発表資料は配布用に手直ししたものを上げています。

無限リストのくだりが最初は Enumerator のところにあったのですが、実はうまく機能していないことに気がついて Lazy のところに移動したものの、Lazy ならではの活用方法のサンプルコードになっていなくて、そこの説明はしどろもどろになってしまいました。あと Enumerator のメソッドチェーンで使えるものとして with_index くらいしかなくて、と言いましたが Enumerator には with_object というメソッドもあります。inject のかわりに使えたりしてこれ自体は便利なメソッドなのですが、with_object はブロックの返り値を元の Enumerator のメソッド(map とか select とか)に渡してくれてなくて、やっぱり map などの Enumerator の意味が失われるので微妙です。それから副作用のある each を Lazy にした時に複数回 force した時の挙動については @takkanm さんに頂いたコメントで自分としては納得できていて、あとキャッシュされて嬉しいというケースが思いつかないので、そういう仕様でいいのかなと思っています。
発表後複数の人から「Enumerator::Lazy が Enumerator を置き換えたりしないんですか」と訊かれましたが、仕様が違うので少なくとも 2.0 では Enumerator 自体を変更することはないでしょう。けど Lazy のアプローチのほうがなんとなく正統的な気はするので 2.0 が出て普及してきたら lazy が使われるようになるんじゃないだろうかと思っています。ただうまく活用したイディオムとかサンプルが出てきてくれないとどう使っていいものかわからないものかもしれないので、聴いてくださったみなさんで是非いい使い途を考えてみて欲しいです。
それから日本Rubyの会を「一般財団法人」と表記してしまっていましたが「一般社団法人」が正しいです。大変失礼しました。

Ruby Kaja はじめます

Yokohama.rb #18 で提案した Ruby Kaja (Ruby 冠者)が @tyabe さんはじめとする YOkohama.rb の企画と日本Rubyの会の支援も頂いて始動しました。ありがたいことです。わたしは名前付けて最初のコンセプトを話しただけで、あとはあれよあれよという間に話が転がっていて、すごいですね。

Ruby Kaja

Rubyコミュニティから1人 Kaja を選出してノミネートして頂く、その基準は各コミュニティにまかせるというものです。2012年最初の表彰は札幌Ruby会議で行われるそうです。札幌行かなくちゃ……。

音響

みなとRuby会議では専属の DJ (@kanithehandsome さん)がいて、BGM とかいい感じでこれも評判が良かった点ですね。ちなみにスピーカーは登壇時の BGM に好きなものを選べて、わたしが選んだのは "The Device Has Been Modified" って曲でした。少しだけでしたが流れてたので気になる人は聴いてみてください。ちなみにこれと ATB の Ecstasy という曲とで最後まで迷ってました。

Ustream 配信/録画

Ustream 配信や録画は Yokohama.rb でもUstream配信してくださってる @miyohide さんが担当していて、どうやら配信はうまくいっていたようです。Ust 参加の方も居た模様。また録画もしてあって、ただどう公開するかなどの段取りはまだ未定みたいです。自分の発表を見返すの勉強になるので準備ができたら公開して欲しいですね。

懇親会

おいしいお店でした。チーズフォンデュは Yokohama.rb の伝統ですかね。ここで自分の発表の感想としてきいて印象に残ったのは「NHK の教育番組みたいだった」というもので、それは良いのかどうなのか、とかちょっと思ったのですが、じわじわと腑に落ちてきて、自分のスタイルはそういう感じなんだなーということが確認できました。
あと @tdtds さんにモバマスのアカウントを教えていただいて、しかもレアカード(あずささん)をプレゼントしてもらいました。育成がんばります!

感想

発表者として参加させて頂きましたが、最初に書いたように自分としては身内の感覚なので、参加者の方に楽しんでもらえたかな、トラブルなかったかなというのが気になりつつって感じでしたが、わたし自身も楽しめた Kaigi でした。スタッフに皆さんありがとうございます。
いつもそうですが今回の発表は特に準備がキツくて、前日までこれを終えたらもう当分発表はいいやって思っていたのですが、終えるとやっぱりまたどこかでやりたいなぁと思いますね。Lazy の話は鮮度もまだまだ落ちない(まだリリースされてないし!)と思うので持ちネタとして再演しようかな。