223 Software

主に勉強したことなどを記録するログです。 最近はRuby, Railsなどが多め。

yokohamarb - 223 Software

Yokohama.rb 第13回に参加しました

もう何回目になったのかあまり覚えていませんが参加してきました。

発表(転職とコミュニティ)

今回は発表の時間を頂いたので転職活動を通じて感じたことなどを発表してきました。
技術的なネタも一応考えてはみたのですが、転職ラッシュの今しか話せないかな、と思いこのネタです。

  • 資料
  • 動画 (miyohideさん、ありがとうございます)

質疑応答でもお話ししたのですが、決して転職という選択肢が全員にとって良いものとは限りません。現在転職を検討されている方も、ぜひ慎重にじっくりと考えて欲しいと思います。

Yokohama.rbメンバーはちょうど転職ラッシュの最中です。みなさんがよりよい仕事に就けるよう応援したいと思っています。

レシピブック読書会

この本をみんなで読み進めています。

これが予想以上に濃いんですよね。一人で読んでいると読み飛ばしてしまうようなところまで、深く掘り下げることができます。

少し読んではコードを書き、議論し、そしてまた進むという。

まさに初心者にとっても上級者にとっても面白い企画になっていると思います。

スティーブ・ジョブズの演説

追悼として、伝説のスピーチとされるスティーブ・ジョブズのスタンフォード大学での卒業式式辞をみんなで鑑賞しました。

http://www.youtube.com/watch?v=OaMT8fZpEXA

僕は今回初めてこの動画を見たのですが、「点をつなげること」、「愛と喪失」、「死について」いずれのテーマも経験に基づいた話で、非常に勇気づけられ、背中を押してもらえるような内容でした。

  • 「今日で死ぬとしたら、今日は本当にすべきことをするのか。その答えがNoである日が続くようなら、何かを変える時だ。」
  • 「他人の人生を生きないこと」

何かを決断するとき、勇気をもらえそうな言葉ですね。

ところで、転職の話題の後でこの動画を見るとうっかり転職してしまいそうな人が多発しそうです・・・。

TDDBC横浜

TDDBC横浜 にスタッフとして参加することにしました。
うちから会場まで1時間半以上かかってしまい結構遠いのですが、いつも定員オーバーでなかなか参加することのできないTDDBCに確実に参加するチャンスでもあると思いますし。

幸い業務でrspecを使用していますが、この機会にrspecの復習をしておきたいと思います。

HerokuでRails3.1(RC1)を動かす方法

Yokohama.rb 第9回に参加してきました。
その場でRails3.1をherokuで動かそうというニーズがあったので、ざっとまとめます。

ポイント(2011-06-05版)

  • まだ3.1.0はrcなので、rvmのgemset機能を使っておこう
  • pgとtherubyracer-herokuをGemfileの:productionに追加する
  • rakeは現時点では0.8.7をバージョン指定しておくほうが無難
  • herokuのstackをbamboo-mri-1.9.2を使っておこう

手順

Rails 3.1.0 RC1のインストール&アプリ生成
$ rvm gemset create rails31
$ rvm use 1.9.2@rails31 # もちろんrubyは1.9.2使ってますよね?
$ gem install rails --pre --version 3.1.0.rc1
$ rails new blog # とりあえずblogで

もしターミナルを閉じてしまうとまたgemsetがデフォルトのものを使うように戻ってしまうのですが、プロジェクトのルートに.rvmrcを置いておくと、毎回 rvm use を打つ必要はありません。

.rvmrcの中身

rvm use 1.9.2@rails31

これで、プロジェクトのディレクトリにcdしたときに、自動的にgemsetが切り替わります。

このへんで一回gitにコミットしておきましょう。

$ git init
$ git add .
$ git commit -m 'initial commit'
herokuで動かすために必要なgemを追加する

Gemfileはこんな感じになります。

source 'http://rubygems.org'

gem 'rails', '3.1.0.rc1'
gem 'sass'
gem 'coffee-script'
gem 'uglifier'
gem 'jquery-rails'
gem 'rake', '0.8.7'

group :production do
  gem 'pg'
  gem 'therubyracer-heroku'
end

group :development do
  gem 'sqlite3'
end

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

さてbundleしますが、普通にbundleと打つと、:productionに指定してあるpgやtherubyracer-herokuもインストールしようとしてしまいます。
ローカルにPostgreSQLが入っているのならいいと思いますが、そうではない場合は:productionのgemを除外してインストールすることができます。

$ bundle --without production
$ bundle update rake # rakeのバージョンが0.9.1が入っているので、これを打つように言われる
$ git commit -am 'modify Gemfile'
適当なアプリをでっち上げる
$ rails generate scaffold post title:string body:text
$ bundle exec rake db:migrate
$ rails server  # 一応ローカルでも動作確認
$ git add .
$ git commit -m 'scaffold post'
herokuにデプロイしよう
$ gem install heroku
$ heroku create [適当なアプリ名] --stack bamboo-mri-1.9.2
$ git push heroku master
$ heroku rake db:migrate
$ heroku open

これで無事にデプロイできたはずです。お疲れさまでした。

heroku createの行の--stackオプションですが、本当なら6/1以降はデフォルトでbamboo-mri-1.9.2になるそうです。
Yokohama.rbで試したところまだ1.8.7の方で作られてしまいましたので、明示的に指定しています。

rakeのあたりとかちょっと気持ち悪いですが、もっとうまい方法があれば教えてください。
あとはRC1版で試していますので、バージョンが変わると上記の方法でできなくなるかもしれませんのでご注意ください。