はじめるRails3(2)の写経メモ。
ようやく9章と10章のRails Consoleを抜けた。

今日は、11.1のタスクのカテゴリ情報をセレクトボックスの中に表示するところをやった。
途中 each do を each.do ってtypoしていてうんうん唸っていた。

GitHubにもひさしぶりにpushした。
commit log

ちょっと停滞してたのでまた淡々と写経していくぞー。

Lion(10.7)にRVM入れてRailsの環境を作る

LionにRVM入れて Railsの環境を作るときのメモを残しておく。
rbenv+ruby-buildってのがイケてるらしい(こことかこことか参考)ので試してみたいのだけれど、環境作ってばかりで写経が進まないとか本末転倒なのでしばらくはRVMで。

  1. xcode入れる
    MacAppStoreから落としてきてインストール
  2. RVMのインストール
    ターミナルで、このコマンドを実行する。

    $ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
    
  3. パスを通す
    ターミナル開いて、.bash_profile をつくって(あれば追記)

    if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi
    

    を書いて保存して、ターミナル再起動。そしたらrvmコマンドが使えるようになる。

  4. インストールできる環境一覧
    $ rvm list known

    で表示。

  5. rubyのインストール
    $ rvm install ruby-1.9.2

    してみる。

    Install of ruby-1.9.2-p290 - #complete 

    5分くらいでインストールがおわった。(1.9.3を入れようとしたらエラーになったのでそうそうに諦めた)

  6. RVMのrubyを利用する
    $ ruby -v

    すると、今は

    ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]

    となるけど、

    $ rvm use 1.9.2

    とすると、

    $ ruby -v
    ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]
    

    1.9.2になる。さらに、

    $ rvm use 1.9.2 --default

    これをデフォルトにしておけば、毎回指定しなおす必要がない。

  7. gemset ってのを作る
    rails30ってgemsetをつくる(Rails3.0系って意味で)

    $ rvm gemset create rails30
    

    先ほどインストールしたruby1.9.2とrails30の組み合わせをデフォルトにする

    $ rvm 1.9.2@rails30 --default
    

    確認

    $ rvm gemset list
       global
    => rails30
    
  8. railsのインストール
    $ gem install rails -v 3.0.10

    参考書のバージョンが3.0系なのでバージョン指定で。
    インストールはじまるまでに5分くらい無反応で心配になったけど、無事完了。

  9. 動作確認
  10. 適当なアプリケーションをscaffoldで作ってみて動作確認

    $ rails new test
    $ cd test
    $ rails g scaffold Post title:string body:text
    

    scaffoldしようとしたら、

    Could not find gem 'sqlite3 (>= 0) ruby' in any of the gem sources listed in your Gemfile.
    Run `bundle install` to install missing gems.
    

    っていわれたので

    $ bundle install

    いろいろインストールされた

    もういっかい

    $ rails g scaffold Post title:string body:text

    今度はscaffoldできた。

    最後にmigrateして、サーバー起動

    $ rake db:migrate
    $ rails s
    

    で、localhost:3000/posts にアクセスして動作してれば完了。

    おわり。

KeyRemap4MacBookの設定メモ

今現在のKeyRemap4MacBookの設定状況

今日もキーボードのカスタマイズで悩んでる。

USキーボードで、かな、英数切り替えをスペース左右のcommandキーに割り当ててるんだけど、切り替え後に間髪入れずにpとか打つと、プリントダイアログ(command+p扱い)がたまに出てきて困る。

USキーボードだとcommand+spaceで入力モードを切り替えるのが標準だけど、今どちらの入力モードになってるかわかんないよね?覚えておかないといけないの?覚えておくのめんどくさい。

MBAの写経の成果をherokuにpush

以前書いた自分の記事を参考にしながら、MBAからもherokuにpushできるようにしてみる。

まず homebrew いれる

$ /usr/bin/ruby -e \"$(curl -fsSL https://raw.github.com/gist/323731)\"

homebrewで、postgresいれる

$ brew install postgresql

heroku コマンドのインストール

$ gem install heroku

SSH鍵の作成

$ ssh-keygen

途中何回か質問されるけど、全部enter

Found the following SSH public keys:
1) github_rsa.pub
2) id_rsa.pub

って聞かれたので、id_rsa.pub の2を選んでenter

すでにつくってあるプロジェクトにpush する方法がわからないので、新規のプロジェクト作ってそこにpushしてみる

$ heroku create

で、プロジェクト作成して、push

$ git push heroku master

で、デプロイ。

デプロイ終わったら、DBの接続情報を確認

$ heroku console
>> ENV[\'DATABASE_URL\']
=> \"postgres://yyyyyyyy:xxxxxxxxxxxxxxxxxxxx@ec2-xxx-xx-xxx-xx.compute-x.amazonaws.com/yyyyyyyy\"
>> exit

config/database.ymlを編集してコミットして再度push

$ git push heroku master
$ heroku rake db:migrate

よくわかってないけど、これで無事動いた。

よくわらかないことが1点

GitHub for Mac でコミットしたあとに、heroku push すると、GitHubにもコミットしたような扱いになってて?Historyに表示されるんだけど、GitHubを見に行ってもそんな履歴はない・・・。

いや違う。ちゃんと乗ってた。
GitHub for Macでコミットしたあとに、heroku pushすると、しばらくしてGitHubにもpushされてる?

うーーん、よくわからない。
GitHubからcloneしたから??

ToDo

  • ↑のよくわからない点について誰かに聞く
  • 既存のプロジェクトへのpushする方法

GitHub for Macで、初clone to computer

MacBookAirのローカルにRVM + Railsな環境ができたので、GitHubにあげてるレポジトリをコピーしてきて写経の続きをできるようにする。

  • gitのインストール
    Gitのサイトからdmgをダウンロードしてインストール。git コマンドが使えるようになる
  • GitHub for Mac をインストール
  • GitHub for Mac で、リポジトリをclone to computer する。
  • cloneしたディレクトリで、rake db:reset したあとに、rails s
  • 無事動作しているのを確認

そういうえば、途中で bundle install するように言われた気もするな。
ともかく、これで写経の続きができるようになった。

あとは、herokuにpushする設定かな。

KeyRemap4MacBookで親指の負担を軽減

ホームポジションからできるだけ手を動かさないようにすると、コマンドキーを押すとき左親指をぐいっと手のひらの下に押しこむ形になるので、親指の付け根が痛くなってきた。

極力親指の出番が減るように設定をかえてみよう。そうしよう。

  • KeyRemap4MacBook

    • (親指に優しい)使ってない右shiftをコマンドに割り当てて、右小指の出番を増やす
    • (親指に優しい)control+c,v,x でコピペ、切り取りできるようにしてコマンド使わない
    • control+p,b,n,f でカーソルの移動
    • control+j でenter
  • 設定不要で使えるやつ

    • control+a,e で行頭、行末へ移動
    • control+d,h でDelete,Backspace

あとはVimiumも併用すれば大分親指の出番が減るはず。
まだ癖で親指使っちゃうときあるけど、慣れていこう。

■追記
結局、control+c,v,xはすぐにやめてしまった。
ターミナルでcontrol+cが使えなくなって、railsのサーバーを停止できなくなったので。
右shiftをコマンドに置き換えているので、こちらを活用するようにしよう・・・。

■さらに追記
ターミナルの場合はcontrol+c,v,xを無効にできる版も用意されてた。

Except in Terminal,VM,RDC,Emacs,X11,Eclipseって書いてある方がそれ。
ということでこのショートカット復活。

MBAセットアップメモ

  • ずっと避けていたんだけど、iCloudがどうもわからない。分かったようで全然分からない。
    カレンダーとアドレスブックはiCloud経由で同期できたんだけど、メモがよくわからん。Mailと同期できるの?
  • SSDだと容量が気になっちゃうので、音楽データを整理。聞かない奴は外付HDDへ。音楽データもiCloudに任せたいなー。
  • アプリの並びがぐちゃぐちゃになってしまったけど、iPhoneの母艦変更はこれで完了かな。

雑記

  • vimium

    • ページ内検索が日本語扱えない?Vromeは対応してる。
    • タブの切り替えをJ,Kでやるの、だいぶ慣れてきた。
  • キーボード。職場は日本語配列、家はUS配列で色々慣れない。

    • US配列のほうがcommandキーを押しやすい。日本語キーボードは親指への負担が大きい。
    • keyremapで右shiftをcommandに割り当ててみた。慣れるかなー。
  • 刺身さんに教えてもらった zipコマンド便利。
    Macでパスワード付きzipをつくるために、アプリケーションインストールする必要なかった。

    • $ zip -e -r bbb.zip aaa
    • aaaってディレクトリをbbb.zipって名前でパス付きで圧縮する、という意味。
    • [-e]は暗号化、[-r]はディレクトリ。
    • そういえばパス付きのzipも標準のArchive Utilityで解凍できるようになってた。Lionからかな?
  • 今日のBGM

    • ルーキー、ホーリーダンス / サカナクション

MBAセットアップの続き

引き続きセットアップ中。今日はDivvyインストールから。
Divvyは手放せなくなったツールの一つで、ウィンドウサイズをキーボードだけで変更できる。

呼び出しはctrl+shift+space を割り当ててる。
以下のショートカットを設定して画面を有効活用。

  • F→全画面
  • Q→左半分
  • W→右半分
  • A→左上1/4
  • Z→左下1/4
  • S→右上1/4
  • X→右下1/4

お次はclipMenuインストール。
ショートカットはcommand+option+vに。

Vimiumおさらい

Vimiumのショートカットを改めて見てみる。大文字の場合はshfit押しながらって意味。

  • j,k,l,m 移動
  • H,L 戻る、進む
  • J,K タブの切替
    • ただしChromeのホーム画面(タブ立ち上げたら出てくるAppsの画面)などはショートカット効かなくなるので注意
  • t 新しいタブを立ち上げ
  • x タブ閉じる
  • f リンクをキーボードでたどる(新規タブで開くならF)
  • b ブラウザのブックマークを検索(新規タブで開くならB)
  • yy アドレスバーのURLをコピー

かいものメモ

MBAのケース「LaptopDiverL Air13 」ってやつを ZOZOで注文した。
Amazonにもあったけど、ZOZOのほうがセール中で安かった。

Mac(Lion)で作ったRailsアプリ(sqlite使用)をherokuで公開する

勉強がてら手元のMacでRailsアプリを作ってるんだけど、作ったからにはworld wide webへ公開したい。
最初はdotcloudで公開しようとしたんだけど挫折したので、herokuでチャレンジしてみることに。

ところがherokuはpostgreSQLしか(?)使えないので、単純にpushしただけではこちらも動かなかった。
刺身さんの手助けを得ながらherokuで公開することができたので、手順を忘れないようにメモっておく。

ほぼmizzyさんが社内のwikiにまとめてくださってたやつです。
なんかパクってごめんなさい。。。

手元の環境

  • OS: Lion
  • ruby: 1.9.2p290
  • Rails: 3.0.10

Railsアプリのディレクトリ直下にある Gemfile の最後に追記

group :production do
  gem 'pg'
end

bundle updateするために必要らしいので、postgresql をインストールする。
homebrewを使ってインストール。5分もかからず終わった。

$ brew install postgresql

終わったら、bundle update を実行

$ bundle update

で、一旦コミット&デプロイする。

最近インストールした GitHub for Macが使いやすいので、こちらでコミット。
herokuへのデプロイはコマンドラインで。

$ git push heroku master

おわったら heroku console というコマンドでデータベースの接続情報を確認

$ heroku console
>> ENV['DATABASE_URL']
=> "postgres://yyyyyyyy:xxxxxxxxxxxxxxxxxxxx@ec2-xxx-xx-xxx-xx.compute-x.amazonaws.com/yyyyyyyy"
>> exit

yyyyyyyy、xxxxxxxxxxxxxxxxxxxxな部分はユーザー毎に違う。

データベースの情報を config/database.yml で設定する。

production:
  adapter: pg
  database: yyyyyyyy
  username: yyyyyyyy
  password: xxxxxxxxxxxxxxxxxxxx
  host: ec2-xxx-xx-xxx-xx.compute-x.amazonaws.com

host部分もユーザーごとに違うのかもしれないので要確認。

編集した内容をコミット&デプロイする。

コミットはGitHub for Macで。かわいいよ、GitHub for Mac。
デプロイはターミナルで。かわいいよ。ターミナル。

$ git push heroku master

最後に、migrate。
migrateってのが何なのかわかってないけど、データベーススキーマを流し込むということをやってるらしい。

$ heroku rake db:migrate

以上で割り当てられたURLへアクセスすれば、動作するアプリケーションのページが表示された。

刺身さんmizzyさんに感謝!