2010-04-08(Thu) [長年日記] [Edit]
2010-04-11(Sun) [長年日記] [Edit]
■1 また自転車の朝練
息子の散髪ついでに(相対的に)遠出。朝、っていってもウォッチメンしてからなので昼前だったけど。隅田川テラスまでいってみたら、行けた。D80の日付の設定が数日レベルで狂っていたことに今ごろ気づいた。
2010-04-12(Mon) [長年日記] [Edit]
■1 (今さら)Snow LeopardをインストールするついでにMacBook ProのHDDを換装しようとしたら00番のプラスドライバーが無かった
以前に白MacBookのHDDを換装したときに★のかたちのドライバーは買ってたんだけど、MacBook Pro本体のフタを空けるための00番のプラスドライバーが無いことに気づく。全部入りっぽいの買っておけばいいだろうと思って、『SANWA SUPPLY TK-014 スライド収納ドライバー』を発注したのが届いた。
SANWA SUPPLY TK-014 スライド収納ドライバー
サンワサプライ
¥ 1,392
このエントリを書くついでに 『MOVIE大戦 2010』のDVDを予約した。
仮面ライダー×仮面ライダーW&ディケイド MOVIE大戦 2010 コレクターズパック [DVD]
TOEI COMPANY,LTD.(TOE)(D)
¥ 3,800
これから買うならBlu-rayなのかなあ、と思わなくもないけれど、プレイヤー無いし。テレビもコンポーネント端子だし。リージョン1のDVDたちはどうなるんだろう……。Blu-rayで買い直すことになるのかなあ、とか思うと腰が重くなっちゃうのでした。
2010-04-13(Tue) [長年日記] [Edit]
■1 第44回Asakusa.rb
前の晩にrubykaigi.org の設計をちょっとやったらすぐ行き詰まったので、ursmとa_matsudaに相談。今日は早退。
2010-04-14(Wed) [長年日記] [Edit]
■1 RubyKaigi2010に関連していま思っていること
……は、Web日記に書くんじゃなくて古式ゆかしくメーリングリストというころに投稿してました。日本Rubyの会MLというメーリングリストがあるのです。
■2 Pivotal TrackerのGetting Startedの翻訳
Web日記じゃないところに書いたものつながりでお知らせ。
必要に迫られて以下をリリースしました:
私たちの役にたったので、他の誰かのお役にも立つといいなと思ってます。Happy Estimating & Planning!
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~
毎日コミュニケーションズ
¥ 3,360
そういえば、『アジャイルな見積りと計画づくり』は4刷が決定したそうです。読んでいただいて、周りに口コミで紹介してくださっている皆さまのおかげです。ありがとうございます。
■3 2年前の動画をいま見てくれた人がいたということとRSpecのMacroについて
2008年の2月の雪がしこたま降っていた札幌で話をしたときの動画を、最近観てくれたことをはてなに書いてくれた方がいて、さらにご自分でいまどきのRSpecの使い方をふまえてリファクタリングしてくれていた。ありがたいことです。Ruby札幌++
そういう意味では、先日id:hyoshiokに呼び出されてお話しした動画とか、「解読」とか言うわりにはたどたどしい限りで、youtubeの分割ファイルのサムネ全部貼ってあるとか晒し者にもされるにしても程があるだろうとも思うんだけど、「未来のいつか」誰かに届くことがあるかもしれないと思う今日この頃。
話を戻して。で、上記のsubjectやnested contextを使ったリファクタリングの書き方で私がいま何かお返しできることがあるかなあ、とぼんやり考えていたところ、たまたまミーティングとミーティングの合間のビミョウな時間ができたのでちょっとやってみた。こういう書き方もできますね。
describe Game, "#score" do include BowlongGameMacro context "すべてガターの場合" do play_game { 20.times { roll_gutter } } score { should == 0 } end ... context "スペアの場合" do play_game do roll_spare roll_on_frame(4, 3) 16.times { roll_gutter } # (10 + 4) + 4 + 3 => 21 end describe "スペアの次の投球で倒したピンがボーナス加算される" do score { should == 21 } end end
これはRSpec界隈ではMacroと呼ばれている手法(たとえば、RailsCastの157: RSpec Matchers and Macros)を、こじらせた感じ。全文はこんな感じ:
さいしょに"Rspec Macro"って聞いたときには「えっ。何それ」って思ったんだけど、説明をみるとModule#includedとObject#extendを使ってるだけでした。
えっと、いまの時点でこれについて議論できるだけの準備が私にはありません。これは素晴しいものだよ諸君今日からみんなこう書くべきだよとか自分でも思ってません。トレードオフだよ、みたいなのもあんまり興味ないです。まずは「単なる成功したプロジェクトと失敗したプロジェクトのお話のリスト」を集めるのが先だなあと思ってます。
いまの時点での自分じしんにとっての収穫は『Growing Object-Oriented Software, guided by Tests』の"Chapter 21: Test Readability"のトピックとのつながりが見えはじめたことーー見えはじめた、というだけでそのの続きはまだ無いんだけど。
『Growing Object-Oriented Software, guided by Tests』は冒頭で紹介してある楽天さんでの講演でも少し言及したけどほんと良い本で、このタイトルだけでライトニングトークやれると思ってる。
どれぐらい良い本かというと、もしも何でも可能な世界で、私がid:t-wadaと一緒に一冊だけ技術書を書いていいと言われて、それを達成できたら(これは可能世界の話ですからね!)、できあがるのはこの本だと思う。そのときのサンプルコードはRubyだね。Steve Freeman とNat Pryceは「よく勉強している」ので、全編とおして私好みのキラーフレーズ満載。"Expect Unexpected Change"、「テストコードにはwhatを、プロダクトコードにはHowを(要旨)」、"Test-driven development combines testing, specification, and design into one holistic activity"。この本を読むことを通じて「TDDとTiDDの違いについて自分なりに整理がついた」のでした。おすすめ。
2010-04-25(Sun) [長年日記] [Edit]
■1 RubyConf.tw でトークをしてきた
(このエントリは7/22に書きました)
RubyConf.twでした。
@ihower には大変お世話になりました。
私のスライドはこれ:
■2 2010年のquick-junit
(このエントリは7/22に書きました)
2000年代も2ケタ目に突入しましたが、私はほんとうにもう何にも手が動いていないのだけれども、kompiroがいろいろやってくれているのでご紹介。
- MacOSX上でQuick JUnitをお使いの皆様へ。日本語クラス名、メソッド名の対応方法
- JUnitの実行結果をGrowlに通知するEclipse Plugin
- JUnitの実行結果をGrowlに通知するEclipse Plugin(2)
- Eclipse3.6ではQuick JUnitのインストールが簡単になったらしいです。
そう、2010年だぜ。もうmasarlさんのことをぜんぜん全く知らない読者がこの日記にもいそうな気がする。アーカイブしてくれている http://www.morijp.com を紹介――しようとしたらつながらない!!
以下2箇所が現在アクセス可能な「まさーるのページ」のアーカイブ:
オブジェクト倶楽部のミラーページは、レイアウトが元のmasarlさんのページと異なるので気にくわないんだけど、手が動かない残念な存在が私なのです。
リンク切れになって悲しい重要文書といえば、村上雅章さんによる「ソフトウェア設計とは何か?」も404 Not Foundなんだよな。こちらもweb.archive.orgが保存してくれていてよかった。
○ kdmsnr [勉強していないw]
○ ursm [いきなりアンチパターン…!!]
○ しばた [この発想はなかった。]