イベント参加はじめに僕は2013年から西脇.rbというRubyコミュニティを主催しています。まあ実際は西脇.rb単体で活動することはなくて、Akiさん(@spring_aki)が主催している神戸.rbといつも合同で毎月1回Ruby勉強会を開くのが主な活動です。前々からコミュニティのメンバーとは「合宿って面白そうだよねえ。いつかやってみたいよねえ」みたいな話をしていたのですが、場所を探したり、あれこれ準備をしたりするのが大変そうでなかなか着手できませんでした。ところが、今年に入ってから新しいメンバーもどんどん増えコミュニティ的にいい感じに盛り上がってきました。そこで「よし、じゃあみんなで合宿でも行ってみるか!!」と一念発起して開発合宿を開催することにしました。神戸.rbのRuby開発合宿の様子を書いてみます。この研修センターは三木ホースランドパークという大きな公園の中にあります。緑がたくさんあって、乗馬体験もできます。(このあと乗馬の写真も出てきます)館内は無線LANが使えて、研修室ではプロジェクタを借りることもできるので、勉強会を開くのにも打ってつけです。無線LANはときどきスムーズにつながらないことがあったので、僕はiPhoneのテザリングでネットにつなぐことが多かったです。@yuji_shimoda参加してくれたメンバーはなんと14人!この合宿にはなんと14人ものメンバーが参加してくれました。16人の参加希望者がいたのですが、仕事の都合で来られなくなったメンバーが2人いたので結局14人になりました。最初は「多くても10人ぐらいかな~」と思っていたので、16名も希望者が出たことにちょっとびっくりしました。神戸.rbの勉強会に参加したことがある人に限定して告知しました。みんなで一緒に泊まるとなると、どんな人か事前にわかっていないと、ちょっと不安になるからです。合宿のテーマは簡単に言うと、「長めのもくもく会」です。基本的には個人個人が作りたいプログラムを2日間かけてじっくり作る、というのが大まかな目標です。興味の近いメンバーがいれば一緒にチーム開発してもいいですし、「もくもく会」と言えど、何か質問や相談があれば他のメンバーとわいわい話しても全然構いません。合宿の最後には成果発表会を行い、この合宿で自分が作ったものを披露してもらいます。合宿1日目それではここからみなさんにも僕たちの開発合宿を追体験してもらえるよう、時系列順に実施内容を紹介していきます。最初は自己紹介とこの合宿で開発したいプログラムを各人に説明してもらいました。Piで何か作りたいというメンバーや、Ruby-Processingを使って鬼ごっこのアルゴリズムを可視化&シミュレートしたいというメンバーなど、やりたいことは各自様々でした。コーディングタイム自己紹介が終わったら早速コーディングに取りかかります。興味の近いメンバーが何組かいたので、そういう場合は興味が近い人同士で隣り合うように席を変更しました。昼食お昼になったのでいったん休憩を挟みます。1日目の昼食はカレーライスでした。コーディングタイム昼食が終わったらコーディング再開です。いちおう「コーディングタイム」となっているものの、特に行動を縛るわけではなく、自由に散歩してもらったりしても良かったのですが、みんながっつりコードを書いていました。夕食18時からは夕食の時間です。夕食は館内のレストランでバイキングでした。夜に飲みたい人たちは夕食後に近くのコンビニへ買い出しに出かけました。買い出しするものがないメンバーはその時間で先にお風呂に入りました。ちなみに、近くのコンビニといっても徒歩で行ける距離ではないので、メンバーが乗ってきた車に相乗りして出かけました。中間発表会1日目の締めくくりとして、現時点での進捗を各メンバーに報告してもらいました。PiやArduinoといったハードウェアと組み合わせたプログラムを作ろうとしている人もいます。@spring_aki各自が作ったプログラムはそれなりにできあがりつつありますが、まだ完成には至っていないようです。フリータイム中間発表会が終わったらあとは自由です。@yuji_shimoda僕は朝型人間なので22時頃には布団に入ってしまいましたが、中には2時頃までコードを書いていたメンバーもいたみたいです。ちなみに寝室は最大10人入れる和室を2部屋借りて、7人ずつ分かれて寝ました。@jnchito合宿2日目つづいて合宿の後半戦、2日目の様子をご紹介します。フリータイム朝食は7:30からだったので、それまでは自由です。僕は6時前に起きて、館内の図書スペースでコードを書いていました。コードを書いていると他のメンバーも何人かやってきて、一緒にコードを書いていました。@jnchitoまた、朝の散歩に出かけるメンバーもいました。公園内はかなり広いので、かなり良い散歩コースになったみたいです。食事&部屋の片付け7:30から朝食を食べました。朝食が終わったら、みんなで部屋の片付けをしました。乗馬タイム8:30から昨日と同じようにコーディングを再開します。@jnchitoただし、一部のメンバーは乗馬の予約をしていたので、9時過ぎから乗馬センターに移動して乗馬を楽しんでいました。乗馬していたメンバーはもちろん馬の上でもコードを書いて・・・いるはずはありません(笑)。バーベキュー大会11時からは昼食のバーベキューを始めました。バーベキューの材料は僕の妻に車で運んできてもらいました。14人分の買い出しや野菜のカットなどもやってもらったので、とても大変だったと思います。妻はこの合宿の影の功労者です。ありがとう!!おかげでバーベキュー大会は非常に盛り上がりました。野外でわーわー言いながら肉や野菜を焼くのはとても楽しかったです。ラストのコーディングタイムバーベキューが終わったら、またまたコーディングの時間です。コーディングの時間はいよいよこれでおしまいです。このあとの成果発表会に向けて、みんなラストスパートをかけます。うまくいかないところがあれば、他のメンバーに相談したりして解決していきます。成果発表会16時でコーディングタイムは終了です。ここからはこの2日間の開発の成果を発表していきます。成果発表会とコードレビューをセットにして、もっと時間を使う予定だったのですが、「もっとコードを書きたい!!」というメンバーが多かったので、コーディングの時間を増やしました。代わりにコードレビューの時間を削り、基本的に自分の作ったプログラムの動きを見てもらうだけの時間にしました。毎月やってる普通のもくもく会だと、時間がなくて非常に限られた部分しか作れなかったりしますが(ログイン画面だけとか)、さすがに丸2日あるとプログラムとして全体的な形が見える(データの登録や表示など、一通りの操作ができる)ものが多かったです。楽しかった開発合宿もこれにて終了です。研修室を元通りに片付けて、研修センターをあとにしました。あっという間の2日間でした。合わせて一人9500円でした。意外とリーズナブルだと思ってるんですが、いかがでしょうか?なお、お酒を飲む人は各自で別途購入してもらっています。乗馬代も利用したメンバーだけで別途支払っています。僕が作ったプログラムところで、この合宿で僕が作ったのはDossier(ドシエ)というgemをもっと便利に使うためのサンプルプログラムです。DossierはRails上でSQLから簡単にレポートを作成できるgemです。凝った集計レポートの作成はSQLの得意分野なので、ActiveRecordよりもSQLで直接書いてしまった方が速いです。Dossierを使うとSQLの実行結果をそのまま画面に表示できたり、CSVに出力したりできます。パラメータを追加してwhere句の条件を動的に変更したりすることもできます。このようにSQLが得意な人にとってDossierはとても便利なgemなのですが、レポートごとにRubyのクラスを定義しなければいけないのが難点です。レポートを追加したり、SQLを変更したりするたびにソースコードを変更しなければいけません。endendそこで、レポートのSQLやパラメータをクラスの中で定義するのではなく、データベースに保存してレポートを簡単にCRUDできるようにしたいと思いました。これが今回作ったサンプルプログラムの開発の動機です。サンプルプログラムの動きはこんな感じ最終的にはgemにして簡単に使えるようにしたいのですが、とりあえず今回は技術調査用にサンプルプログラムを開発してみました。下の例ではユーザーの生まれた年ごとにユーザー数をカウントするレポートを作成しています。年収を検索条件として指定できるようにしています。このように気軽にレポートを追加したり変更したりすることができれば、サイト運営者なら誰でも知りたがる月ごとの売上や新規ユーザー数の変化をサクサクとレポート化することができるはずです。今回作成したサンプルプログラムのソースコードはGitHubに置いています。気になる方は参考にしてみてください。gem.合宿中の進捗や今後の展望など1日目はDossierのコードリーディングでほとんど終わってしまい、サンプルプログラムを書き始めたのは2日目からでした。見た目はScaffold丸出しな感じでちょっとイケてないですが、一応SQLやパラメータをCRUDして動的にレポートを作れるようにはなりました。実はこの「簡単にレポートがCRUDできるプログラム」は前職で使っていたWindowsアプリケーションをお手本にしています。そのアプリケーションは内製ツールだったのでもう触ることができないのですが、かなり便利だったので同じようなアプリケーションを作ってみたいな~とは前々から考えていました。今後のもくもく会や空いた時間でこのプログラムをどんどん発展していけたらと思っています。神戸.rbで初めて開催したRuby開発合宿の様子を紹介してみました。毎月やっている普段の勉強会もそれはそれで楽しいのですが、合宿はそれ以上に楽しかったです。メンバーがたくさんいたので、コーディングの最中にも質疑応答が活発に発生していい感じでした。やりたいことにじっくり取り組めるという時間も最近あまりなかったので、個人的にも貴重な2日間となりました。乗馬やバーベキューなど、ちょっと特別なイベントを挟むと、「非日常感」がより高まってテンションが上がります。参加したメンバーもみんな楽しそうにしていたので、開催して良かったな~と思いました。神戸.rbのメンバーにも本当に感謝です。今後も年一回ぐらいはこういう合宿を開催したいですね。勉強会を主催している方で合宿はまだやったことがないという方は、一度やってみるときっと面白いはずです。神戸.rbは西脇~神戸近辺で活動するRubyコミュニティです。毎月1回ぐらいのペースで、Rubyに関する勉強会を開いています。参加者全員が自分の手と頭を使ってコードを書き、それをみんなでレビューする、というのを勉強会の基本スタイルとしています。Ruby初心者の方や初めて参加する方でも大歓迎ですので、興味のある方は気軽に参加してください。Doorkeeperのコミュニティページでメンバー登録してもらうと、勉強会の開催通知を受け取ることができます。神戸.rbのFacebookページもあります。「いいね!」してもらうと、コミュニティに関する最新情報をキャッチすることができます。Facebookあわせて読みたい最近の活動内容をまとめたり、1年間勉強会をやって感じたことなどをまとめたエントリです。興味のある方はこちらもどうぞ。はてなブログPro株式会社ソニックガーデンで働くRubyプログラマ。2017年11月に「プロを目指す人のためのRuby入門」を出版。blog)はてなブログをはじめよう!JunichiItoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。