デボラ、眠っているのか? Deborah, Are You Sleeping?

「二十パーセントくらいは、取り込んだ新しいデータで、インテリジェンスの構築と修正をしているだろう。ようするにラーニング、つまり勉強だ。日々学んでいるわけだね。コンピュータというのは、本当に誠実な装置だ。こつこつと自己研鑽に励む。きっと、自分が高まることが最高の喜びなのだろう」

シュッとウィンドウを選択してスクリーンキャストを撮れるようにした

soh335.hatenablog.com

少し前に上のようなものを作った。たまにウィンドウをシュッと選択したい感じだったので、スペースキーを押すと選択出来るようにした。

github.com

sierra にしても何もコード変えることなく動いててよかった。ついでに dmg を sign しておけよみたいな雰囲気だったので自前のリリーススクリプトでやるようにした

parallel_tests で rspec を並列化する

test-queue でもなんでもいいけど今回は parallel_tests を使った。

readme.md に書いてある通りにすれば使える。二つちょっと工夫した。 一点目は web アプリのテストコードとかでアップロード周りはローカルに切り替えるみたいなのをやるけど、アップロード先とかが決め打ちになっていて、さらにテストごとにそれを削除とかすると、並列で動いてる同士で意図しない挙動になるので TEST_ENV_NUMBER という環境変数を使ってさらに切り分けるようにした。

二点目は、db:migrate をしないと db が作れない状態の時に、これを並列化するともともと重くて遅いものなので時間がかかる。コードにも

  # when dumping/resetting takes too long
  desc "update test databases via db:migrate --> parallel:migrate[num_cpus]"

とある。なのでこんな感じで

$ bundle exec rake parallel:migrate[1] RAILS_ENV=test
$ mysqldump ... $database > /path/to/dump.sql
$ bundle exec parallel_test -n$number -e 'mysql ... $database$TEST_ENV_NUMBER < /path/to/dump.sql'

mysqldump しちゃって入れちゃえば、並列で db:migrate するよりは全然マシになる。

ちなみに perl の test::mysqld を使うときはテストファイルごとに、db 作り直すって感じになって初期データ入れるコストが高いので、一回 db 作ってそのディレクトリ構成をコピーしておいてみたいな感じをやったりするようだった気がする。

parallel_tests 使わせてもらったついでに、failures のカウントがおかしくなってるところがあったので修正の pr を出した。すぐマージ、リリースしてくれて助かった。

何者

何者(新潮文庫)

何者(新潮文庫)

少し前に読んだ村田さんの本は最初から怖いとわかってて入るお化け屋敷みたいな感じだったけど、これは全く関係ない話だなーと思ってたらいつの間にか沼にハマってて死ぬみたいな感じでとにかく最高。 桐島の人ってわかってなるほどという感じ。

ザ就活はしてないとかで舐めて読み始めるととにかく上みたいな感じで最高なので読んでみてほしい。映画も楽しみ。