tmpフォルダがないと言われてRSpecのテストが落ちる

ローカルでうまくいってたのに、Circle CI上だと失敗した。
tmp/を消してみるとローカルでもダメだった。

Errno::ENOENT:
       No such file or directory @ dir_initialize - /home/ubuntu/blog/tmp/cache/

と言われる。

before {}Rails.cache.clearしてたのが原因だった。

confing/environments/test.rb

config.cache_store = :memory_store

を追記して解消。

:null_storeってのもあるけど、これは何もキャッシュしないので、キャッシュ起因の不具合がテストで発覚しないと思う。

ガイドはこの辺り。
http://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-memorystore

CoffeeScriptのメソッド呼び出しのカッコを忘れる問題

if obj.is_foo

みたいに書いてしまって、ifの中が常に実行されて「あれー?」ってなる。
悲しい。

Far-future Expires Header

このリソースはもうずっと変わらないから長い間キャッシュしちゃっていいよ、という設定。

Railsだと、Assets PipelineがユニークなURLを吐いてくれるので、手抜きサイトでも設定しておくべき。

公式のガイドにも普通に書いてある。

Powは定期的に遅くなる?

PowはZero-configurationを謳っているけど、デフォルトだと定期的に遅くなる。
僕も使い始めた当初、そこに不満を持っていた。

これは定期的にプロセスが再起動されるためで、この挙動は設定で簡単に変えることができる。

# ~/.powconfig 
export POW_TIMEOUT=86400
$ touch ~/.pow/restart.txt

例えばこうすれば、1日再起動されなくなるので快適になる。
(再起動したい時はプロジェクトのディレクトリで$ touch tmp/restart.txtすればいい)

デフォルト15分は短い気がするなー。

MicloがMOONGIFTに載ってた

ちょっと前に作った、MicloがMOONGIFTさんに紹介されてた。

Miclo - ソーシャルメディアのようにタイムラインで残すメモ MOONGIFT

これは嬉しい。ありがとうございます。