札幌Ruby会議03に参加してきた

Rubyのテスト文化とツール 2010 by @hsbt さん

  • Asakusa.rb & 永和の人
  • 去年と着ているものが同じ
    • 「テストを書かないとRubyistではない!」と言う話し

永和の文化

  • テストを書くと言う文化がある
  • in Ruby World Conference
    • Ruby を使うとどんどん書ける
    • Ruby を使うとどんどん書ける
      • 書けるが不安になるので、テストを書く

  • <li>metric_fu
    
    • 静的解析ツールを一度に実行してくれる

    <li>Rails のレイヤーごとに使っているツール
    
    • mock/stub
      • stub -> RSpec の stub
      • mock -> RSpec の should_receive
      • rr
      • webmock
        • stub な Web API 呼び出し

    • <li>fixture replacement
      
      • factory_girl
      • Machinist

      <li>intergration test
      
      • Capybara
        • Selenium Webdriver

      <li>動かなにテストを放置しない
      
      • Hudson による CI
        • 完全テストは CI にまかせている

      • <li>parallel_test</li>
        

      <li>バグを再現するテストを書いてから直す
      
      • テストの実行が遅いのをなんとかする
      • Spork

      <li>DRY
      
      • 多段ネストを止める
      • Custom Matchers を使う

私的まとめ

  • Hudson による CI は導入してみようかな
  • Custom Matchers を利用することを念頭に置いてみよう

高速な乗除算の実現と性能評価 by @mrkn さん

  • 計算の話し
  • 速さ == ロマン
  • Rational の計算 -> 通分される

私的まとめ

  • あとで直接聞いてみるか

Rubyの未来 未来のRuby by matz

  • 1993
    • Ruby 生誕
    • 利用者 1人

  • <li>1995
    
    • fj.sources で公開

    <li>2010
    
    • TIOBEで10位

    <li>「いまだに職業としてチームプログラミングの経験がない」</li>
    
    <li>1993
    
    • 悩めるプログラマ
    • もっと光を
      • List/Smalltalk/Perl のパワー

    • <li>"光あれ"
      
      • そこに良いものがあるならば、それを届けよう (自分に)
      • なければ自分で作ろう

    <li>Ruby が届けた光
    
    • オブジェクト指向
    • エンコーディング
    • ネットワーク
      • IPv6 とか

    • <li>Webプログランミング
      
      • メタプログラミング
      • モンキーパッチング

      <li>TDD
      
      • DSL/BDD

    <li>世界を変えよう
    
    • 自分を変えよう
    • 世界がそれについてくる
      • それが本当に良いものならば

    <li>未来のRuby
    
    • Ruby 2.0
      • Trais/Refinement/Method Combination/Keyword Arguments

    <li>Rubyの未来
    
    • HPC
      • 生産性/オブジェクト指向を届ける

    • <li>組み込み
      
      • 環境の制約が強い
      • RiteVM
        • LuaっぽいVM
        • Rubyのサブセット
        • インクリメンタルGC
        • 残念なこと
          • 事業の終わりが見える頃までオープンソースになりません
          • 中途からオフィシャルに参加する方法がありません

        • <li>すばらしいこと
          
          • HPC/組み込みに光が届く

      <li>いつも人々に届ける「光」であり続ける</li>
      
      <li>人々が「光」を届けるよう動機づける</li>
      

質疑応答

  • Module はどこから?
    • lisp の mix-in (flavor)

  • <li>Ruby をセールスする良い方法は?
    
    • 人は実績を見て判断するからそれか、マーケティングが得意な人(DHHとか)を見つける
      • DHHは論争を恐れない(炎上しているところにガソリン持って飛び込んでいく)

    <li>北海道の印象は?
    
    • 体重的に危険な場所

    <li>Ruby 2.0 features は?
    
    • trunk で

    <li>Module を名前空間として使うことは考えていた?
    
    • わりと初期のころからそう思ってた

    <li>HPCのは論文が出ると思うが、無料で読めるようにできる?が
    
    • 相談します

Rubyの教えてくれたこと by 島田さん

  • たのしいRuby
  • 日本Rubyの会 理事
  • ブロックをキーにして、Rubyの楽しさや良さについて
    • 構造を複雑にせずに、柔軟性をあたえられる
    • YAGNI(You Ain't Gonna Need It)
      • どうせ必要ないって

  • <li>変化を抱擁する
    
    • SOLID Principle
    • Open-Closed Principle in オブジェクト倶楽部
    • 変化を受け入れられるようにしておくことが重要

    <li>道具を知ること
    
    • 道具を知り道具を選ぶこと

    <li>読めると分かるは違う
    
    • 分かるコード -> Why がわかる
    • 良いコード -> わかって使える、修正できる

北のRails開発現場から’10 by @tmaeda さん

  • Ruby逆引きレシピ のAmazon レビューを書いてくれる人募集
  • ペアプログラミング導入の経緯など
  • 悩み
    • 技術者間のスキル差が埋まらない
    • 新卒と中途と
      • キャリアパスが見えにくい
      • 時間が解決してくれる?
        • してくれない

    • <li>デスクワークな仕事は仕事っぷりが見えない
      
      • 見えないからこそ、判断基準がないため、新人さんのキャリアパスや、程度感がわからない

  • <li>ペアプロの効果
    
    • 考える部分が加速する
      • 普通のプログラミングでのボトルネックは考えること

    • <li>ものすごい集中と良い緊張感</li>
      
      <li>コーディングとコードレビューと教育と引き継ぎを一気に</li>
      
      <li>動いたという感動を共有できる</li>
      
      <li>細かいところまで丸みえになる</li>
      

    <li>GNU screen / readline などのライブラリなど使う</li>
    
    <li>まとめ
    
    • ペアプロしましょう!

    <li>環境は?
    
    • 環境はドライバー依存

    <li>ペアプロの難しさ
    
    • 導入前にはあったが、いまのところは大丈夫

    <li>技術力の差は埋まったか?
    
    • 結構埋まった。しかも仲良くなった。

    <li>ペアプロしたときの技術力ある人のパフォーマンス低下は?
    
    • 総合的に見たときには、仕方ない

    <li>ずっとやってる?
    
    • 午前と午後に2時間だけやってる

    <li>ベテラン同士のペアプロは?
    
    • お互いの刺激になってよい

    <li>人月単価とか工数見積りは?
    
    • コストとの問題は起きていない

(カーリングとRuby)2投目 - Making Ricochet with the Ruby stone into Granites. by はしむかい としかつ(@curler_hashi) さん

  • 妹背牛カーリング協会 強化委員
  • 02で全てをかっさらった、あの人が帰ってきた
  • Geek でも Suits でもない人達のためのUI
    • Markdown + 独自拡張

  • <li>あったらいいなこんなソフト
    
    • 試合記録どか動画記録込み
      • 日本製のものがない

    <li>カーリングの石に加速度センサつけて、データを取るといいかも
    
    • ダメな投擲のときにアラームがあると

    <li>カーリングをやるのにいくらぐらいかかる?
    
    • 石に200万円ぐらい

    <li>主要なプロダクトは米</li>
    

Lightning Talk

RVMについて語るときに僕の語ること

  • "ささだメンバー"

文書検索ラングバ

  • "デバッグ力"

Rails 3.1(仮)

  • Isolated Engine

JRubyによるエンタープライズWeb開発

  • "みなさんエンタープライズな方"

HTMLデザインをまったく崩さない、美しいテンプレートエンジンの作り方 パート2

  • 分解して再構築する感じか

たまにはcgi.rbのことでも話してみる

  • "Passenger上でtdiayがそのまま動く"

Perl loves Ruby

  • "Hokkaido.pm"

Rubyでネイティブスマートフォンアプリ開発

  • Rhodesは一回やってみるべきだな

どこでもRubyといっしょ 〜WindowsMobile携帯にRubyを入れて遊んでみた〜

  • "iPhoneではなく、なぜWindowsMobileを選んだか"

Pusherアプリの作り方

  • "会いに行けるプログラマ"

コンサドーレ札幌の情報収集をrubyでやるには

  • "最終節4-0で勝ちました!"

或るWebサービス開発のこれから - “オープンWebサービス”という妄想 -

  • コードも議論も展望も公開する、"オープンWebサービス"

ご自宅用ツール間同期メカニズム兼ストレージのご提案 by @m_seki さん

  • "プロの無職"
  • toRuby
  • 栃木Ruby会議03 at 2011/02/26
  • dRuby本初刷5周年!
  • Drop
    • Rinda の実用的なライブラリ
    • 似ているものは twitter
    • 時刻をキーとするKVS

  • <li>キーの排他制御は?
    
    • 同じ時刻であれば1単位待って追加する

Railsアプリ開発 野生のカン by 社長(エア的な)

  • マイペースにやりたいがスライドがが
  • コードレビューの前に設計資料を見る
    • rspec は設計資料とは見ない

  • <li>具体的に文章として書かれているかどうか
    
    • 機能の紹介やターゲットの記述など

    <li>複雑なところに図を書いているかどうか
    
    • Class/Object
    • ベン図意外といい
    • URL設計がコードの外でされているかどうか
      • コード書くまえに Wiki に書く
      • 最初に書く
      • 目で見て美しいかどうか重要

    • <li>RESTful I/F
      
      • CRUD
      • "みなさんもっと少女マンガを読まないといけないと思います"
      • ガラスの仮面を読んで REST 脳に
        • 4つの動詞だけで会話できるようになるために

      • <li>本を借りる
        
        • 「本を借りること」を作る、と言う考えかた

    <li>filters on controller
    
    • 多すぎても少なすぎてもダメ
    • filter には前提条件
    • :except, :only はどっちを使う?
      • :only のみを使う
      • 指定されて「ない」ものは把握しづらい
      • :except だと追加で実装するときにわかりづらい

    <li>private/protected/public</li>
    
    <li>例外処理
    
    • Javaから来るとやりすぎる

    <li>パラメータの加工とか
    
    • accessor でやれということ

    <li>transactions
    
    • コントローラの中で使うことはないはず
    • それコールバックで

    <li>controller の継承
    
    • アクション共有は難易度が高い
    • Mix-in とか partial で

    <li>attr_protected / attr_accessible
    
    • 前者が保護する、後者が指定した方を通す
    • attr_protected を使う方がいい

    <li>save/save!
    
    • save で false を見ないのなら save! で例外出す方がいい

    <li>validation はまたの機械に</li>
    
    <li>routes.rb
    
    • コントローラ別にまとめよう

    <li>コメント
    
    • コードが不自然なところに理由を書く

    <li>英語を入れるのは、世界と繋っているということを考えて</li>
    
    <li>future
    
    • 未来に制約を残さない
    • あとから来た人が足を取られないようにしよう

私的まとめ

  • RESTful I/F は勉強になったので、実践してみよう
  • filters には :only を使う
  • ガラスの仮面を読みます
  • attr_protected を使うようにしましょう

私のプロフィール by @takahashim さん

  • 国内外に煽るだけ煽ってしまった感じがある
  • 2010/06/02 株式会社達人出版会
  • オーム社よりも早かった
  • これまでの「征義」の話をしよう
    • 個人的すぎるかもしれないので構成変えました

  • <li>達人出版会のサービス
    
    • 著者に原稿を書いてもらい、編集・組版して出版する
      • EPUB/PDF で

    • <li>近代的な書籍制作環境の構築</li>
      

    <li>執筆支援環境
    
    • Redmine + git
      • gitosis と Redmine を連携できるプラグインがある

    <li>組版システム
    
    • ReVIEW

There Is No Spoon:Revisited by @kakutani さん

  • オーム社の電子出版サイトの制作している
  • もう感極まってしまったので、何も書けなかった。

クロージング

  • 遅れているのでさっさと懇親会へ

懇親会

  • 名古屋のあれがかなりあれであることがわかったので、名古屋Ruby会議に参加することになりました。
  • いろんな人とお話しできたのがよかった。

二次会

  • 同上
  • もうなんか感極まっ(ry

五丈源

  • matz と深夜ラーメンというまれに見る状況に感極ま(ry)

まとめ

  • いろいろと会場や懇親会のことを伝えたいんだけど、やっぱり参加しないことにはこの雰囲気や熱意は伝わならないのではないかなと思う。この気持ちを味わいたいのなら、是非とも地域Ruby会議に、特に地方のは行くべき。そして懇親会で話をすべき。そうすると自分が何をしたかったのか、何をすべきかとかがわかるかもしれないと思う。少なくとも私はわかったので、これからも参加し続けるつもり。次は西側かな。
  • 二晩ぐらい経ってみて、「一度終わってみるべき10の理由」的なのが思い浮んだが、もうちょい練れるまで表には出さないことにする。
  • 二次会での「月曜から砂漠に戻るんですよ、みんな」的な話が印象に残ったな。それを打破するための RailsDevCon だったりするので、もうちょい頑張りたい。
  • 滞在ホテルがえにしテックの最寄りだったらしい。エアを名乗ってもいいだろうか。
 
comments powered by Disqus