Stats of the Rivers

川の様子を見に行ってます。

第十四回文学フリマに行った

既報の通り、「季刊まきもと1」という冊子を頒布した。
この冊子には遺憾ながら拙作が載っており、自分はこれを小説だと思っているが、そうとらえてくれる人は稀のようだ。

初めて行った東京流通センターの敷地内にはタリーズとローソンがあり、今日はそのいずれも営業してなくディストピア感が漂っていた。
空調の効かぬホールで「セーラー服と文藝銃 文藝蝉噪別冊一号」「サボイ 第3号」「書評王の島 五」を買った。これらは今からちゃんと読む。

今回は akz さんに大変世話になった。感謝。寿司奢ります。

グリッチ画像を手軽に作って検証できる zsh コマンド

普段の生活の中でグリッチ画像を作りたいということがよくあるが、「パラメタを設定して画像をグリッチさせる→グリッチさせた画像を検証する」という作業を楽にするために簡単な zsh コマンドを作った。

function glitch(){     
  sed "s/$2/$3/g" $1 > glitched_$1 
  open glitched_$1                     
}

ご覧の通り、sed で JPEG ファイルのバイト列を置き換えて、新しいファイルを開くだけだが、これによって PDCA サイクルを高速にまわせて質の良い画像が得られるはず。

例えば、以下のような makimoto.jpg というファイルがあるとする。 *1
この画像に対し、以下のコマンドを実行すると、次に示すような画像が生成され表示される。便利。

$ glitch makimoto.jpg x y

*1:どういう画像なのかは想像にお任せします

第十四回文学フリマ #bunfree【エ-40】 5月6日(日)

第十四回文学フリマにおいて、『季刊まきもと』という酷い名前と表紙の冊子を頒布するので、是非買わないでください。
f:id:makimoto:20120504080535j:plain

WEB+DB PRESS Vol.68

同僚の @tadai さん @ryo_katsuma さんと、4月24日発売の WEB+DB PRESS Vol.68 に「速習 リーンスタートアップ」という記事を書きました。
その名の通り、最近邦訳が出た『リーン・スタートアップ 』についての解説記事で、リーンスタートアップの概要や理論、クックパッドにおいて実践している内容などについて15ページで紹介してます。
クックパッド独自の仮説検証のフレームワークなども紹介していて、既に原典を読んだ方にも面白い内容になっているのではないかと思います。

いまどきの Ruby 書くときのテスト環境

romaji というライブラリを書いた。 - 寿司じゃないブログ という記事を書いたのだが、テスト環境について反応があったのでもうちょい詳しく書く。

RSpec

テスティングツールのデファクトスタンダード
http://rspec.info/ に行くか、The RSpec Book を読もう。

Guard

ソースコードが編集されているかを監視して、変更があった場合に自動でテストを走らせてくれる。

guard と guard-rspec を gem install して、以下のようなファイルを Guardfile という名前でプロジェクトのルートディレクトリに置き、 guard コマンドを走らせると、watch で指定したファイルの変更の監視してくれる。


guard 'rspec', :version => 2, :all_after_pass => false, :all_on_start => false do
watch(%r{spec/.+_spec\.rb$})
watch(%r{lib/(.+)\.rb$}) {|m| "spec/#{m[1]}_spec.rb"}
watch(%r{lib/(.+)/.+\.rb$}) {|m| "spec/#{m[1]}_spec.rb"}
end

Growl がインストールされていて、ruby の growl gem が入っていたら、特に何もしなくてもテスト終了後に結果を Growl で通知してくれる。便利。

Travis CI

GitHub アカウントと連動して、GitHub のレポジトリに push したら勝手にビルドを走らせて通知してくれる。

GitHub アカウントでサインアップしたら、プロフィールページに GitHub に置いてるレポジトリ一覧が表示されるので CI に乗せたいレポジトリを指定する。あとは勝手に bundle install; bundle exec rake してテストを走らせてくれる。
Travis CI が強力なのは複数環境を指定してビルドしてくれるところで、例えば .travis.yml というファイルに以下のように書けば Ruby の 1.8.7、1.9.2、1.9.3 でそれぞれビルドしてくれる。

rvm:
- 1.8.7
- 1.9.2
- 1.9.3

あと みたいなのを貼れる。おしゃれ。

まとめ

Ruby で開発するときの今時のテスト環境について書いた。ローカルで Guard を走らせておいて、リモートレポジトリ (GitHub) を Travis CI で監視させておけば (あと、もちろんちゃんとテストを書いていれば)、幸せになれると思う。
Guard も Travis CI も導入コストはあんまりかからないので、さくっと入れて使い始められるはず。