2011年07月11日の日記
@babie: ネムリアンダーク
@babie: 紳士枠は童貞枠と読んでも差し支えないだろう。
@babie: 腹裂くいろは
@babie: ホビロンのお時間
@babie: キュアルビー!キュラパール!キュアパイソン!
@babie: 宇宙飛行士の村長
@babie: 正義表現むずかしい。
@babie: 【定期】アヘ顔じゃありません白目です
@babie: 残業代で出すべきか、なんか特別手当的なもので出すべきか。QT Publickey - 社内ハッカソンをしよう URL
2011-07-11 20:10:29 via web
@babie: 腹減った。帰ろう。
@babie: @RandolphCarter 説明・解説系が意外と多いなー。PoEAAとかDDDのメタな奴はしょうがないかなってとこもあるけど。
@babie: プログラミングの勉強は、手を動かしてブログに書けば、身について・整理できて・読者増えるので、一石三鳥。
@babie: ハンズオン形式じゃない勉強会は不要派。
@babie: Rails の勉強会で2回ほど講師したことあるけど、「プログラミングの勉強は手を動かさないと覚えられない」との仮説・信念を元に、全てハンズオン形式でやった。前提を飛ばしすぎって不評をかったこともあったけど。
@babie: あ、勉強の話ね。
@babie: 「プログラミングは手を動かさないと(黙読じゃ)やったことにならないから。」って言ったら「押忍」って言われた。根性論じゃねえよw
@babie: ふむ。QT Mongoid::Tree URL
2011-07-11 17:13:56 via web
@babie: レディー・ガガと炎の徹子の部屋
@babie: Ficia 終了して、tokuhirom はどこ行ったか推測できたけど、yappo はどこ行ったんだろうな。
@babie: 暑いわー
@babie: う〜ん、Chrome WebStore で月額課金のアプリ内課金ができれば一番いいんだけどどうしようかな。QT RailsでPayPalって素敵なかんじ。 - 困ったときのメモ URL
2011-07-11 14:30:08 via web
@babie: ミステリは相性があるからなぁ。俺も森博嗣のS&Mシリーズ(「すべてがFになる」〜)を3作品読んでみたんだけど、全部途中でトリックがわかっちゃって辟易した。相性が合いすぎたんだな。QT URL
@babie: 【定期】僕のツイートは路上でこんなアイコンの目をした人がぶつぶつ言いながら歩いている様を想像しながら読んでください
MongoDBが起動しなくなったときの対処法(公式Ubuntuパッケージの場合)
なんかさくらのVPSが勝手にリスタートしたみたいで、MongoDBが起動しなくなった。
モッピー知ってるよ、--repair コマンド使えばいいんだよね。
$ sudo mongod --dbpath=/var/lib/mongodb --repair
あれれー?mongodb.lock ファイル消えないし、起動できないし。
ググると、公式 Ubuntu パッケージの場合はちょっと対処法がちがうっぽい:
$ sudo rm /var/lib/mongodb/mongod.lock $ sudo -u mongodb mongod -f /etc/mongodb.conf --repair $ sudo /etc/init.d/mongodb start
これでいけた。ふぅ・・・
Spork で自動的に Model や Routes をリロードする方法
Spork は、起動時に Rails 本体だけでなくアプリケーションもガーッと読み込むので、Model や Routes を変更しても、終了・起動しないと反映されない。これでは autotest なんか使っている時めんどくさいので、ちょっと設定を変更した。
最初はこっちを参考に変更しようと思ったんだけど、こっちの方が追加行数が短いので、後者にした。
spec/spec_helper.rb
Spork.each_run do # This code will be run each time you run your specs. load "#{Rails.root}/config/routes.rb" Dir["#{Rails.root}/app/**/*.rb"].each { |f| load f } end
うん、できた。
Enterを入力した時に更新するテキストボックスのテストの書き方
jQuery で、
$("#target").keypress(function(event) { if ( event.which == 13 ) { //更新... } };
とか書けるじゃないっすか。13 は [Enter] のキーコードね。
それで、capybara でどうやってテスト書いたもんかなぁと色々試行錯誤して、@nukusuさんに教えてもらっちゃったりして、できた:
page.execute_script(<<-JS) $("#target").attr("value", "ABC"); $("#target").trigger({type: "keypress", keyCode: "13"}); JS
長いこと懸案事項だったので助かりました。
なんで今までできなかったかというと、jQuery の公式ドキュメントが間違っていたから:
// Create a new jQuery.Event object with specified event properties. var e = jQuery.Event("keydown", { keyCode: 64 }); // trigger an artificial keydown event with keyCode 64 jQuery("body").trigger( e );
keyCode は数値じゃなくて文字列を指定しないといけないのでした。ちゃんちゃん。