| @技術/プログラミング

最近プログラミングに飽きてきてると思う。なんかプログラマーになる前にやりたかったことはたいてい出来るようになってきた気がする。最近の流行の Chef とか Puppet とかを勉強したりもしてなくて、学ぶべきことは山ほどあるのに、マンネリ化した状態で無為に日々を過ごしてる感がある。きっと自分は日々の仕事から細々とした実践的知識を学んでばかりでちゃんと本を読んで勉強していないから飽きてきてるんだと思う。もっと本を読まないといけない。本を読まないといけないんだけど集中力がなくて本が読めない。なので刺激を求めて Emacs に再々々入門してみることにした。とりあえず vim で ~/.emacs を編集して Emacs 起動したときにエラーが出ないようにした。頑張ります。

| @雑談

会社の若者、夏期休暇期間中に徳を高めまくってた。

自分は徳が高まるようなことは特に何もしてない。コード書いてないしプログラミングの勉強もしてない。すこし .vimrc を触ったくらい。

実家に帰ったほかは、家を買おうとしてるので不動産屋に行ったり住宅メーカーに行ったりしてた。

プログラミングの本、『明解! Ruby』が読みかけになってるので読もうと思ったけど読まなかった。『SQL アンチパターン』も必要に迫られて買ったので夏期休暇で読もうと思ってたけど読めてない。

代わりと言ってはなんだけど歴史の本読み始めた。連休前に以下を買った。

大河ドラマとか見るときに日本史の知識ないと厳しいことがあるので Wikipedia 読むんだけど Wikipedia 読みだすと際限ない感じなるので本を買って歴史を勉強してみようと思っていた。丁度日経プラスワンの特集で紹介されてたので読んでみたくなって手に取った。Amazon でも評価高い。

あと夫婦げんかして家を飛び出して向かった天神のTSUTAYAで以下のような本を買った。

どれも古本なので安かった。『「芸能と差別」の深層』は三国連太郎の話が面白そうだったので買った。『夜這いの民俗学・夜這いの性愛論』を買うとき、レジが女の人じゃないなと良いなと思ったけど女の人になってしまって恥ずかしかった。結果的に痔ろうが再発した。

| @技術/プログラミング
gem install chef # => 11.6.0 が入る
gem install knife-solo # => 0.2.0 が入る

入門 Chef Solo には knife-solo は 0.3.0 を使えとある。

gem install knife-solo --pre # => 0.3.0.pre5 が入る

knife solo ○× したときに solo なんていうサブコマンドないと怒られる。

knife-solo 0.3.0 使いたいなら chef のバージョンは 11.4.4 に落とさないといけない。ローカルマシンの Chef のバージョンだけでなく、リモートのやつのバージョンも落とさないといけない。この辺地獄っぽい。

プロビジョニングツール的なやつ、使えたら便利なんだろけど自分は環境作るのってもの凄くたまにしかないし Chef とか Puppet の使い方覚えるより手動でインストールしていった方が速いような気がする。Nginx をインストールするのにもの凄く時間がかかった。

| @WWW

Lingrlingr-irc + ZNC 経由で見てるんだけど、 5 分おきくらいに接続が切れて辛い感じだった。vim 界隈で有名な mattn さんがエラーにならないように改修してるぽかったので (Pull Request 出してあるけどまだマージされてない ping pong by mattn · Pull Request #3 · psychs/lingr-irc )ブランチを拾ってきて Merge してみたらかなり良い感じに Lingr を IRC クライアントで見られるようになった。併せてこちらの Pull Request bot message should be NOTICE by mattn · Pull Request #4 · psychs/lingr-irc のパッチも当てると GitHub からの通知とかは PRVMSG 扱いではなく NOTICE になるのでより IRC っぽくなる。便利。

| @散財

スバル インプレッサ / SUBARU Impreza

2月に車を買った。スバルインプレッサの中古。車、維持費高いけどやっぱりあると便利だと思う。生活圏広がるし、これまで行けなかった糸島(福岡の湘南みたいなところ)の農産物直売所に行ってうどんを食べたりすることもできる。

子どもが生まれるとやはり車がない生活が原理的に不可能な気がしてくるようになった。子ども服を売っている店はそもそも車でしか行けないような場所にあることが多い。意外と都会の真ん中で子ども服を扱ってる店はない。ユニクロも赤ちゃん服は売ってない。百貨店に行けば何でもあるので都会の真ん中にも子ども服あると言えばあるんだけど、当然のことながら異常に高い。百貨店には庶民が買えるようなやつは売ってない。子ども用品を激安価格で売っているチェーン店に西松屋というのがあるけど、例外なく郊外で営業してる。安く子ども用品を揃えようとしたらどうしても車で西松屋に行くしかない。

そもそも子ども用品はかさばることが多く(おむつ、ミルクなど)、電車+徒歩で行けるような場所に店があったとしても買った品物を持ち帰るのが非常に難しい。以前、電車とタクシーで西松屋に子ども用品を買いにいったことがあるけど、子ども用の風呂桶などが大きすぎて手で持ち帰ることができず、同じ市内なのに宅急便で家まで配達してもらって送料が2000円くらいかかった。そのほかにも駅からタクシーでショッピングセンターをはしごしたりで、一回の買い出しで交通費・送料だけで5000円くらいかかったことあった。

また公共交通機関での移動は公共交通機関に都合を合わせないといけないのが辛かった。地下鉄のホームから地上への上り下りや高速バスの乗り降りは結構きつい。時間も電車やバスに合わせないといけない。子どもがうんこしたからといって高速バスで移動している最中におむつを替えるわけにもいかない。車ならこういう問題があらかた解決される。

以上のような理由で車を買った。

車はカーセンサーとかで調べて実物を見に行ってから決めた。中古車屋は非ディーラー系とディーラー系の両方に行った。非ディーラー系は飲み物を出してくれたりゆったりとしたソファがあったりして店の作りは贅沢だと思ったけど、車の値段が詐欺っぽかった。車検付き80万円という価格につられて行ったのに乗りだし価格は+40万必要で120万円からになりますとかそんな感じだった。これはアホらしいと思ったのでここでは買わなかった。

ディーラー系の中古車屋はしょぼかった。店はプレハブで車を見に行っても飲み物とか出てこなかった。しかし詐欺っぽいところはなくて、何も言ってないのにカーセンサーに載っけてる値段より安い値段出してきたし、窓にバイザーつけてくださいとか ETC 付けて下さいとか色々言ったら無料でやってくれた。スバル保証みたいのも付いたし、怪しい中古車屋よりネットに出てる値段は高いけど最終的にはディーラーの中古車屋で買うのが良い気がした。

新車とかは一生乗れないと思うので死ぬまでディーラーがやってる中古車屋で車を買って乗り継いでいこうと思います。

| @労働

会社、antipop さんという有名なプログラマーの人がいる。去年、はてな社からペ社に移籍してきた。antipop さんともう一人の有名プログラマー hsbt さんが旗振り役になって(人事部長を巻き込んで)スクラムを会社に定着させようとしている。

アジャイル開発とか、受託開発の会社にいる激務薄給な感じのプログラマーがウォーターフォール開発に絶望してたどり着くものというイメージがある。だからはてなのようなモンスター級のスーパープログラマーばかりいる自社サービスの会社にいた antipop さんがアジャイルに開眼するのは不思議な感じがした。なんですごい人たちばかりの会社にいてアジャイル良いと思ったんですか、と antipop さんに質問したことがある。すごいプログラマーがたくさんいてもすごいサービスができるとは限らない、はてなにもうまくいかなかったサービスはある、すごい人たちがおりゃーと開発するより凡人だらけでもアジャイルなやり方で開発した方がよいものができるのではないか、と思ったからアジャイルに傾倒し始めた、ということらしい。

なるほどなー、と思った。

| @技術/プログラミング

Capybara + Selenium でテストしていて、JavaScript の alert() の中身を調べたいとき、 ただ単に

it 'alert の中身は「うんこ」' do
  find('#unko').click
  page.driver.browser.switch_to.alert.text.should == 'うんこ'
end

とかやるだけでは Selenium::WebDriver::Error::UnhandledAlertError が発生する。

it 'alert の中身は「うんこ」' do
  find('#unko').click
  page.driver.browser.switch_to.alert.text.should == 'うんこ'
  page.driver.browser.switch_to.alert.accept
end

というように最後に OK ボタンを押す操作を追加してあげないといけない。