GEEK DAY TOKYO ワクワクエンジニアリングで発表してきます

3/31にあるGEEK DAY TOKYOというイベントで「ソーシャルコーディング時代の幕開け」というタイトルでお話させていただくことになりました。

タイトルからもわかる通りGitHubの話なんですが、**「受託開発の会社がお仕事のリポジトリとしてGitHubを採用してみたら何が起きたか」**という話をしようと思っています。

他の発表者の方を見ると、普段あまり接点がない感じなので、楽しみでもあり不安でもあるという複雑な感じです。

なにやら、Asakusa.rbの花見が同じ日にあるようですが、興味のある方は来てみてください。(ドリンク(アルコール有)、軽食無料だそうです!)(LTと展示も募集中だそうです!)

記事のURLが.htmlとなるように変更しました

octopressのデフォルト設定では、記事のURLは/YYYY/MM/DD/#{title}/のようになるんですが、某ブックマークサービスでは末尾のスラッシュを名寄せしてくれなかったり、ブラウザによって末尾のスラッシュ無しの場合にリダイレクトされたURLがアレな感じになったりするので、.htmlで終わるように設定を変更しました。

これによって、過去の記事のURLも全て変更されていますので、ブックマークから見れなくなっていると思います。すみません。

はてなブックマークボタンを行動情報を取得しないものに変更しました

ここ数日揉めていた件に対応しました。

行動情報を取得しないはてなブックマークボタン作成ページ

普通に作るボタンは「行動情報を収集する」パターンで、下に灰色の文字でオプトアウト版の作成ページへのリンクを作るというのは、なんというかそこまでいってしまったんだなぁという感が否めないですね。

Turnipを使ってtappのテストを書いた話

WEB+DB PRESSのRubyわくわくナビでも紹介されたtappのテストについては社内でも定期的に上がる話題で、もう少し広い意味で考えると、標準出力を扱うアプリのテストをどうするかという話になったりするのですが、

  • tappの単体テストってなんかしっくりこないよね
  • 標準出力に出すだけだしね
  • そういえば、vim-ruby-refactoringっていうVimプラグインのテストがCucumberで書いてあるんですよ
  • そういえば、jnicklas先生の新作Turnipっていうのがあって…
  • それ使ってみましょう

という感じでTurnipを使ってAcceptance Testを書いてみました。

Turnipの特徴はこんな感じです。

  • 記法はCucumberと同じGherkin
  • Stepの定義に正規表現を使わずに、ただの文字列と、その中にコロン(:)をプレフィックスとしたプレースホルダで変数を扱う
  • Stepに名前空間ある
  • Stepの名前空間に変数が持てる

日本語で書けるかどうかは試してないですが、なかなかよさそうじゃありませんか?

Turnipで書いたtappのテストを下に載せておきます。 ただ、名前空間とかは使ってないので、Cucumberとは殆ど変わりませんね。

Feature: Object#tapp

  Scenario: Call tapp within methods chain
    Given I have the following code:
    """
    require 'tapp'

    (1..5).tapp.select(&:odd?).tapp.inject(&:+)
    """

    When Ruby it

    Then I should see:
    """
    1..5
    [1, 3, 5]
    """

Step定義も合わせてどうぞ。 こっちは、よくある標準出力をテストする方法を使っています。

step "I have the following code:" do |code|
  @code = code
end

step "Ruby it" do
  stdout = StringIO.new
  $stdout = stdout
  begin
    eval @code
  ensure
    $stdout = STDOUT
  end
  @output = stdout.string.chop
end

step "I should see:" do |output|
  @output.should == output
end

結構読みやすいと思うんですがどうでしょう。標準入出力を扱う簡単なツールは、こんな感じで単体テストよりもエンドツーエンドのテストを書いておいた方が価値があると思います。

デブサミ参加記録

(これは3/1に書きました)

去年はなんとなく参加しなかったデブサミですが、今年は少しだけ参加しました。

  • 1日目: 平鍋さん
  • 2日目: 角谷さん、松田さん

私にとって、デブサミと平鍋さんの組み合わせは特別なものなので、今年はどうしても行きたかったのです。

あれは2005年、学生として潜り込んだデブサミで平鍋さんの見える化の話を聞いたのが、私と永和の出会いだったのです。 その7年後の2012年に、平鍋さんから聞くアジャイルの10年という話は、あの頃の衝撃を思いださせてくれる、平鍋さんにしかできない話で感動しました。

角谷さんの話は、だいたい会社で話してることや、耳に入ってくる話が中心ではあるんですが「自然なソフトウェアの作り方」と「オープンソースソフトウェア」という話は、なるほどなーと思いました。オープンソースソフトウェアはすごい。

最後の松田さんは、もうあれは聞かなかった人は、スライドだけでも見るべきですね。必修科目です。GitHubとはなんなのか、何故GitHubなのか、彼等は何をなしとげたのか、すごく綺麗にまとまっていました。 これを聞いてから、GitHubの事を他の人に話そうとしても、松田さんの言ってたことをそのまま言うしかなくなってしまって少し困っています。

1年振りに参加したデブサミはとても満足できたのですが、一方で技術的なセッションがソーシャル系というかビッグデータ系ばかりなのは、ちょっと寂しいというか、もう少し何か話題がないのかな〜と思いました。

(本当は、1日目の和智さんも聞きにいく予定だったのですが仕事で間に合わず。後日Twitterを眺めて雰囲気を楽しみました。)