2012年2月26日日曜日

勉強会って怖くないよってお話をしてきた #study4bg

エンジニアライフのコラムニスト仲間であるあずKさんが主催されている勉強会、「勉強会初心者のための勉強会 #study4bg」にゲストスピーカーとして呼ばれたので行ってきた。

ATND
http://atnd.org/events/25214
公式サイト
https://sites.google.com/site/study4bg/home

会場はエンジニアライフでお世話になっているアイティメディアさんの会議室。
ここは2010年の9月に、エンジニアライフのオフ会でぼくがオフ会デビューをした思い出の場所である。その後の勉強会などの社外活動にのめり込むきっかけとなった会だったので、そういう場所で1年半後に、今度はぼくが勉強会初心者の皆さんに向けてお話をするということで、少し感慨深かった。

勉強会ではこういうお話をさせてもらった。


Ustはこちら

Togetterまとめ
http://togetter.com/li/263403

ゆかりんのーとのまとめ
https://yukar.in/note/ckFoD9

参加者の方のブログ or コラム
・するめご飯日記
http://show-surumegohan.blogspot.com/2012/02/blog-post_25.html
・ノート
http://mocha-cocoa.blogspot.com/2012/02/study4bg-2012.html
・zakiharaの日記
http://d.hatena.ne.jp/zakihaya/20120226/1330229570
・わはー↑
http://ermellino.org/design/2012/02/study4bg/
・It's Party Time!
http://el.jibun.atmarkit.co.jp/azk/2012/02/--2012---8414.html

30分のセッションということで難しかったが、皆さん真剣にお話を聴いてくださった。
笑いもそこそことれたし。

セッション後はみんなでLTの練習ということで、2分で自己紹介をするというワークショップを実施。
LTのお手本ということで、ゆうこりんLTを披露してきた。

今回、本当に勉強会が初参加、という方が何人もいらして、懇親会などで「来てよかったです!」と言っていただけたり、本当にやってよかったと思う。

懇親会でも話題になったが、最近はITだけでなく、法務の世界でLTの文化がはじまったりと勉強会文化の裾野が拡がっているようである。

ぼくも「自称勉強会エバンジェリスト」的な感じでそういう流れに関わっていけたらな、と思う。

今回の機会を与えてくださったすべてのみなさんに感謝。どうもありがとうございました。

2012年2月22日水曜日

Play 2.0-RC2 のSpecs2によるテストで、InMemoryDatabaseを参照する方法について

Play2.0での開発において、DBはサーバ上のOracleやMySQLなどに接続しているけれど、Modelのテストなどはサーバのデータに影響を与えたくないのでIn Memory Databaseに接続したい、という要望があるかと思います。

今日、それについて少し調べていたので、メモがてらまとめます。

Play2.0でテストを実装する場合、標準でSpecs2を使うかと思いますが、その場合にIn Memory Databaseに接続する際は、下記の記述をします。


import org.specs2.mutable._

class TestSample extends Specification {
      "connect InMemoryDatabase" in {
          running(FakeApplication(additionalConfiguration = inMemoryDatabase())) {
               1 must beEqualTo(1)
         }
      }
}
ここでのポイントは
additionalConfiguration = inMemoryDatabase()
です。

additionalConfigurationは、application.configから読み取った値を上書きしたり追記したりします。

ここで、Play2.0のinMemoryDatabaseの実装を見てみましょう。


 def inMemoryDatabase(name: String = "default"): Map[String, String] = {
     Map(
         ("db." + name + ".driver") -> "org.h2.Driver",
         ("db." + name + ".url") -> 
             ("jdbc:h2:mem:play-test-" + scala.util.Random.nextInt)
     )
 }
このように引数なしでinMemoryDatabaseを呼ぶことで、additionalConfigurationに対して"db.default.driver"と"db.default.url"の値をMapとして渡す形になり、テスト時のDBの参照先がIn Memory Databaseになるというわけです。

2012年2月20日月曜日

みんなで鍋食べて、ついでにLTとかしてきた。

今日は鍋食べてきました! 
http://atnd.org/events/24580

で、なんかみんなお店の予約時間の5時間も前に集まったもんだから、
焼肉とか忘年会とかの例によってついでに発表とかしてきました。

TDDのお話とか、開発のマネージメントについてのお話とか、Seleniumのお話とか、強いられてる話とか、QuickJunitとか、Spockとか、どれも楽しい話ばかりでした。

まとめ:
http://togetter.com/li/260584

ぼくも発表してきました。


いやー。楽しかったー。

2012年2月13日月曜日

ランニング初心者が2ヶ月ちょっとで10kmマラソンを完走したはなし

今日、神戸で開催された「神戸バレンタインラブラン」というマラソン大会の10kmコースを完走しました。

大阪マラソン、神戸マラソンのクォーターにエントリーしたものの落選し、せっかくなので一回くらい走りたいと思いエントリしたのが去年のこと。

それまで、まったく走っていなかったわけですが、2ヶ月ちょっとのトレーニングで、わりと余裕をもって10kmを完走できるくらいになりました。

最初は3km走っただけでゼエゼエいうし、足は死ぬほど痛いし、10kmなんて途方もないように感じていたのですが、継続というのは偉大なもので、たぶんペースさえ守れば今なら10km以上の距離も走れるような気がします。

下記の図が、ぼくが決意してから、今日の本番を含めた全ランニングの記録です。

回数にして22回、総距離は約130kmです。

だいたい週に1-2回のペースで、途中少しサボりながらも徐々に走る距離を増やしていき、10kmに到達した感じです。

当然人によって個人差はあるでしょうが、10kmくらいなら健康な人ならこのくらいのトレーニングで走れるようになると思います。たぶんですけど、その気になれば20kmいけるんじゃないでしょうか(笑

マラソンは、全力で走ったり、瞬発力を競うスポーツではなく、いかに自分のペースを一定に、長時間保つか、というスポーツです。

継続によって自分の能力が上がり、かつそれを持続するという観点で、肉体的な部分だけでなく、精神的な面でも得るものは大きいです。
途方もない目標でも、続けていればやれるようになる、という実感を得られた事実は、ぼくの自己啓発に対する考え方にも良い影響を与えてくれました。

最終的にはハーフマラソンを一回走って、あとは仮装して10km走る感じの大会のにぎやかしランナーあたりに転身しようかと考えています。