dm-validations-i18n.gem version 0.3.9 released.

This gem can localize error messages for dm-validations.

I made it, because dm-core or dm-validations are not have localized error messages, and authors of them will not provide them.

The gem supports locales en, ja, ru, zh-CN and zh-TW. These locales made by  gugods, makevoid and others in several countries. I really appreciated their works.

production環境ではexception_notificationでエラーをメールしてる人も多い思います。(AirBreakとかも)

怖話でもそうやってエラーメールが一通も来ない状態にしたいんですが、例えば下記のような”バグじゃないエラー”は皆様どうやって対応してるんでしょう?

A ActionView::MissingTemplate occurred in home#index:

 Missing template home/index, application/index with {:handlers=>[:erb, :builder, :haml], :formats=>["*/*;q=0.01"], :locale=>[:ja, :ja]}. Searched

formatsに*/*;q=0.01なんて文字列を送ってくるのは単なるスパム。使ってるformatだけに限定するように何か書く?うーん・・・。

CoreServicesUIAgent

$ defaults write com.apple.LaunchServices LSQuarantine -bool NO
$ reboot

最近(精神的な)調子が悪いのでOSをLionにしました。

DVDに焼いたり、Bootable USBを作ったりなんだりして予想通りグダグダと余計な時間を取られました。クリーンインストールしたい方で特に拘りがない方はコレを買うのが時間もかからず楽だと思います。

OS X Lion USBメモリ版 - Apple Store (Japan)

OS X Lion USBメモリ版 - Apple Store (Japan)

Aquaの水滴っぽいデザインが鳴りを潜め、凹凸の減ったUIが気分良いです。

一番嬉しかったのはSystem localeをenにしてる時でも今まではTime Zoneが日本であれば時計が日本語表示だったんですが、それがSystem locale依存になったところです。

SystemUIServer

Screencastとか撮ってる時気になってたんですよね。

Terminal — zsh — 80×24

$ touch ~/.hushlogin

Terminal — zsh — 80×24

Microsoft Arc Keyboard英語版を手に入れましたが、Google日本語入力でちょっと苦戦。

US配列として認識させる

下記の通りでOK。

Windows 7 で英語キーボードを使って日本語を入力する - バイナリアンを目指して

Alt + Spaceで入力切替

下記の素晴らしいアプリで解決。

CmdSpace(Ver 1.1.0)

今までMacと行ったり来たりする時に配列違いでちょいウザだったんですがこれでスッキリしました。

家のWindows PC用に「無線でUS配列のテンキーの無いキーボード」が欲しいと思ったんですが、これが意外と無い。

結論から言うとMicrosoft Arc KeyboardをAmazon.comから買った。

Amazon.comでしか買えないので個人輸入・転送サービスのスピアネットという転送サービスを使った。

転送サービスとは、要はアメリカ国内どっかの住所が割り当てられて、そこを郵送先として普通にAmazon.comで物を買う。そうすると転送サービスからメールが来るので日本の住所に手数料を払って更に郵送してもらうというもの。

上記のサイトでは手数料は$9ぐらい。サービスの使い方は相当にわかり辛いし、サイトは怪しいので一般の方にはお勧めできませんが、一回買ってみればやり方がわかるので今後もちょくちょく使ってみるつもりです。

20%ぐらい「買ったものが届かず、金だけ取られても仕方ないか」という気持ちで使えばなかなか便利だと思います。

$ rails c
>> Story.last.previous
=> #<Story id: 1, title: "パンドラ(禁后)", body: "私の故郷に伝わっていた「禁后」というものにまつわる話です。\nどう読むのかは最後までわかりませんでしたが...", view: 0, user_id: 1, created_at: "2011-11-25 08:48:33", updated_at: "2011-11-25 08:48:33", comments_count: 0, scares_count: 0>

バグ報告からふとActiveRecordで使えるpreviousメソッドってどこからきてるんだろう?と思ってgemsをgrepしてみるも見当たらず。

┐(´ー`)┌「これだからメタプログラミングってやつは・・・」.

Twitter / @irohiroki: @komagata Method#source_lo ...

なんですと!よし、場所を探り当ててやる!

>> Story.last.method(:previous).source_location
=> ["/Users/komagata/code/kowabana-jp/app/models/story.rb", 38]

( ゚д゚)

(つд⊂)ゴシゴシ

# app/models/story.rb:
class Story < ActiveRecord::Base
  def previous
    Story.where('id < ?', id).order('id').limit(1).last
  end
end

(((((((( ;゚Д゚)))))))

自分で普通にmodelに定義してた。

因みに複数人開発で他人が実装したとかではなく、紛れも無く俺が実装したメソッドである。おまけにテストも書いてある。

何故このような自体が発生したのか。それはメソッド名が自然過ぎたか、俺がアルツハイマーか、もしくはその両方である。

Lokkaはまだgemになってません。(gem branch開発者絶賛募集中!)

なので最新版にアップデートするにはlokkaのリポジトリからpullしてこなきゃいけない。(一応新しいバージョンリリース時にtag打ってるのでmasterよりはtagからの方が安全かも?)

よくある構成

  • githubに自分のブログ用リポジトリを持ってる。
  • herokuにそのブログをアップしてる。

僕のこのブログもdocs-komagata-orgというリポジトリ名でgithub, herokuにアップしてます。そういう場合はlokkaというremoteリポジトリ名で本家を追加しておくと楽です。

~/code/docs-komagata-org[master]% cat .git/config 
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
[remote "origin"]
	url = git@github.com:komagata/docs-komagata-org.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[remote "lokka"]
	fetch = +refs/heads/*:refs/remotes/origin/*
	url = git@github.com:komagata/lokka.git
[remote "heroku"]
	url = git@heroku.com:docs-komagata-org.git
	fetch = +refs/heads/*:refs/remotes/heroku/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

こんな感じ。最新版に追従したいなという時にgit pull lokka masterすると追いつけるし、自分のテーマいじってただけのハズがいつの間にか本体いじってた時は本体にpushできる。herokuにアップしたい場合はgit push heroku master

最新版にしたらいきなり動かないという場合は、DBスキーマに変更があった場合が多いので、下記をすると動くかもしれません。

$ bundle exec rake db:migrate

Lokkaをrails consoleの様に使う。

Terminal — ruby — 80×24