久しぶりにWindowsのパソコンを入手したので入れたソフト。リビング用なので仕事にはほとんど使わないです。

# config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  if Rails.env.production?     
    provider :twitter, 'xxxxxxxxxxx', 'xxxxxxxxxxxxxxxxxxxx'
  else
    provider :twitter, 'ooooooooooo', 'oooooooooooooooooooo'
  end
end

今まで通りだと動きません。test/test_helper.rbに下記を追加。

require 'shoulda/rails'

今βのshoulda 3.xなら大丈夫なのでもうすぐこれも必要無くなるみたいです。

リビング(ニコ動)用としてマウスコンピューターのLm-AS411Eというヤツを買いました。

デスクトップパソコン|マウスコンピューター BTOパソコンの通販ショップ

Windows7アップグレード版とXP通常版(SP無し)、Vista通常版をもってるのでOS無しにしたんですが、一瞬詰んだかと思いました。

Windows7のアップグレード版をDVDブートした場合は何かしらのWindowsがHDDに入ってないと「プロダクトキーが間違っています。」と出る。(このエラーメッセージは不親切だと思う)

このLm-AS411EはWindows7しかサポートしないと書いてありますが、ホントにWindows XPはインストールできず何度もブートするし、Vistaはドライバーがなくてインストールできない。

(ハードもソフトも製品版をちゃんと買っているのに詰んだか・・・?)

と焦りましたが、アップグレード版をクリーンインストールする方法は有名らしく、こちらを参考にして解決しました。

Windows7アップグレード版からクリーンインストールする方法-GIZAZINE(ギザジン)

「何だよコンチクショウ!」

rails3.1でMySQLからやってくる文字列がASCII-8BITになっているのでto_jsonすると壊れる(to_jsonがencodingを見て処理するので)。sqlite3では起こらない。

環境はSnow Leopard、ruby1.9.2-p290、homebrewで入れたmysql 5.1.54。

% rails new foo
% cd foo
% vi Gemfile
(...)
gem 'mysql'
(...)
% bundle
% vi config/database.yml
(...)
development:
  adapter: mysql
  encoding: utf8
  database: foo_development
  pool: 5
  username: root
  password: 
  host: localhost
  socket: /tmp/mysql.sock
(...)
% rails g model post title:string
% rake db:create
% rake db:migrate
% vi db/seeds.rb
Post.create!(title: 'うんk')
% rake db:seed
% rails c
ruby-1.9.2-p290 :001 > puts Post.first.title
うんk
 => nil 
ruby-1.9.2-p290 :002 > Post.first.title.encoding
 => #<encoding:ascii-8bit>
ruby-1.9.2-p290 :003 > puts Post.first.title.to_json
"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"
 => nil

CentOS 5.6でも同じ。

解決:

mysql gemはruby1.9.1からのencodingに対応してない。だからmysql2を使えば解決でした。

% vi Gemfile
(...)
  gem 'mysql2'
(...)
% vi config/database.yml
(...)
  adapter: mysql2
(...)
% rails c
ruby-1.9.2-p290 :001 > Post.first.title.encoding
 => #<Encoding:UTF-8>

adapterにmysql2と書けるというところが盲点でした・・・。

% node -v  
v0.4.8
% rails -v
Rails 3.1.0
% rails new foo
% cd foo
% vi app/assets/stylesheets/foo.css.scss
body {
  background: image-url("rails.png");
}
% rake assets:precompile
rake aborted!
rails.png isn't precompiled
  (in /Users/komagata/tmp/foo/app/assets/stylesheets/foo.css.scss)

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

何故だろう?

とりあえずはconfig/environments/production.rbconfig.assets.compile = true

にしてLive compileして凌いでいる。

追記:

rails3.1のバグでした。3.1.1を待て。

@kakutaniさんからpull requestが来てたので改めて、holiday_jpについて。

2009年に仕事で必要になって作ったgemです。祝日が必要なソフトウェアは結構あると思いますが、こんな調査に時間を割くのは一人でいいんで共有できればと。

祝日は法律によって増えたり減ったりするので未来に渡って計算で算出することができません。

休日・祝日の定義について

休日は単に休みの日です。祝日は”国民の祝日を定める法律”で規定されるお祝いのための休日です (土日は祝日ではありません)。皇室の祭典を行った大祭日などが元になっています。

立春の日・秋分の日について

また厄介なのが立春の日と秋分の日です。基本的には国立天文台の算出する定気法による日(天体の動き)から決定されるため「ほぼこの日だろう」という日は分かりますが、実際には前年度の2月1日に閣議決定され、官報で告知されるまで確かなことはわかりません。(天文学に基づいて年毎に国家の祝日が決定されるのは世界的に見ても珍しいそうです。)

つまり、「現行法に置いては」という但し書きをつけても、日本の祝日は1年先までしかわからないということです。

「1年毎に誰かがメンテナンスする必要があるのであればgithubとかあるし100年分ぐらいgemの中に持っちゃえばいいじゃん。」

ということでholiday_jpができました。

関連:holiday_jp - 国民の祝日が分かるライブラリ - komagata

Travis CI - Distributed build platform for the Ruby community

ヒャッハー!ruby1.9.3preview1で動かねえところもたまらねえぜ。

iOS Simulator - iPhone / iOS 4.3 (8F192)

Write below If you want to hide address bar on iPhone or Android.

window.scrollTo(0, 1)

Lokkathon #5 : ATND

LokkathonはLokka + Hack + Marathonです。 Lokkaに関する作業をモクモクとするイベントです。会場は用意されますが、Lingrのチャットのみでの参加も可能です。(むしろ推奨)

毎週やってるLokkathon #5、明日もやります。リモート参加も歓迎です。(リモート参加の場合はATND登録しなくて大丈夫です。)腹減るので食べてくるのがオススメです。

成果は毎回下記のようにlokka.orgのエントリーになるのでリモートでも何かやった方はURLとかスクリーンショットをLingrにいただければ載せていきたいと思います。(活動してるプロジェクト感を維持するために・・・)

Lokkathon #3 - Lokka