横浜ではじめての地域 Ruby 会議「みなと Ruby 会議 01」が 2012 年 6 月 2 日に開催されました。 森に囲まれた自然豊かな会場で、参加者のみなさんからは「みなとっぽくない」と大きな反響をいただきました。
2012 年 6 月 2 日 (土) 12:30 - 17:30
神奈川県立公文書館 (神奈川県横浜市旭区中尾 1-6-1)
yokohama.rb
およそ 100 名
#minatork01
:
ソーシャルコーディングと題して、参加者の皆さんに実際にコードを書いてもらうセッションが行われました。スタッフが考えたお題に参加者同士のペアプロで挑戦する形式です。ちなみに、今回の参加者の内、ペアプロ経験があるのは 3 割程でした。
みなと Ruby 会議のスタッフからのお題は 2 問。制限時間は 60 分。
ペアプロ未経験の方のために「ドライバー (コードの書き手) は頻繁に交代する」「積極的に考えていることを話してコミュニケーションを取る」等、簡単な心得について解説があった後、自己紹介 & ペア決めタイムです。どちらの問題からやりたいか、使ってるエディタが一致するかなど、各テーブルで自由にペアを決めていき、奇数になってしまうところはスタッフが参加する形でペアを作っていきました。
限られた時間で問題を解くという行為は結構熱くなってしまうのか、今回参加してくれた皆さんも、真剣な表情で課題に臨んでいました。今回、この企画を実施して非常に良かった点は、参加者同士がしっかり自己紹介して、お互いにコミュニケーションを取れたことです。続くトーキングセッションの前のアイスブレイクとしても最適だったのではないでしょうか。
最後は、お互いのコードをレビューしあい、工夫した点や、書き方などを教えあう時間がありました。その中で、英語変換の問に対して、いくつか独創的な解答方法があったのでご紹介したいと思います。
その他にも、変換テーブルの作り方に各々工夫があったり、テストコードまでしっかり書いているペアがいたり、と様々なコードが見られる貴重な機会でした (前のスクリーンで参加してくれた、yokoken さん、r7kamura さんペアは 2 問とも解答していました。凄い!) 。
最終的なアウトプットは、Gist や Github へのアップロードが推奨されていたので、みなと Ruby 会議の関連ツイートやブログから多くのコードが見られると思います。
姉妹地域 Ruby コミュニティの関係を結んでいる yokohama.rb と minami.rb 。始まりはその場のノリで決めた姉妹地域 Ruby コミュニティの関係ですが、伊豆での Rails Hackathon 開催や、それぞれの地域コミュニティ参加者の交流など継続的かつ活発な活動が行われています。 また、食い倒れの街・大阪での地域 Ruby コミュニティはおいしい食べ物、飲み物とは切っても切り離せないとのことで、 minami.rb から yokohama.rb に対して日本酒 2 本の贈呈が行われました。
yokohama.rb と minami.rb とのおいしい関係の紹介が終わった後は、つじたさんによる Ruby / Ruby on Rails を続ける理由が話されました。つじたさんは本業では Ruby / Ruby on Rails を使った開発を行っていないとのこと。そのようなつじたさんが Ruby / Ruby on Rails を使った開発を行われている理由として、
の 3 点を上げられました。
Ruby コミュニティが持つ懐の深さと、初心者から楽しさが分かる Ruby の楽しさをコミュニティを通じて体感し、自分でものを作って公開する。「体感 + 五感で Rails と遊ぶ」ということを強くお話されました。
発表全体として、地域 Ruby コミュニティの広がりを感じさせる発表でした。
:
大場さんが Rails を使っていて、ごきげんになったことや Rails の魅力について話していただきました。まず、参加者のみなさんがどれだけ Rails で開発をしたことがあるか調査されていましたが、大半の参加者が Rails で開発をしたことがあるようでした。
大場さんは最近の Rails については、少し難しいと感じられているそうです。うまく動作させるまでに環境づくりが大変ですが、そこで負けずに頑張って使ってみてほしいとアドバイスがありました。
開発中には時間をかけるべきことと、時間を節約したいことがあると思います (以下に箇条書きにしました) 。Rails を使うとどの作業で作業時間を節約でき、どの作業に時間をかけることができるかということを中心に Rails の持つ魅力について話していただきました。
Rails では、コントローラの作成は、コマンドからひな形を生成して行いますが、生成されるコントローラのソースが、コントローラとして不足しておらず、また書き過ぎでもなくちょうどよいところが Rails の良さだとおっしゃっていました。
マイグレーションについての良さについてもお話していただきました。DB のスキーマを更新のたびに Ruby のコードして保存できるので、いつの間にかスキーマが変わっていたという事態を防ぐことができ、開発者みんなでスキーマの状態を共有することができます。
RSpec についても触れられ、テストコードがプロダクトコードの変更に耐えるためには、関心事にフォーカスすることが大事だとおっしゃられました。インスタンス変数の値を確認するなど、すべてを確認するのではなく、確認する項目たちをある一定のレイヤーに揃えるのがよいとのことでした。全部調べると、内部の変更に弱く、リファクタリングに弱いテストコードになってしまいます。
最後に Rails の勉強法について話されました。興味のあるアプリを作ってみるのが一番で、作るものについては偏ってて OK、偏ってても興味を持って突き進むと、いつしかバランスがあってくるので、ぜひ頑張ってほしいとのことでした。
情報源として、Rails の書籍や Web サイトを紹介していただきました。
また、Rails の情報を探す際には、英語の情報を避けないでほしい。英語のまま頑張って読んでほしいとおっしゃってました。
:
Yokohama.rb から福岡に遠征中で、CRuby のコミッタでもある nagachika さんによる、Ruby 2.0 の新機能 Enumerator::Lazy についての発表です。現在開発中の Ruby 2.0 の機能という非常にホットな話題でありながらとても分かりやすい内容で、Ruby 熟練者にとっても非常に勉強になる話でした。
ちなみに Ruby 2.0 は Ruby 生誕 20 周年である、2013 年の 2 月にリリースされる予定です。
まずは Enumerable の解説から。Enumerable は言葉の意味としては「数えられる」という意味で、Ruby での意味合いは「each によってブロックを順番に処理できる」ということです。each メソッドを定義したクラスに Enumerable を include することで、Enumerable に定義されている様々なメソッドを活用できるようになります。
続いて Enumerator について。Enumerator は each に渡すブロックを保留したままオブジェクトとして操作できるようにしたものです。Enumerator は外部イテレータを作ったり、each 以外のメソッドを使ってメソッドチェインをしたりと Enumerable を更に便利に使うことを可能にしてくれます。
そして最後に、今回の主役である、Enumerator::Lazy についての話がありました。Enumerator::Lazy は Enumerator のサブクラスであり、Enumerator で保持していたブロックを遅延評価で処理できるようにするものです。Enumerator::Lazy には map や select などお馴染のメソッドがあり、それらは Enumerator::Lazy を返すようになります。この Enumerator::Lazy オブジェクトをメソッドチェインで繋ぐことにより、中間データを溜めることなく、 map や reject した結果を活用して集合演算を行うことができます。最近注目されている関数型言語に非常に近いイメージでコードが書けてスマートな印象を受けますね。nagachika さんによると、書き方以外にも以下のようなメリットがあるようです。
現在は、まだ仕様について議論が為されている段階とのことで、force を複数回実行した時の挙動についてや、enum_for 的なメソッドを用意するか、などについてこれから議論していきたいと、nagachika さんは話していました。
個人的には、メソッドチェインが強力になるところが、非常に気になっています。また、Enumerator についても意識的に使っている人は、それほど多くなかったのですが、上手く活用することですっきりしたコードが書けるようになることが分かり、とても勉強になりました。
Ruby 2.0 のリリースが楽しみになるような、素晴らしい発表だったと思います。
総じてシャイな日本の Rubyist 。そんなシャイな Rubyist を称えるための制度が RubyKaja 。選考基準は特に決められていないとのことですが、できれば普段スポットが当たっていない人に選ばれて欲しいという思いを語られていました。
発表の場では、参加条件や、選出方法について説明がありました。各コミュニティで選出された RubyKaja は今年開催される札幌 Ruby 会議 2012 にて発表されるとのこと。
各コミュニティの RubyKaja がどのような人になるのか、今から楽しみですね。
クロージングの場は、 yokohama.rb のファウンダーであるだんさんより yokohama.rb とみなと Ruby 会議は「継続」していくことについて思いを語られました。
先日 20 回の開催を迎えた yokohama.rb ですが今後も継続して開催し最低 50 回の開催を目指すこと、また、みなと Ruby 会議も 3 年後にはパシフィコ横浜で開催を予定していることをお話しされました。
懇親会は 横浜駅近くの Foodiun Bar 一瑳 横浜店で開催され、 50 名の方々に参加いただき Ruby 談義に盛り上がりを見せていました。
当日の発表の様子は以下で公開してあります。
今回ご登壇いただきました、つじたさとみさん、大場寧子さん、近永智之さんありがとうございました。我々があげた「はじめの一歩」というテーマにぴったりなお話をしていただき、感謝でいっぱいです。
当日、ご来場いただいた皆さんへ。地域 Ruby 会議という場ではじめての試みとなるペアプログラミングを楽しんでいただきありがとうございました。随所に Ruby を楽しむ輪が出来上がり、地域 Ruby コミュニティの懐の深さに感動を覚えました。
また、招待講演での講演者に対する大きな拍手とたくさんの質疑、膨大な tweet 、数多くの参加レポートを書いていただきありがとうございました。
12 連勤の中、実行委員長としてスタッフを率いてくれた @1syo
安定の司会力でスムーズなみなと Ruby 会議を進めてくれた @satococoa
みなと Ruby 会議の運営費用を取りまとめてくれた @hamakn
100 名を越える人を収容できる会場を探し確保してくれた @setoazusa
すてきな BGM を流し続けてくれた @kanithehandsome
みなと Ruby 会議の構成やペアプログラミングのテーマを考えてくれた @u1tnk, @u16suzu, @tyabe, @shu_0115, @kei_q
みなと Ruby 会議を盛り上げるために様々な演出をしていただいた @dan5ya, @yshino271
懇親会を取り仕切ってくれた @joker1007
るびま担当経験者として迅速な対応をしていただいた @hokkai7go
みなさんのおかげでみなと Ruby 会議が開催できました。ありがとうございました。