- konacha: mochaをrailsで良い感じにするやつ
- mocha: jsをrspecっぽくテストできるやつ(like a jasmine)
- chai: mochaのassertionライブラリ
$ brew install qt
# Gemfile:
group :development, :test do
gem 'capybara-webkit'
gem 'konacha'
end
# config/initializers/konacha.rb:
Konacha.configure do |config|
config.spec_dir = 'spec/javascripts'
config.driver = :webkit
config.stylesheets = %w(application)
end if defined?(Konacha)
# app/assets/javascripts/foo.js.coffee:
class Foo
bar: ->
'bar'
# spec/javascripts/foo_spec.js.coffee:
#= require foo
describe 'Foo', ->
it '#bar', ->
(new Foo).bar().should.equal('bar')
% rake konacha:run
F
Failed: Foo #bar
ReferenceError: Can't find variable: Foo
Finished in 0.00 seconds
1 examples, 1 failed, 0 pending
そりゃそうだ。だってcoffeeだと
(function() {
var Foo;
Foo = (function() {
function Foo() {}
Foo.prototype.bar = function() {
return 'bar';
};
return Foo;
})();
}).call(this);
こうやってグローバグ汚さないように囲われてるんだから。だからといって元々デフォルトOFFだった--bareオプションは今はデフォルトONになってるのでわざわざ外すもの気持ち悪い。
だったら
class @Foo
って書けばいいじゃん。って言ってるんだけどマジで?みんなどうやってるの?
sprockets-commonjsが標準で入ってファイル名にmoduleが必要じゃなきゃいいんだけどなあ。
- capybaraを2.xに上げる
- capybara-webkitが動かなくなる
- poltergeistに移行する
- konacha(mocha)でpoltergeist(phantomjs)が動かない
- capybara-webkitにcapybara2.xで動くバージョンが出る(0.14.0)
- capybara-webkit 0.14.0に上げる
- libqt4-devのバージョンが古くて(4.6)debian squeeze上でコンパイルできない
- debian wheezyに上げて、libqt4-devのバージョンを上げる(4.8)
- jenkins復活

長かった。
「ツールは甘え 本物の男は手書き」
などと言ってますが、俺も毎回ググってるからツール使いたいです。実際。
皆さんはiptablesどうやって設定してますか?
X無しでdebianで動くフロントエンドでおすすめあったら教えてもらえるとありがたいです!
These releases contain two extremely critical security fixes so please update IMMEDIATELY.ってあるので怖話のrailsを3.2.8から3.2.11にupdateしました。
# apt-get install sudo
# adduser username sudo
wheel的なsudo groupが最初からあるのでそれにsudoしたいユーザーを追加しとけばいい。
sudo時のPATHの設定
# visudo
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
セキュリティ上、sudo時専用のPATHを設定するようになってるので上記を追加。/etc/sudoers.d/以下にファイルで追加するのがホントなのかもしれないがわからない。
GALAXY NEXUSからGALAXY S Ⅲ α(SC-03E)に機種変しました。
期末なので経費を使うためにとりあえず俺はAndroid、@machidaさんはiPhone5に。俺もiPhone5に機種変したいとこだけどそうするとホントに誰もAndroid持ってる奴がいなくなって怖話開発に支障が出るのでキープ。
バッテリーが1日持たなくなってたのが辛かったんですがそれが無くなって嬉しい・・・ぐらい?
パズドラを移行する
ちょっと心配でしたがadbで簡単に移行できました。
GALAXY NEXUSをつないで、
% adb backup -f puzzle-and-dragons.ab -apk jp.gungho.pad
GALAXY S Ⅲ αをつないで、
% adb restore puzzle-and-dragons.ab
普通のユーザーにはちょっと敷居高いかもしれないけど開発者にとってはこれほど分かり易いことはない。喜び勇んで早速レアガチャ引いてみたら、

くそがぁああああああ
確かsignal vs noiseで見て最近ちょっと好きな書き方。
Foo.this_is_the_long_method \
awesome_long_argument_name,
fuckin_annoying_long_argument
キモいって人も多いかも。絶対80文字以内じゃなきゃ嫌だってわけじゃないけど、ブログに書く時やスマホで見易いので好き。
API側も自分で作ってる時など、webmockをrequireしてるのに「本当に大丈夫かな?」と実リクエストを飛ばしたい時があるので下記。
WebMock.allow_net_connect!
残したままpushすると大惨事になるので注意が要る。
webmockがmockしてくれない
「webmock使ってるのにresponse bodyが空で帰ってくる」
webmockを勝手にhttp proxy的に捉えてて「おかしいなあ」なんてハマってたんですがwebmockはhttpをmockしてるわけじゃなくて特定のclassをmockしてるだけなんですよね。考えてみれば当たり前なんですがREADMEにちゃんと対応してるライブラリが書いてある。
Supported HTTP libraries
- Net::HTTP and libraries based on Net::HTTP (i.e RightHttpConnection, REST Client, HTTParty)
- HTTPClient
- Patron
- EM-HTTP-Request
- Curb (currently only Curb::Easy)
- Typhoeus (currently only Typhoeus::Hydra)
- Excon
parallel requestが簡単にできるtyphoeusのメソッドの中で、single requestをするpostメソッドとかを使ってたら常にresponse bodyが空。(何故parallel requestのためのライブラリでsingle requestを使ったのか小一時間問い詰めたい > 俺)
ちゃんとTyphoeus::Hydraしか対応してないって書いてありますね。RestClient.postにしたらあっさり動きました。
しかし、コジャレたライブラリにチャレンジしていく姿勢は失わず行きたい!
seleniumはguard時とかにウィンドウ出てきてウザい。capybara-webkitはcapybara2系に対応してない。(reposのheadでは対応してるので次bump upされたら対応されるっぽい)
現時点ではpoltergeist一択っぽい。
ただ、Macでwebfontを読むとphantomjsがcrushするのでpatch当てる。
$ brew install phantomjs
# Gemfile:
group :test do
gem 'poltergeist'
gem 'rack-contrib'
end
# spec/spec_helper.rb:
require 'capybara/poltergeist'
RSpec.configure do |config|
Capybara.javascript_driver = :poltergeist
end
# config/initializers/poltergeist.rb:
if Rails.env.test?
require 'rack/contrib/simple_endpoint'
Rails.application.config.middleware.insert_after Rack::Runtime, Rack::SimpleEndpoint, /\.ttf$/ do |req, res|
ua = req.env['HTTP_USER_AGENT']
if ua =~ /Intel Mac OS X.*PhantomJS/
res.status = 403
"Denying #{req.fullpath} to #{ua}"
else
:pass
end
end
end
これは酷い。
この作業、@mreinschとペアプロでやってたんですがpoltergeistってドイツ語だそうです。ちなみに@hrysdがhidden fieldを「ハイデンフィールド」とドイツ語っぽく呼んでたのでドイツ語で何て言うのか聞いたら、「verstecktes felder」だそうです。全く違いました。どんな言語でも「ハイデンフィールド」は間違いだそうです。
