勉強会界隈の情報をウォッチしていると、大都会岡山が熱いらしい。懇親会ではスタジアムみたいなところでLTやったり、なんか楽しそうな噂を耳にした。
で、岡山の勉強会に遊びに行きたいとTwitterでつぶやいたら、@razon さんが OSO2012というイベントを教えてくれた。
http://kokucheese.com/event/index/26302/
和田さんや小飼さんが来られるのか! そしてその人たちにLT見てもらえるのか!! これはもう行くしかないだろ!! と、光の速さで懇親会LTと共に参加を申し込んだ。
岡山クラスタの方は何人か変態アドベントカレンダー に寄稿していただいたりもしたので、一度お会いしたかったし。
和田さんには今までお会いしたことは無かったのだけど、きのこ本を読んで自分も108番目のきのこを書きたい、と思い、ブログを書いたことがある。
http://daiksy.blogspot.jp/2010/12/108.html
このエントリは和田さんにも読んでいただいたらしく、そのご縁でTwitterでフォローしてもらったりしていたので、是非きのこ本にサインをいただきたいと思っていた。
そんなこんなで@irofさんと一緒に@Posauneさんの車に乗せていただき、岡山までやってきた!!
渋滞があって、少し遅れてしまったのだけど、受付で岡山クラスタの方たちとご挨拶。
「粕谷です。Twitterでお世話になってます^^」
「あー。変態アドベントカレンダー創始者だ!!」
「ええ、そうです ///」
「ぼく、Twitterで筆頭変態と呼ばれている者です(笑」
「おお!あの!!!」
という謎の自己紹介を繰り広げ、はやくもテンションが上がる。
会場は岡山県立大学。広い階段上の教室で、学生時代を思い出す。
発表はどれもすごく面白く、岡山のITエンジニアたちの熱さを感じた。
スタッフさんの運営も見事だし、どの発表もクオリティ高いし、すごくいい勉強会だと思う。
個人的にはKinectが面白かった。長らく使っていないWindowsを起動させるときが来たか。。。
休憩時間のサイン会で、和田さんと小飼さんに念願のサインをいただいた。
来て良かった。。。。。本当に。。。。
関西に住んでいて、和田さんと小飼さんの講演を一度に聴ける機会はめったにないので、すごく贅沢な時間を過ごすことができた。
本編終了後は、噂の懇親会である。
会場が元映画館を改造した居酒屋だそうで、スクリーンに向かって階段上に座席が並んでいる座・スタジアムという会場。
ぼくもそこでLTを披露した。わりとウケたけれど、司会の方から「少し笑い要素が少なめでしたね」という手痛い批評。もう一回リベンジしに来る!!!
懇親会では、エンジニアライフのコラムニスト仲間であるひでみさんの会社の社長さんがお越しになっていて、挨拶してくださった。業界狭いなー。
それにしても、初の岡山勉強会はめちゃくちゃ楽しかった。
熱くて、ユーモラスで、楽しくて、すごく雰囲気の良いコミュニティで、全然アウェイな感じが無いステキな勉強会だった。
また遊びに来るお!
当ブログはamazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。
2012年5月13日日曜日
2012年5月4日金曜日
メソッドチェーンなクラスをScalaで書いたらこうなった。
Play2.0でATNDをゴニョゴニョするアプリを作ろうと思い、コードを書いていた。
なるほど。
http://blog.rafaelferreira.net/2008/07/type-safe-builder-pattern-in-scala.html
を参考に書きなおしてみる。
https://gist.github.com/2585850
パラメータをセットする関数が、必要なパラメータのみを書き換えた自身のクラスの新しいインスタンスを返すので、ミュータブルな変数がいらないということか。
うーん。でも、なんか微妙。。。
なるほど! case classのcopyメソッドか! で。書きなおしてみる。
https://gist.github.com/2586213
ちょびっとスッキリした。
まず手始めに、ATND APIを叩くためのクラスを作っていたのだが、いかんせんパラメータが多い。
検索の関数が大量の引数を受け取るというのはあまりにも不細工だ。
そこでふと、Effective Javaの第2章 項目2 を思い出した。
メソッドチェーンな感じでパラメータを受け取ればいいんだなと。
で、書いてみた。
なるほど。できた。
しかし、ミュータブルな変数多すぎ。。。。
Twitterでいろいろ悩んでいると、こんなアドバイスが。
@daiksy @dproject21 割り込みですいませんが、Type Safe Builder Pattern blog.rafaelferreira.net/2008/07/type-s… とか(の応用でも)使えたりしないですかね?
— Kota Mizushimaさん (@kmizu) 5月 3, 2012
なるほど。
http://blog.rafaelferreira.net/2008/07/type-safe-builder-pattern-in-scala.html
を参考に書きなおしてみる。
https://gist.github.com/2585850
パラメータをセットする関数が、必要なパラメータのみを書き換えた自身のクラスの新しいインスタンスを返すので、ミュータブルな変数がいらないということか。
うーん。でも、なんか微妙。。。
.@daiksy 参照先のURLはたしかScala2.8以前で、まだcase classのcopyがなかったからだと思いますけど、今だったらだったらcopyメソッド使ったほうが短く書ける気が
— Kenji Yoshidaさん (@xuwei_k) 5月 3, 2012
なるほど! case classのcopyメソッドか! で。書きなおしてみる。
https://gist.github.com/2586213
ちょびっとスッキリした。