RubyKaigi2011(二日目)に参加してきた

今日も午後から参加してきた。@a_matsudaさん、@yharaさんの話が聞けなくて、寝坊してしまったことを激しく後悔している。

5 years know-how of RSpec driven Rails app. development. / @moro

最近のrspecやfixture-replacementを使ったテストの書き方のノウハウ。 fixture-replacementはFabricationを使ってるみたい。

寝坊して最後の5分しか見られなかったけど、早くもスライドUstが公開されているのでそちらをチェックしよう。

  • shared_context
  • fixtureはマスタ、fixture_replacementはリソース、beforeはイベントが向いてる
    • 適宜使い分けるといい

Rails3レシピブック買いました!

Efficient JavaScript integration testing with Ruby and V8 engine. / -Chris Kowalik

V8エンジンをRubyから呼び出してJavascriptのIntegrational Testをしようという話。

肝心のMustangとMikeの位置関係が理解しきれなかった。CとC++の混在してるMustangじゃなくてC++で統一されたMikeを使おうよ、って話でいいのかな。あとで別の人のレポートを読もう。

  • selenium時間かかりすぎ
  • selenium,watir,phantom 遅い
  • phantomはただのwebkitラッパーで、遅いことにかわりない
  • ヘッドレス
    • HtmlUnit(Java)
      • いち押し
      • 設定が面倒くさい
    • Zombie
    • EnvJS
  • 欲しいのは
    • 速さ
    • javascript support
    • 使いやすいAPI
    • ポータビリティ
  • Mustang - V8 in Ruby
    • nu7hatch/mustang
    • もとはrubyracer
    • スクラッチから設計・実装された
    • パフォーマンス重視
  • V8素敵
    • 世代GC
    • メモリモデルが優れてる
    • 暗黙クラス機能(?
    • インラインキャッシュ
    • ネイティブコードの生成
  • Mike
    • MustangはC/C/C++で書かれてる
      • 全部C++で書けばいいのに
    • https://github.com/nu7hatch/mike
    • 複数ウィンドウのサポート
    • フレームのサポート
    • ユーザの操作のサポート
      • クリック
      • フォーム入力
    • Javascriptの実行
    • アラート・ポップアップ
  • Q&A

Advancing Net::HTTP / @wycats

net/httpは凄くいいライブラリだけど、ほんのちょっと機能が足りなかったのでnet2/httpとしてフォークしたよ、ついでにnet/reactorってのを書いたよ、っていう話だと思う。

IO周りが苦手なので全然ついていけなかった。

  • net/http
    • ブロックが多い
      • socketやレスポンスのリリースに使うからそうなってる
    • rackでリクエストとレスポンスに別のスレッドが必要になった
  • net2/httpにフォークした
    • ブロックの有無の分岐
  • よくわからん!

!RubyKaigi

時間が空いたので、3階で行われてた!RubyKaigi(not RubyKaigi)をチラ見してきた。

  • RubyKaigi会場にはmac多すぎて非macな私は孤独を感じてる! ** macは筐体のデザインが統一されているのでいっぱいいるように見える

実際Mac使ってる人多いよなぁ。Windows持ってきてる人は手元でどうやって作業しているんだろう?(@yuguiさんも「動いたらいいな」と思ってる)Cygwin

個人的にはpowとか出てきちゃったのでなかなかmacからほかに移れない。でもLinuxもちゃんと勉強しなきゃだよなぁ…。

The Gate / @kakutani

Dave Thomasの基調講演の代理だったらしい。あまりメモを取れなかった。

今振り返ったら、昨日の@ayuminさんの発表ともなんかつながってるんだなぁと思った。 「たのしいRuby」って本が出てる通り、Ruby楽しい。だから仕事でも遊びと別け隔てなくそれをやっていきたい。 でもそれをやるために、「自分じゃない誰かにインスピレーションを与える」必要がある。 で、@ayuminさんの場合はそれが「攻めの人たちにRailsの必要性を説く」ってことだったのかもしれない。 (違ってたらゴメンなさい)

  • 達人プログラマー
    • 10年以上前の本だけど、今読んでも新しい発見がある
  • Pragmatic bookshelfにはいい本がある
  • アジャイルサムライ
  • Rubyが変えるのは会社ではなく人。変わった人が業務や業界を変えて行く。
  • 楽しく仕事をすることが大事
    • 生産性を上げる
    • 誰と仕事をするかが大事
  • 業務と業務外とを分けてたら立ちいかなるんじゃない?
    • 生きることの達人は、仕事と遊び、労働と余暇、心と体、教育と娯楽、愛と宗教の区別を付けない。何をやるにしろ、その道で卓越していることを目指す。仕事か遊びかは周りが決めてくれる。当人に取っては、つねに仕事であり遊びでもあるのだ(要出典)
  • 3つの宿題
    • 自分じゃない誰かにインスピレーションを与える
      • find someone to inspire who's not like you
    • 自分の中に多様性を持つ
      • diversity
    • 前の人が通った轍から降りる
      • 新しい視点を持つ
    • そして楽しみながらやりなさい
  • Yesterday Is History, Tomorrow Is a Mystery, but Today Is a Gift. That Is Why It Is Called the Present.
      * 「カンフー・パンダ」からの一節らしい
    

LT

メモる余裕ナシ!

  • @nagachika
    • 9.2 trunk-commits/day
    • コミット中22%がバグ修正、しかし少なくとも3%が新たなバグを作り出している
  • @_yue_04
  • @pwim
    • 外国人と日本人との壁をなくすために #trbmeetup を主催している
    • とても素晴らしいLTだった!
  • @niku_name
    • gem install myrurema
  • @florere
    • MacRubyで実装されたJamesと会話をする
    • Jamesは寝起きが悪い
  • こんどうようへい
    • Rails3 vs .Net MVC3
    • modernizr
    • .Net MVC3、テストの機能が有料版VisualStudioに依存
  • @ryopeko
    • rubykaigi.orgのソースは永和さん、えにしテックさんの最新の技術トレンドが注ぎ込まれてるのでとても参考になる
    • rubykaigi.com(ちなみにregional.rubykaigi.comも)はgithubベースで管理されてる
  • @stillpedant
  • Eloy Durán & Vincent Isambart
  • @m_seki
    • ERB
  • Joseph Wilk
    • Limited Red
    • Work In Progressを減らす
    • 測定して可視化する