2010/12/06

RSpecにおけるdescribe/contextとTDD(未完)

タイトルはいまいちですが、今の私のWeb日記力ではこれが限界。
この記事は、オチも結論もありません。私(と@ursm)がRSpecでテスト駆動開発をする上で感じている違和感をとりあえず読める形にしただけです。

まずは次の2つのテストを見てください。

describe Array do
  describe '#empty?' do
    context 'just initialized' do
      subject { Array.new }
      it { should be_empty }
    end
  end
end

describe Array do
  subject { @array }
  context 'just initialized' do
    before do
      @array = Array.new
    end
    describe '#empty?' do
      it { should be_empty }
    end
  end
end
テストしている内容(itの中)はどちらも同じです。両者で違うのは(ほぼ)describeとcontextの順番だけです。
次に、Railsのコントローラのテストを考えてみましょう。

describe 'HogeController' do
  describe 'GET index' do
    context 'login as Teacher' do
      ...
    end
    context 'login as Student' do
      ...
    end
  end
end
これも同じように、describeとcontextを逆転させると次のようにも書けます。

describe 'HogeController' do
  context 'login as Teacher' do
    describe 'GET index' do
      ...
    end
  end
  context 'login as Student' do
    describe 'GET index' do
      ...
    end
  end
end
ただ、少なくとも普段は下のような書きかたはしません。それは、これから作るのがメソッド(アクション)であり、そのメソッドを検証する観点としてコンテキストがあるからです。

しかし、ある程度開発が進んでくると、今度は既存の機能にコンテキストが追加されるようになってきます。(例えば、最初はロールが「教員」「学生」だけだったのが、途中で「ゲスト」が増えるなど)そうすると、今度はdescribe単位ではなく、context単位でテストを追加したくなります。しかし、それまでのテストはすべてdescribeを上位に書いているので、急にcontextを上位にするわけにもいきません。(モヤモヤ)

最初に書いたように、これに明確な答えがあるわけではありませんし、「こうしたほうがいいのかもしれない」という程度の意見もありません。ただ、今こういうモヤモヤがあって、もしかしたら数ヶ月後、数年後になんらかの答えを見つけられたなら、それが私達の成長の証であることを再確認できるようにここに残しておきます。

===ここから追記===
2010/12/17 Arrayの例でcontextとdescribeが同じ順番になってしまっていたのを修正しました。

2010/11/09

読了「JavaScript: The Good Parts」「Release It! 」

「JavaScript: The Good Parts」は4章の「関数」と付録は必読な感じでした。
大体の場合、何らかのフレームワークを使うはずなので、この本で書かれていることが必要になる場面はそんなに多くないように思います。とはいえ、私のようなJavaScriptアレルギー患者には、よくイライラするところがしっかり説明(弁解)されているので、アレルギー治療にはよく効きそうです。

「Release It!」はよい本ですね。
非常に実践的なノウハウがつまっていて、しかもそれは大規模システムを開発・運用しないとわからないような事ばかりでした。
私の普段の仕事で使えるかというと、ちょっとオーバースペックかなと思いますが、ソフトウェアをリリースして運用することに対しての心構えと、問題が発生したときのアタリの付け方などは非常に参考になりました。

2010/10/21

DNSをVALUE-DOMAINからZerigoにしました

Zerigoはipv6対応のVPS+DNSサービスです。
VPSとDNSは別のサービスになっているようで、それぞれ独立して使えます。
ZerigoのDNSサービスが優れているポイントとしては、以下のようなものがあります。
  • IPv6対応
  • REST API
  • TTLが1分〜
  • AAAA、SRVレコードに対応
国内では中々お目にかかれない充実っぷりです。これが、3ドメイン、合計30ホストまで無料で使えるんだから使ってみるしかありません。

VALUE-DOMAINからの移行は次のようにやりました。
  1. VALUE-DOMAINに登録しているレコードの情報を全部Zerigoに移す
  2. VALUE-DOMAINの「ネームサーバー変更」で「他社提供/自前のネームサーバー」を選択する
  3. ネームサーバとして「(a..e).ns.zerigo.net」を設定する(Zerigoの「nameservers」で確認できます)
  4. dig #{domain} NS をたまにやりながら待つ(Zerigoの「Tools」でも代用できます)
IPv6対応のDNSがなくて困っている人や、自ドメインでJabber使いたい人、DDNSを更新するAPIがダサくて泣きそうな人は試してみてはいかがでしょうか。

2010/10/12

社内勉強会「60分一本勝負」を始めました

※この記事は、10/04に書きたかった記事です。

空前の勉強会ブームも少し落ち着いてきたように見える中、社内勉強会「60分一本勝負」を始めました。
この勉強会のルールは2つだけです。

  • 制限時間は60分
  • 勉強会のために資料は作りません

こんなゆるい勉強会が成り立つのか不安になってしまうような感じです。
とはいえ、興味はあるけど1人だと手を出しにくいようなテーマもあるわけで、そんなときに仲間とチュートリアルの写経でもできたら心強いと思いませんか?

そんなゆるゆる勉強会の初戦の相手は、node.jsでした。

都合のよいことに、勉強会の数日前にたまたま@ursmによるnode.jsを試してみたが公開されましたので、これを写経することにしました。

しかし、なんと当日にnpmのリポジトリが落ちるというアクシデントが。
おかげで全員が写経を終えることができませんでしたが、その変わりにnodeがパッケージを探索する仕組みがわかったりして、ほんの少しだけお得な勉強会だった気もします。

社内で勉強会をやろうとしても、準備が大変だったり、みんなの時間が合わなかったりして出来ないでいる方は、こんなスタイルで始めてみては如何でしょうか。

60分一本勝負初戦の結果
|ESM|npmの乱入により無効試合|node.js|

2010/09/24

オブラブメルマガを読んで思ったことをつらつらと書くよ

みなさん当然オブラブのメルマガは購読いただいていると思いますので、@koicのQuick JUnitの記事や@kompiroの自己紹介はご覧になっていると思います。

まだお読みでない方はこちらから http://www.objectclub.jp/ml-arch/magazine/354.html

私がまだ学生のころ、Javaと出会い、オブジェクト指向と出会い、単体テストというものに出会い、Quick JUnitを見つけて、まさーるさんのページを見つけて、でもよくわからなくてブクマだけしたりして...
Quick JUnitみたいな機能はシンプルだけど役に立つ物を作りたいと思って、Font Size Changerを作って、Eclipseプラグイン勉強会で@kompiroとか@daisuke_mとか@bose999とかここでは上げきれないような人と出会って...

私の技術者としての道をQuick JUnitは作ってくれたのかもしれないと感極まってしまいました。

そんな感じでとくにオチもないのですが、Quick JUnitのアイコン投票は9/30までですので、みなさん投票はおはやめに。

2010/08/18

emerge --sync と layman -S と eix-updateを一発でやる方法

今までは/etc/portage/postsync.d に 00-layman 99-eix-updateとか言うファイルを置いて、中でタイトルのコマンドを実行させていたのですが、それ eix-sync で出来るよと言われてとても感動したのでした。

しかも、終わった後にeix-diffもしてくれるので、バージョンの上ったパッケージも確認できてとても幸せです。

2010/08/06

昔のblog(typo)をherokuに移しました

今週末、巷で噂のGentooインストール講習会http://shu-cream.netをUbuntuからGentooにする予定です。
旧ブログをどうにかしなければならかったのですが、面倒だったのでデータもまるごとherokuに投げてしまいました。

下ごしらえとして、長い放置期間でたまった大量のスパムと、それに伴って肥大化したsessionsテーブルのデータを削除。
あとは、logとtmpを掃除しておきます。

手元の環境は、vendor以下にgemを展開していたので、あとは淡々とコマンドを実行するだけでした。

heroku db:push
git init
git commit -a -m "hello, heroku"
git remote add heroku #{heroku_repos}
git push heroku

もうあのブログを更新することもないのでかなり雑にやってしまいました。
(それなら、静的HTMLにしたほうが地球の温暖化対策に貢献できたかもしれませんが、今の私には時間がなさすぎました)

2010/08/03

email_spec 1.0.0はRails 3用です

おもむろにgem updateしたら、email_spec 1.0.0が降ってきてrake specが死亡。

1.0.0はRails3用だからとのことなので、config/environmnents/test.rbを書きかえて終わり。
config.gem 'email_spec',  :lib => 'email_spec', :version => "~>0.6.0"

2010/07/26

パーフェクトなソフトウェアのために

誕生日プレゼントにインターネットの向こう側から送っていただいた「パーフェクトソフトウェア」をこの前読み終わりました。

帯にも書いてある通り、この本はテストをテーマにしています。しかし、当然ですがソフトウェアのテスト技法についての本ではありません。

もちろん、パーフェクトソフトウェアなんてものはなくて、ただ、間違った方向へ進まない方法はいくらでもあります。
そのために何をどうテストし、その結果をどう使えばよいのでしょう。

そんなことを考えさせられる一冊でした。


パーフェクトソフトウエア
ジェラルド・M・ワインバーグ
日経BP社
売り上げランキング: 16884
おすすめ度の平均: 5.0
5 ソフトウェアテストにまつわる人間系の洞察〜問題解決本です。

2010/07/19

T410のディスプレイポートとnouveauドライバ

会社で使っているT410はビデオカードをnVidiaのやつにしたのですが、これのディスプレイポートとnouveauドライバの食いあわせが悪く、デジタル出力ができないようです。

http://bugs.freedesktop.org/show_bug.cgi?id=27398

数ヶ月放置されているところを見ると、早めにあきらめてnVidiaのドライバにしたほうがよさそうです。
さようならxrandr。

2010/07/18

オブラブ夏イベントでお話してきました

昨年に続いて軽いとりまとめをやらせてもらいましたが、今年は「えむ」さんのご協力で招待講演の充実度がすごかったです。

私は、昨年からの続きだったのですが、驚異のリピーター0という状況に少し童謡してしまいました。
とはいえ、懇親会ではGentooインストール合宿に興味を持っていただいた方に声をかけてもらったりと、それなりの成果はあったようでよかったです。

2010/07/09

htkymtksの上半期ベストTweetの発表

#kecconの会場では、1位のみを発表しましたが、理事会では3位まで決めていました。

このまま埋もれさせるのは大変もったいないので、ここで発表しようと思います!

(ドラドラドラドラ...)

第1位:裸眼は2.0です(個数が)

第2位:ソイソースラテ、グランデで。

第3位:はっけよーい、ノクターン!!ノクターン!!

どれも素晴しいつぶやきですね。
やはりベスト3となると普段のつぶやきとは一線を画しており、輝きが違います。

軽く補足しておくと、今回は単体のつぶやきで楽しめるかどうかを重視しました。
ハイコンテキストなものを含めれば、他にも素晴しいものは沢山あったのですが、今回は泣く泣く見送ることになりました。

それでは、お楽しみください。

(以下、htkymtksによる解説エントリへのリンク予定地)
あわせて読みたい:hogehoge

2010/07/06

結婚カンファレンスでLTをしてきました

偶然にも、@htkymtksユーザ会発足記念パーティと同じ場所で同じ時間に開催された結婚カンファレンス2010でLTをしてきました。


末永くお幸せに!

おまけ:これは入会ということでいいんですよね?

あわせて読みたい:結婚カンファレンスで Haml と Sass の話をしてきました

2010/06/21

今日は何の日?

今日は、私と息子とウィリアム王子と高校の同級生のN君の誕生日でした。

ちなみに、私とウィリアム王子と高校の同級生は、今年でめでたく14歳(と168ヶ月)になりました!

昨年の誕生日は、神様から息子を頂いたのですが、今年は口内炎をいただきました。毎年ありがとうございます!

息子は初めての誕生日だったので、19日(土)に両方の両親と一緒にお祝いしてきました。
内弁慶の息子、誕生日ばかりは外でもハイテンションでした。

ちなみに、プレゼントは365日受け付けておりますので、遠慮無くどうぞどうぞ。
http://www.amazon.co.jp/wishlist/3C90TZ2HUV23M

2010/06/11

オブラブ夏イベントとぴちぴちトラックについて

オブジェクト倶楽部2010夏イベントの申し込みが開始されています。
内容はサイトを見ていただければいいと思いますが、今年も若人の取りまとめ的なものをやらせてもらっているので、「ぴちぴち若人トラック」についてちょっと補足しておきます。

ぴちぴち若人トラックって?
若人がフリーテーマで好きなことを話す、若人と非若人のためトラックです。
若人の定義は?
Under30。これだけです。
招待講演と、新人って誰?
招待講演者は、赤松 祐希さん、nsgcさん、大和田 純(june29)さんです。新人は、角掛 拓未(@bekkou68)、伊藤 邦彦(@Kunihiko_Ito817)となっています。また、加納 優気はオブラブ初講演なので、こちらもお楽しみに。
○○さんの話だけ聞きたいんだけど。
ぴちぴち若人トラックは、原則入退室自由です。ただ、他のトラックは同じ会場にいたほうがいい内容ではないかと思います。また、他のイベントでも「ノーマークの人の話が実は一番よかった」ということもよくあると思いますので、ぜひ全若人の話を聞いてみてください。

昨年の若人は、結果としてオブラブ上級者向けの内容となってしまいましたが、今年は初心者や中級者でも楽しめる内容となっていると思います。また、技術ネタが聞けれるのはこのトラックだけのようです。

ただ、講演時間が一人あたり10〜30分と短いため、もっと詳しい話が聞きたいと思う方もいると思います。
その場合は、懇親会などで講演者をつかまえて声をおかけください。(オブラブイベントの真髄は懇親会です!たぶん)

それではみなさん、ぴちぴち若人トラックと懇親会へ奮ってご参加ください。

p.s. 私の内容はタイトルに(仮)とある通り、当日まで変更の可能性があります。

2010/06/08

通販生活と非通販生活(ただし、2週間前)

最底辺まで落ちこんだWeb日記力を復活させるためのリハビリエントリ#1

まずは通販生活。

Ultimate Ears MetroFi 170 MF170
Ultimate Ears (2009-04-10)
売り上げランキング: 817

E2Cが断線気味になってからかれこれ3年くらいたつので、こっそり通販生活。220と迷ったんですが、マーケットプレイスで新品6000円切ってるやつがあったのでこちらに。もうなくなってしまっているようです。
E2Cとくらべると、遮音性がイマイチですが6000くらいならまぁ満足できるレベル。あとでイヤーピースだけE2Cのを付けれないか試す予定。

続いて非通販生活。


ベタ移植でいい感じでした。一週目はテューディルートでしたよ。

2010/05/20

HT-03Aを初期化

うちのAndroidが、Simejiのフリック入力でもたつくようになって大変ストレスがたまるので、初期化しようと思います。
軽くなると噂なので。
今回は、アプリのバックアップとかも無しで1から環境を作り直すつもりなので、念のためアプリのリストだけをここに記録しておきます。
  • TasKiller
  • K-9 Mail
  • QRコードスキャナー
  • Simeji
  • twicca
  • Dropbox
  • Samurai Rogue
  • Voice Recorder
  • FlickWnn
  • Goggles
  • Evernote
  • Ustream Broadcaster
  • Ustream Viewer
  • Tuboroid
  • AppMonster
  • ドロー!
  • Bump
  • クーポンマップ
  • Blogaway
  • モノリス
  • AndChat
  • NewsRob
  • Foursquare
  • TaskPanel
  • Hubroid
  • 毎日新聞
  • PDF Viewer
  • ptMobile
  • Gesture Search
  • 降水確率ステータスバー
  • Dolphin Browser
  • Qik
  • KaoMash
  • CIDR Calculator
  • Hoccer
  • 近藤昭雄の溜息
  • Photoshop.com Mobile
  • S2カレンダーウィジェット
  • 乗換案内
  • Calculator
  • Retro Clock
  • Battery Status - Free
  • クイックメールLite
  • Beelicious
  • Solitaire

2010/05/02

3年ぶりのGW

実は今の事業部に配属になってから、この時期は2年連続で結構大変なプロジェクトにアサインされていて、ちゃんと暦通りに休みが取れるのは3年ぶりだったりします。

今年はプラスαの休みもとったのですが、特に遠出する予定もないので関東でゆっくり過ごそうと思います。

2010/04/16

kecchan_tのNo planな日常

息子がいきなりの39度オーバーで、昨日は病院にいってきました。
座薬とシロップの薬をもらって、今朝にはけろっとしてましたが、変わりに両親に風邪が伝染ったようです。

鼻水とくしゃみが止まらなくて、喉がいたいので一回休み。

2010/04/12

福井に来ています

会社の研修(?)で福井に来ています。
明日から何をするのかイマイチわかっていないのですが、なんとかなるでしょう。

駅で蕎麦を食べて、秋吉でたまたま隣に座った、同じく研修で福井に来ているという製造業の方と3時間くらい話して、さっきホテルに戻ってきたところ。

昔SIerにいたこともあるということで「金融系でもJavaが使われつつある」「ついにそんな時代になったのか!」みたいな話をしてました。
あと、iPhone使ってるけど北陸はSoftbankの電波がウ○コとか。

Twitterで顔をみたことのない人とのコミュニケーションも面白いですが、顔以外全然知らない人とのコミュニケーションもたまにはいいものですね。

あと、秋吉の常連だという少し離れたところに座ってたオッサンの職業が医者だったりIT系だったり市の職員だったりしてました。

2010/04/11

帰省&法事

祖母の一回忌で帰省してきました。

今年は寒いらしく、小学校のグラウンドにも大量の雪が残っていました。
去年は桜が咲き始めてたんですけどね。

結婚して、妻が妊娠して、祖母が亡くなり、竜太が生まれて。
ここ2年くらいで色々ありました。

祖母のことは色々思うことがあるので、必ず"あとでかく"

2010/04/05

新卒採用のお手伝い

先日、採用活動のお手伝いをさせていただいたのですが、まぁいろいろ思うことはありますよね。

さて、みなさんは学生に「仕事のやりがいはなんですか」って聞かれたらなんて答えますか?

実は、毎年このテンプレになんて答えるべきか悩んでいたりします。テンプレにテンプレで返すのもあれですし。というのも、少くとも自分が学生の時は「お客様」や「上司」とかいう言葉が出てきた時点で、理解はできてもそれ以上の感情(共感とか)はまったくなかったんですよね。

だから、なんとか学生にも共感できる「やりがい」を話したいんです。

といいつつ、今年は「その辺わからないよね?でもやっぱり…」という感じでお客様とかいう話をしてしまいました。残念!

来年こそは、何かいい答えを見付けられているといいな。

ちなみに、「私が個別に対応した学生は、今まで一人も入社していない」ということを事業部長に伝えたところ、来年からは人選から外すと言われてしまいました\(^o^)/

2010/03/18

aptitudeでインストールした物のリストを出す方法

aptitude search "~i"

searchのオプションはSearch Term Referenceを参照のこと。

ただし、自分が能動的にインストールしたパッケージ(aptitude install hogehoge)だけでなく、そこから依存関係で入ってきたのも含まれてしまうので、gentooのworldみたいな綺麗なやつは手に入らないようです。

2010/03/15

読了「小さなチーム、大きな仕事」

この手の本ではよく言われているこばかりだったので、個人的には今一つでした。

時間があるなら「革新的ソフトウェア企業の作り方」の方が、ボリュームもあるのでオススメです。

小さなチーム、大きな仕事―37シグナルズ成功の法則 (ハヤカワ新書juice)
早川書房 2010-02-25
売り上げランキング : 340
おすすめ平均 5つ星のうち4.5

Amazonで詳しく見る

Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
翔泳社 2008-09-11
売り上げランキング : 105790
おすすめ平均 5つ星のうち5.0

Amazonで詳しく見る

2010/03/09

Hubroidがv1.2でようやく暇潰しに使えるレベルになった

AndroidのgithubビューワであるHubroidがv1.2でようやく暇潰しに使える感じになりました。

最初にインストールしたときは、ウォッチしているリポジトリの一覧くらいしか見れなくてがっかりしていたのですが、バージョンアップによってコミットコメントが見れるようになったりと、少しずつ進化してきました。

そして、v1.2でついにコミット単位でのdiffが見れるようになりました!

まだソースコード全体を見ることはできませんが、ウォッチしているプロダクトのdiffを確認できるだけでも十分楽しめますよね?

そんな、これかの進化が楽しみなHubroidのソースコードはこちら
eddieringle's hubroid at master - GitHub

2010/02/25

はてスタが付けられなくなっているようです(が直ったようです)

どうも先日からこのブログではてスタが付けられないようです。
特になにもいじってないのですが、デザインをデフォルトに戻してはてスタのJSだけつけてもだめなので、ダメなんでしょう。

どうしてもはてスタ付けたいという方がいましたら、http://ruby.agile.esm.co.jp/ に私の記事も集約されていますので、そちらからなら付けられるようです。

追記:2010/02/26 10:04
いつのまにか直っていました。
というわけで、みなさん好きなだけスター付けていいんですよ?

2010/02/24

プログラミング初等教育とTDDの相性は最高

1年半ほど前、入社前はプログラミング経験ゼロの@chibisayoを新入社員としてチームに迎え、私がOJT担当っぽくなった時の経験から、プログラミング初等教育とTDDの相性は最高であることをきちんと文章に残しておきたかったので、このビックウェーブに乗ることにしました。
私が @chibisayo に何度も何度も言ったのは、まずユニットテストを先に書くということです。
これによる最大のメリットは、何がわからなくて悩んでいるのかをこちらが把握できることです。
  • テストが書けないのであれば、仕様が理解できていないか、テストの書き方が分からない
  • テストがREDになっているのであれば、それを通すプロダクトコードの書き方がわからない
初心者(じゃくなくても)でよくある、「わからない所がわからない」「全部わからない」状態になる可能性がとても低いのです。最初は、本人が「全然わからない」と思い込んでいることがよくありますが、こちらから見れば一目瞭然です。
徐々に本人も自分のわからない所がわかるようになり、質問の仕方も「このテストの書き方がわからないんです」とか「こんなテストを書いたんですけど仕様とあってますか?」と非常に具体的になってきます。
プロダクトコードについては、「このテストを通そうとしてここまで書いたんですが、ここから先が分かりません」と質問の仕方のお手本のような聞き方ができるようになります。
なんということでしょう!TDDを意識しただけで、コーディングスキルだけじゃなく、適切な質問の仕方まで身についてしまったではないですか!すごい!
このように、プログラミング初等教育からTDDを意識させるのは、コーディングスキルの面でも、コミュニケーションスキルの面でも、とても価値のあることだと思っています。
またこの副作用として、常にTDDを意識させられた @chibisayo は、配属から半年経ったころに「テストを書かなくてどうやってプログラム書くんですか」という名言を残すこととなったのでした。

最後になりますが、TDDを意識したプログラミング初等教育の難しさは、仕様からテストコードを導出するアプローチをどう習得させるかというところだと思います。
今回はそちらも(たまたま)成功したと思うので、まだ記憶が残っているうちにエントリにしたいと思っています。(続く)(かも)

2010/02/23

bloggerのコメントをDISQUSにしてみた

bloggerのコメントシステムは昔から大変アレな感じなのは皆さん周知のことかと思います。

今の時代、コメントシステムも外部に委譲することができるそうで、ruby.agile.esm.co.jpが採用したことでも有名なDISCUSを使ってみることにしました。

基本的には、言われた通りに進んでいけばいいのですが、テンプレートに埋め込む部分で、「Use Disqus Comments on all blog entries. Any existing comments can be imported in.」を選択しないと上手く埋め込めませんでした。
このあたりは、テンプレートによってダメだったりするんですかね。

DISQUS Comments | Blogger
Uploaded with plasq's Skitch!

ただ、まだ誰もコメントしてくれないので、上手くできてるかどうか全然わからないんです。
みんなもっとコメントしてくれいいんですよ?

某サミットに参加してきました

2月でサミットと言えば、当然、呑まれ部サミットですよね。

当日の様子と後日談はTogetterにまとめましたので、こちらをご覧ください。
Togetter 呑まれ部サミット2010

途中で帰った@chiba777顧問の某サミットの第二部どうなったのか、早くききたい!という発言に対して、@koic顧問による名言をここに残しておきます。

「顧問が後日談を聞きたいとはどういうことか。顧問は後日談を作るものだ」

2010/02/01

Ubuntu9.10でPPAの使い方が簡単になった

普段はMacやGentooを使っている人も、やむを得ない理由によりUbuntuを使わなければいけないシチュエーションが当然ありますよね。

そんな時に困るのが、Ubuntuのaptリポジトリにないソフトウェアや、あってもバージョンが古い場合ですね。
野良ビルドをしてもいいんですが、無駄にCPU資源を使って、後々管理しにくい方法でインストールするのは得策とは言えません。

「そこでPPAですよ」という発表を昨年のオブラブ夏イベントでしたのですが、9.10になってPPAの使い方が超簡単になったようです。

例えば、9.04でgitのstableを入れたいのであれば、まず/etc/apt/sources.list.d/git-core.list を以下の内容で作成し、
deb http://ppa.launchpad.net/git-core/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/git-core/ppa/ubuntu jaunty main
apt-keyで鍵を取り込みます。
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com E1DF1F24
鍵の取り込みは必須ではありませんが、そのリポジトリからインストールする度に、インストールしてよいか聞かれるので取り込んでおいたほうがいいです。

https://launchpad.net/~git-core/+archive/ppa Not using Ubuntu 9.10 (karmic)?をクリックすると表示されるされる部分がsources.list.dに書くべき内容で、Signing key:のスラッシュの後ろがapt-keyで指定する文字列です。

とてもとても大変ですね。

これが9.10ならば、以下のコマンドでOKです。
add-apt-repository ppa:git-core/ppa
ね。簡単でしょ。

こんなに便利になっていたのに、つい最近まで知りませんでした。これからはちゃんとリリースノート読みます。

2010/01/29

cucumberでrerun.txtが残って困っている方へ(Git編)

いつのバージョンからかrake cucumberが失敗したときに、rerun.txtというファイルが生成されるようになりました。
rerun.txtの中には、失敗したフィーチャのファイル名が記録されており、次にcucumberを実行する際に最初に実行されるようになっているようです。

しかも、このファイルはAll Greenになっても削除されない上、例えば何らかの事情でrerun.txtに記載されているファイルが削除されてしまった場合、ファイルが見つからずにエラーとなってしまいます。

そして、これはトピックブランチを切り替えるときによく発生し、(チームメンバーが)いつも頭を悩ませていました。

そこでgithooksですよ。

リポジトリのルートディレクトリの.git/hooks/に、post-checkoutというファイルを以下の内容で作成し実行権限を付けることで、git checkoutを実行した際にrerun.txtがあれば削除することができます。

gitには他にもフックポイントがあるのですが、全てのコマンドのpre、postに対応しているわけではないようです。
詳しくは man githooks を参照ください。

入門Git
入門Git
posted with amazlet at 10.01.29
濱野 純(Junio C Hamano)
秀和システム
売り上げランキング: 7381

2010/01/21

MacbookPro 15inch 用バッグ

年末年始に実家へ帰る際、手下げ2つ+息子(ベビーカー)+おみやげという荷物があまりに大変だったので、Macbookが入るバックパックタイプのバッグを探してました。

macbook用のバッグを探すと、かなりの確立で誰かとかぶるようなのですが、とりあえず1ホップでは被らないようにと思って買ったのはこちらの商品。

golla バックパック ミニー G599
golla
売り上げランキング: 79004


ちなむとこちらで買うと安いのでオヌヌメです。
http://store.shopping.yahoo.co.jp/shasinyasan/6419334043418.html

2010/01/13

2010年の抱負的なもの

弊社では、毎年漢字一字の書初をしているのですが、今年は「進」にしました。

昨年は、仕事面では今までにない経験をさせてもらったにも関わらず、家族が増えたバタバタもあり、イマイチ進歩している気がしませんでした。
と、この文面を考えているうちに、実は記録をほとんどとっていなかったことに気付いてしまい、それが原因なのではと疑っています。

というわけで、今年一年心の中の一字は「記」として、たとえこの記事のように若干時期外れだとしても自重せずに記録を残して行きたいと思います。