2010/12/07  |  Written by  |  under Blog


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

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

永和の文化

  • テストを書くと言う文化がある
  • in World Conference
    • Ruby を使うとどんどん書ける
    • Ruby を使うとどんどん書ける
      • 書けるが不安になるので、テストを書く
  • metric_fu
    • 静的解析ツールを一度に実行してくれる
  • のレイヤーごとに使っているツール
    • mock/stub
      • stub -> RSpec の stub
      • mock -> RSpec の should_receive
      • rr
      • webmock
        • stub な Web API 呼び出し
    • fixture replacement
      • factory_girl
      • Machinist
    • intergration test
      • Capybara
        • Selenium Webdriver
    • 動かなにテストを放置しない
      • Hudson による CI
        • 完全テストは CI にまかせている
      • parallel_test
    • バグを再現するテストを書いてから直す
      • テストの実行が遅いのをなんとかする
      • Spork
    • DRY
      • 多段ネストを止める
      • Custom Matchers を使う

私的まとめ

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

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

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

私的まとめ

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

Rubyの未来 未来のRuby by matz

  • 1993
    • Ruby 生誕
    • 利用者 1人
  • 1995
    • fj.sources で公開
  • 2010
    • TIOBEで10位
  • 「いまだに職業としてチームプログラミングの経験がない」
  • 1993
    • 悩めるプログラマ
    • もっと光を
      • List/Smalltalk/Perl のパワー
    • “光あれ”
      • そこに良いものがあるならば、それを届けよう (自分に)
      • なければ自分で作ろう
  • Ruby が届けた光
    • オブジェクト指向
    • エンコーディング
    • ネットワーク
      • IPv6 とか
    • Webプログランミング
      • メタプログラミング
      • モンキーパッチング
    • TDD
      • DSL/BDD
  • 世界を変えよう
    • 自分を変えよう
    • 世界がそれについてくる
      • それが本当に良いものならば
  • 未来のRuby
    • Ruby 2.0
      • Trais/Refinement/Method Combination/Keyword Arguments
  • Rubyの未来
    • HPC
      • 生産性/オブジェクト指向を届ける
    • 組み込み
      • 環境の制約が強い
      • RiteVM
        • LuaっぽいVM
        • Rubyのサブセット
        • インクリメンタルGC
        • 残念なこと
          • 事業の終わりが見える頃までオープンソースになりません
          • 中途からオフィシャルに参加する方法がありません
        • すばらしいこと
          • HPC/組み込みに光が届く
    • いつも人々に届ける「光」であり続ける
    • 人々が「光」を届けるよう動機づける

質疑応答

  • Module はどこから?
    • lisp の mix-in (flavor)
  • Ruby をセールスする良い方法は?
    • 人は実績を見て判断するからそれか、マーケティングが得意な人(DHHとか)を見つける
      • DHHは論争を恐れない(炎上しているところにガソリン持って飛び込んでいく)
  • 北海道の印象は?
    • 体重的に危険な場所
  • Ruby 2.0 features は?
    • trunk で
  • Module を名前空間として使うことは考えていた?
    • わりと初期のころからそう思ってた
  • HPCのは論文が出ると思うが、無料で読めるようにできる?が
    • 相談します

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

  • たのしいRuby
  • 日本Rubyの会 理事
  • ブロックをキーにして、Rubyの楽しさや良さについて
    • 構造を複雑にせずに、柔軟性をあたえられる
    • YAGNI(You Ain’t Gonna Need It)
      • どうせ必要ないって
  • 変化を抱擁する
    • SOLID Principle
    • Open-Closed Principle in オブジェクト倶楽部
    • 変化を受け入れられるようにしておくことが重要
  • 道具を知ること
    • 道具を知り道具を選ぶこと
  • 読めると分かるは違う
    • 分かるコード -> Why がわかる
    • 良いコード -> わかって使える、修正できる

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

  • Ruby逆引きレシピ のAmazon レビューを書いてくれる人募集
  • ペアプログラミング導入の経緯など
  • 悩み
    • 技術者間のスキル差が埋まらない
    • 新卒と中途と
      • キャリアパスが見えにくい
      • 時間が解決してくれる?
        • してくれない
    • デスクワークな仕事は仕事っぷりが見えない
      • 見えないからこそ、判断基準がないため、新人さんのキャリアパスや、程度感がわからない
  • ペアプロの効果
    • 考える部分が加速する
      • 普通のプログラミングでのボトルネックは考えること
    • ものすごい集中と良い緊張感
    • コーディングとコードレビューと教育と引き継ぎを一気に
    • 動いたという感動を共有できる
    • 細かいところまで丸みえになる
  • GNU screen / readline などのライブラリなど使う
  • まとめ
    • ペアプロしましょう!
  • 環境は?
    • 環境はドライバー依存
  • ペアプロの難しさ
    • 導入前にはあったが、いまのところは大丈夫
  • 技術力の差は埋まったか?
    • 結構埋まった。しかも仲良くなった。
  • ペアプロしたときの技術力ある人のパフォーマンス低下は?
    • 総合的に見たときには、仕方ない
  • ずっとやってる?
    • 午前と午後に2時間だけやってる
  • ベテラン同士のペアプロは?
    • お互いの刺激になってよい
  • 人月単価とか工数見積りは?
    • コストとの問題は起きていない

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

  • 妹背牛カーリング協会 強化委員
  • 02で全てをかっさらった、あの人が帰ってきた
  • Geek でも Suits でもない人達のためのUI
    • Markdown + 独自拡張
  • あったらいいなこんなソフト
    • 試合記録どか動画記録込み
      • 日本製のものがない
  • カーリングの石に加速度センサつけて、データを取るといいかも
    • ダメな投擲のときにアラームがあると
  • カーリングをやるのにいくらぐらいかかる?
    • 石に200万円ぐらい
  • 主要なプロダクトは米

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

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

  • マイペースにやりたいがスライドがが
  • コードレビューの前に設計資料を見る
    • rspec は設計資料とは見ない
  • 具体的に文章として書かれているかどうか
    • 機能の紹介やターゲットの記述など
  • 複雑なところに図を書いているかどうか
    • Class/Object
    • ベン図意外といい
    • URL設計がコードの外でされているかどうか
      • コード書くまえに Wiki に書く
      • 最初に書く
      • 目で見て美しいかどうか重要
    • RESTful I/F
      • CRUD
      • “みなさんもっと少女マンガを読まないといけないと思います”
      • ガラスの仮面を読んで REST 脳に
        • 4つの動詞だけで会話できるようになるために
      • 本を借りる
        • 「本を借りること」を作る、と言う考えかた
  • filters on controller
    • 多すぎても少なすぎてもダメ
    • filter には前提条件
    • :except, :only はどっちを使う?
      • :only のみを使う
      • 指定されて「ない」ものは把握しづらい
      • :except だと追加で実装するときにわかりづらい
  • private/protected/public
  • 例外処理
    • Javaから来るとやりすぎる
  • パラメータの加工とか
    • accessor でやれということ
  • transactions
    • コントローラの中で使うことはないはず
    • それコールバックで
  • controller の継承
    • アクション共有は難易度が高い
    • Mix-in とか partial で
  • attr_protected / attr_accessible
    • 前者が保護する、後者が指定した方を通す
    • attr_protected を使う方がいい
  • save/save!
    • save で false を見ないのなら save! で例外出す方がいい
  • validation はまたの機械に
  • routes.rb
    • コントローラ別にまとめよう
  • コメント
    • コードが不自然なところに理由を書く
  • 英語を入れるのは、世界と繋っているということを考えて
  • future
    • 未来に制約を残さない
    • あとから来た人が足を取られないようにしよう

私的まとめ

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

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

  • 国内外に煽るだけ煽ってしまった感じがある
  • 2010/06/02 株式会社達人出版会
  • オーム社よりも早かった
  • これまでの「征義」の話をしよう
    • 個人的すぎるかもしれないので構成変えました
  • 達人出版会のサービス
    • 著者に原稿を書いてもらい、編集・組版して出版する
      • EPUB/PDF で
    • 近代的な書籍制作環境の構築
  • 執筆支援環境
    • Redmine + git
      • gitosis と Redmine を連携できるプラグインがある
  • 組版システム
    • ReVIEW

There Is No Spoon:Revisited by @kakutani さん

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

クロージング

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

懇親会

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

二次会

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

五丈源

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

まとめ

  • いろいろと会場や懇親会のことを伝えたいんだけど、やっぱり参加しないことにはこの雰囲気や熱意は伝わならないのではないかなと思う。この気持ちを味わいたいのなら、是非とも地域Ruby会議に、特に地方のは行くべき。そして懇親会で話をすべき。そうすると自分が何をしたかったのか、何をすべきかとかがわかるかもしれないと思う。少なくとも私はわかったので、これからも参加し続けるつもり。次は西側かな。
  • 二晩ぐらい経ってみて、「一度終わってみるべき10の理由」的なのが思い浮んだが、もうちょい練れるまで表には出さないことにする。
  • 二次会での「月曜から砂漠に戻るんですよ、みんな」的な話が印象に残ったな。それを打破するための RailsDevCon だったりするので、もうちょい頑張りたい。
  • 滞在ホテルがえにしテックの最寄りだったらしい。エアを名乗ってもいいだろうか。
 
このエントリーを含むはてなブックマークはてなブックマーク - 札幌Ruby会議03に参加してきた この記事をクリップ!Livedoorクリップ - 札幌Ruby会議03に参加してきた Googleブックマークに追加 Digg This
Tags: , , ,
2010/08/31  |  Written by  |  under Blog


2010 3日目

地域 会議 Kaigi

  • Commit するまえに Conflict 解消しようぜ
  • チェックイン
    • かくたにさん
    • 島田さん (Sapporo)
    • (島根の人)
    • 小川
    • 河野さん
    • 三浦さん
    • 武田さん
    • 小柴さん
    • 高井さん
    • 川上さん (松江の人)
    • BECK さん (東京の人)
    • 米沢さん (toRuby)
    • okkez (関西の人)
    • 松本 (名古屋の人)
    • かたぎりさん (名古屋の人)
    • 片平さん (仙台の人)
    • 永井さん (Rubyist 九州の人)
    • 藤岡さん (福島の人)
    • ひがきさん (関西の人)
    • てらしまさん (鳥取の人)
    • 池沢さん (toRuby)
    • せきさん (toRuby)
  • RubyKaigi 歴 2010 のふりかえり
    • 名古屋01
      • リソース不足で告知が遅れて、諸処にご迷惑をおかけした。
        • 作業者がいない
      • 話者がいない
      • 80人参加
      • 懇親会が濃かった
    • 東京03
      • 完璧な運営
      • 半年前から月一でMTG
      • 事前議題 -> 議論 -> TODO といういいサイクル
      • クオリティを上げすぎないように
      • 懇親会ができなかった
        • ドタキャンに備えて開催できなかった
      • お金の問題
        • スタッフ有料イベント
        • 儲からないのに誰かが負担しなければならない
          • えにしテックが札幌Ruby会議に投資するのはどうなのか
      • 「俺のやりたいことをやらせろ」ということで高井さんが頑張った
        • The RubyKaigi ではないことをやりたかった
          • Talker や Workshop など
    • Tokyu 01
    • 札幌 02
      • 懇親会はしなかった
        • 途中で時間を設けて、お酒のない懇親会をやった
      • お金の問題
        • やりたいと思ってる人がお金を出している状態
      • 01 よりも規模を大きくしてみた。手にのる範囲で。
        • 期待と思う人が増えれば話者に困ることはないんじゃないか
      • タレント不足
        • 札幌の人たちが話すのをメインに据えた
    • 関西 02
      • KOF にのっかって
        • 会場の心配はしなくてもいいがスケジュールを握られる
        • 考えるまもなく進めなくてはいけない
          • 他とは制約事項が違う
      • 毎月やる勉強会でお金を貯めて講師を呼ぶ
        • okkez さんが RubyKaigi で営業してその人を呼ぶ
        • 今年は福井さんがやっている
      • リソースが足りない
        • スタッフが KOF の参加者なのでいろいろ大変
    • 松江 02
      • 01 が島根大学の野田先生が主導で
      • 02 は Matsue.rb の高尾さんが主催で
        • 場所は行政が確保している
        • 地元の発表がしっかりしていて、80人ぐらいの参加者が
        • 高尾さんが一人でやっている
    • 仙台 02
      • いっぱいいっぱい
      • 片平さんが過囲え込みすぎていて、周りの人がいろいろ助けてくれた
      • ネタがない
        • 01 は東北の Rubyist を呼んだ
        • 02 は田舎親方 Ruby 会議をやった
      • 有料にした
        • 発表する人も
      • 01 は OSC に乗っかってみたが、いろいろ大変だったので、次回はやらないでおこうと思った
    • (できなかった) 九州 02
      • 01 は行政との共催
        • RBC から当日のヘルプがもらえなかった
        • 200 人規模
      • 02 は軽くやろうと思ってた
        • Rubyist 九州の年齢層が上がった
          • コミュニティ世代の問題
          • 代表の意気込みが薄れているところがある
        • 地理的に集まらない
          • スタッフになる人がいない
        • コミュニティの問題
          • 永井さんが代表でもないので判断できない
          • 入りづらい雰囲気があった
          • 運営でいろいろ問題や悩みがあるので、地域 Ruby 会議をすることができない感じ
          • 同じ地域にコミュニティが2つある
          • 長い歴史があるということが問題になっている
    • とちぎ 02
      • もともと toRuby 拡大版
    • Tokyu 02
      • スタッフを 10 人に
      • 合計 20k ですんだ
      • ゆるくやった
  • 参加者でいくと凄くいい
  • 中央から地域にという流れは必ず来るという問題意識
    • 社会を回すためのコミュニティとして Ruby コミュニティが成長していく
  • 来年まで地域 Ruby 会議 Kaigi ができないのが辛い
    • 複数地域での共催
      • タレント不足の問題を解消したい
      • 地域 Ruby 会議をやる以上の問題があるので、先に延ばしたい (かくたに)
  • 地域にタレントはいる
  • 東京 03 には Workshop がいる
  • “Ruby 会議が町にやってきた!”
    • Ruby 会議は呼び込むための名前として使ってもらいたい
    • ビッグネームもそういう風に使ってもらいたい
    • 仙台は matz でも人は来ない
  • メリハリをつける
    • 札幌では勉強会はだらだら、会議はしっかり
  • 勉強会の運営や開催方法について
  • 他の地域の Ruby 会議に参加して欲しい
  • こういう話をしたい
  • RubyKaigi 歴 2011 にむけて
    • 関西03
      • 11/5, 11/6
    • 札幌03
      • 12/4
    • 松江.rb
      • 1/末 〜 2/頭
    • Tokyu
      • 1/末
    • 名古屋
      • 1/末

Termtter Kaigi

  • ちょっとうるさい人がいる
    • 別にいいが
  • Termtter の紹介から
    • なぜか の紹介が

There is No Spoon

  • かくたにさん
  • Asakusa.rb のインターフォン係
  • Ruby has “Quality”
  • 主観と客観の前の、直感的に感じるもの #=> クオリティ
  • Ruby is the Red Pill.
  • 少数精鋭でやるほうが良い
  • 人とコンピュータの間に価値を置いていくのが Ruby
  • コミュニティ
    • Regional Ruby Kaigi
    • コミュニティはツリーではない
    • 大事なのは個人が活動を続けるというプロセス
    • いまできることから始めてみる
  • かくたにさんの気持ちを、みんなに伝えるためのプレゼンだったのではないでしょうか

基調講演

  • The PASSIONATE PROGRAMER
  • Chad Fawler
  • これもあとで別に感想を書こう
 
このエントリーを含むはてなブックマークはてなブックマーク - RubyKaigi 2010 3rd day この記事をクリップ!Livedoorクリップ - RubyKaigi 2010 3rd day Googleブックマークに追加 Digg This
Tags: , , , ,
2010/05/21  |  Written by  |  under Blog

rvmを使っていると、「いま何のRubyだっけ」と思うことがあったので、プロンプトに表示するようにしてみました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
autoload -Uz vcs_info
zstyle ':vcs_info:*' formats '(%s)-[%b]'
zstyle ':vcs_info:*' actionformats '(%s)-[%b|%a]'
precmd () {
    psvar=()

    # for vcs_info
    LANG=en_US.UTF-8 vcs_info
    [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_"

    # for rvm
    [[ -n "$rvm_ruby_string" ]] && psvar[2]="$rvm_ruby_string"

    # for gemset
    ind=$(expr index $GEM_HOME $rvm_gemset_separator)
    if [ $ind -ne 0 ]; then
        length="$(expr length $GEM_HOME)"
        sub_length=`expr $length - $ind + 1`
        gem_spec=`expr substr $GEM_HOME $ind $sub_length`
        [[ -n "$psvar[2]" ]] && psvar[2]="$psvar[2]$gem_spec"
    fi
}
VCS_PROMPT="%1(v|%F{green} %1v%f|)"
RUBY_PROMPT="%2(v| %U%B%F{magenta}(%2v)%f%b%u|)"
PROMPT=$'%{\e[32m%}$LOGNAME@${WINDOW:+"[$WINDOW]"}%B:%b%{\e[m%}[%~]$RUBY_PROMPT$VCS_PROMPT\n%% '

上記のように設定すると下の画像のように表示されます。これでいろいろ迷うことが無くなりました。

追記

rvm-promptというのがあるそうで、それを使えばいろいろ表示できるようになるようです。でもまあせっかくやってみたので、gemsetも表示できるようにしてみました。

 
このエントリーを含むはてなブックマークはてなブックマーク - zshのプロンプトにrvmのRubyを表示する この記事をクリップ!Livedoorクリップ - zshのプロンプトにrvmのRubyを表示する Googleブックマークに追加 Digg This
Tags: , ,

まあたいしたことではなく、単にシェルスクリプトを使うだけです。例えばTokyoCabine Ruby APIだと、

1
2
3
% ruby extconf.rb
% make
% sudo make install

などとするわけですが、これを下記のように実行すれば、それぞれのRubyにインストールされます。

1
2
3
for version in ree ree-1.8.6 1.8.6 1.8.7 1.9.1; \
  do rvm use $version; make clean; ruby extconf.rb; make; make install; \
done
 
このエントリーを含むはてなブックマークはてなブックマーク - rvmで拡張ライブラリを複数のRubyにインストールする方法 この記事をクリップ!Livedoorクリップ - rvmで拡張ライブラリを複数のRubyにインストールする方法 Googleブックマークに追加 Digg This
Tags: , , ,