Travis CIをちゃんと使ってみた

以下の2つのgemにちょっとした変更を加えました。
https://github.com/akm/selectable_attr
https://github.com/akm/selectable_attr_rails

それに伴って、どんな環境で動くのかはっきりさせようと思い、昔ちらっと記事 http://mochizblog.heroku.com/21 を読んで「後でやる」にいつのまにかなっていたTravisCIの設定をちゃんとやってみました。

結果すばらしいことが実感できました。


まず他のgemへの依存のないselectable_attrの方は、rubyの1.8.7, 1.9.2, 1.9.3, ruby-head, jruby, ree でテストを行い、パスできるようにしました。
http://travis-ci.org/#!/akm/selectable_attr


さらにactiverecordなどへの依存がある selectable_attr_railsは、 rubyの1.8.7, 1.9.2, 1.9.3, ruby-head, ree それぞれに対して、activerecord-2.3.14, 3.0.10, 3.1.1 でテスト、つまり5x3=15通りのテストを行ってもらうように設定しました。
http://travis-ci.org/#!/akm/selectable_attr_rails

これ普通に開発環境でテストするとしたら大変ですが、Travis CIならちょっと設定を書くだけでやってくれちゃいます。
すばらしー。

I18n.translateのデフォルトの処理を変更したい

I18nモジュールのtranslateメソッドは、訳が見つからない場合

I18n.t(:foo)
#=> "translation missing: en.foo" 

こんな感じの文字列を返します。

でもそんなん欲しくない場合とかに、i18n-0.6.0では、それぞれのメソッド呼び出しごとに:exception_handlerオプションを指定できるようになりました。
https://github.com/svenfuchs/i18n/commit/2913ff9a7544f223f60e7d7b32c2a0e1af89812b#lib/i18n.rb

I18n.t(:foo, :exception_handler => lambda{|exception, locale, key, options| "bar" })
#=> "bar" 

cucumberでモデル名として日本語も使えるようにpickleを拡張してみた

Railscasts #186 で紹介されているpickleが素晴らしい
http://railscasts.com/episodes/186-pickle-with-cucumber

こんな風にモデルのデータを定義できたりする
https://github.com/akm/pickle_sandbox/blob/master/features/display_products.feature

Feature: Display products
  In order to to purchase the right product
  A customer
  wants to browse products and see detailed infomation

  Scenario: Show product
    Given a product exists with name: "Milk", price: "2.99"
    When I go to the show page for that product
    Then I should see "Milk" within "h1"
    And I should see "2.99"

  Scenario: List products
    Given the following products exist
      | name   | price |
      | Milk   | 2.99  |
      | Puzzle | 8.99  |
    When I go to path "/products"
    Then I should see products table
      | Milk   | $2.99  |
      | Puzzle | $8.99  |
    Then show me the page


でも残念ながらproductを商品と書き換えられなかったので、ちょっと頑張ってみたら、基本的な所はできました。
https://github.com/akm/pickle_sandbox/blob/master/features/display_products_ja.feature

# -*- encoding: utf-8 -*-
#language:ja

@focus
機能: 商品を表示する
  ただしい商品を買うために
  顧客
  が商品をブラウズして詳細な情報を見たい

  シナリオ: 商品を表示する
    前提 次の商品が存在する 名称: "Milk", 価格: "2.99"
    もし "the show page for that product"ページを表示する
    ならば "h1"に"Milk"と表示されていること
    かつ "2.99"と表示されていること

  シナリオ: 商品一覧を表示する
    前提 以下の商品sが存在する
      | 名称   | 価格 |
      | Milk   | 2.99  |
      | Puzzle | 8.99  |
    もし "パス/products"ページを表示する
    ならば 以下の商品テーブルが表示されること
      | Milk   | $2.99  |
      | Puzzle | $8.99  |
    かつ 画面を目視

商品s をなんとかしたいw

近いうちに必要な機能を揃えてgemにする予定。

CentOS 5.5 でデーモン終了時のスクリプト

/etc/rc0.d/K??xx とか /etc/rc6.d/K??xxx で終了時に処理を実行させたい場合、単にsymlinkを貼るだけではだめで、デーモン起動時に /var/lock/subsys/ に デーモン名のファイルをtouchしないといけないみたい。詳しくは /etc/rc.d/rc にその辺がかいてあるはず。

CentOS 5.5 に ruby 1.9.2-p180 とか

VMware Fusion2で RedHat Enterprise Linux 5(64bit) を選んでisoからインストール。
ユーザー作ってsudoで権限を与えて以下のコマンド実行。

    3  sudo yum groupinstall 'Development Tools'
    4  yum search openssl
    5  sudo yum install readline-devel openssl-devel
    6  mkdir archives
    7  cd archives/
    8  wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p180.tar.gz
    9  tar zxf ruby-1.9.2-p180.tar.gz 
   10  cd ruby-1.9.2-p180
   11  ./configure && make
   12  sudo make install > make_install.log
   13  ruby -v
   14  sudo yum install emacs

地震関係のサイト

Google Crisis Response

http://goo.gl/saigai
警報・注意報、災害掲示板、避難所情報、交通機関の運行状況、計画停電などのライフライン、Person Finder、日本赤十字への募金など

東北沖地震 震災情報サイト sinsai.info

http://www.sinsai.info/ushahidi/

Twitter地震情報

http://twinavi.jp/news/detail/12381
東北関東大震災」について、現状のツイッター関連の情報や使い方の注意点をお伝えします!

jaws-ug

http://jaws-ug.jp/ #jawsug
日本のAWSのユーザーグループの皆さんが超頑張ってます。RTと書かずには公式のリツイートで!
手伝える人は @KenTamagawa にご連絡を。

「生きろ日本。被災地での生活で作れるデザイン/飲食料/アイデアwiki

https://sites.google.com/site/olivesoce/