Sooey

2013-12-07 15:49:25 +0900

rack-mini-profiler 0.9.0.preの話。

Railsアプリで使っているrack-mini-profilerの設定を変更して、

  • デフォルトでは無効
  • URLに?pp=enabledを付ければ以降のセッション中は有効

という挙動にするため、GitHub上にあるREADMEのConfiguration Optionsを参考にconfig/initalizers/mini_profiler.rb

# Have Rack::MiniProfiler start disabled - you can use query string option to re-enable later
Rack::MiniProfiler.config.enabled = false

と記述してみたところ、

NoMethodError: undefined method `enabled=' for #<Rack::MiniProfiler::Config:0x007ff12a1305b0>

と例外が発生してしまう。

ソースコードをよく見てみるとHEADのREADMEで言及されているオプションは2013年12月5日にリリースされた0.9.0.preから利用可能になったもののようで、今のところのstable releaseである0.1.31では使えないみたい。

なので、Gemfileを

gem 'rack-mini-profiler', '0.9.0.pre'

と書き換えて最新版を使うようにしたことで、上記の設定が使えるようになった。

2013-12-04 22:41:43 +0900

Bundlerでgemに固有のビルドオプションを指定する方法。

libv8を利用しているRailsアプリケーションで、Mavericksにしてから改めてgemのビルド&インストールを行おうとすると(Mountain Lion時代にビルドしたgemが使えている限りはおそらく問題に遭遇しない)、libv8のビルドがこんな感じで失敗する。

Installing libv8 (3.11.8.13)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/juno/.rbenv/versions/1.9.3-p484/bin/ruby extconf.rb
creating Makefile
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
Using compiler: g++

(snip)

Gem files will remain installed in /Users/juno/src/railsapp/vendor/bundle/ruby/1.9.1/gems/libv8-3.11.8.13 for inspection.
Results logged to /Users/juno/src/railsapp/vendor/bundle/ruby/1.9.1/gems/libv8-3.11.8.13/ext/libv8/gem_make.out

Mavericks上でlibv8のビルドを成功させるには、

$ gem install libv8 -v '3.11.8.17' -- --with-system-v8

というように--with-system-v8オプションを指定すればいいのだけど、Railsアプリでbundle installした時のインストール先をbundle install --path vendor/bundleのようにプロジェクトローカルなパスに指定している場合、普通にgem installしたgemは参照することができない。

そこで、bundle installした時にもgemに固有のビルドオプションを指定する方法を調べていたところ、あらかじめbundle configコマンドで設定しておけばよいことがわかった。

最終的に、Mavericksでlibv8をbundle installで正しくビルド&インストールするには以下のようにすればOKだった。

$ bundle config build.libv8 --with-system-v8
$ bundle install --path vendor/bundle

2013-12-03 12:08:36 +0900

サイトデザインをリニューアルする際に「旧デザインと較べてどうか」という手法をとるのはよくない、という話。

Jason Fried曰く、

  • 旧デザインが作成されてから、事態がそれほど変化していないのであれば比較には意味がある
  • 比較をすることでどうしても旧デザインの影響が出てしまう
  • それなりに時間が経過して新しいデータが集まっていたり新しいゴールが設定されているのであれば、「新デザインが何のために、何を目指して」行われているのかを知ることから始めたほうがよい

とのこと。

2013-11-19 17:46:07 +0900

Postgres.appを9.2から9.3にアップデートした。

データベースの移行は以下のgistのような手順で行った。今回からアプリケーション名がPostgres93.appに変更になっているため、データベースファイルのパスなどもこれまでとちょっと違う。