さくらレンタルサーバ:スタンダードプランでRVMのインストール

さくらレンタルサーバのスタンダードプランで、RVMのインストールに四苦八苦して…
やっと出来ました!(´;ω;`)(※数ヵ月越…

スタンダードプランでは

  • sshは使える
  • MySQLは使える
  • 自分が持てるのは、/home/ユーザ名のディレクトリ以下

インストールの流れ

1.まずはRVMを落としてインストール

普段通りに、

 bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

とコマンドを打つと、

mkdir: cannot create directory `/usr/local/rvm': Permission denied

と怒られてしまって、進みません。


しかし、そのディレクトリ(ホームディレクトリ)をlsでよくみると、
rvm-installerと.rvmrcというファイルが増えています。


さっきの、"/user/local/rvmにはフォルダが作れません!"というエラーは、.rvmrcにこのパスが指定されているからなので、

export rvm_path="$HOME/rvm"

等、自分がアクセスできる場所を指定します。


その後、rvm-installerを実行します。
(そのファイルまでの全パスを打って、エンターで実行されます)


※注意

  • この時に、Gitのpathが通ってないとインストールがうまくいきません。

Gitを$HOME/localにいれた場合の、.bashrcの記述

PATH=$PATH:$HOME/local/bin
export PATH = $HOME/local/:$PATH
2.パスを設定する

installが実行されると、色んなメッセージが表示されますが、「この部分を設定ファイルに書きこんでね」とパスが表示されるので、.bash_profileに書き込みます。
(ここら辺は通常の流れと一緒ですね)


こんな感じ

if [[ -s /home/◯◯/.rvm/scripts/rvm ]] ; then source /home/◯◯/.rvm/scripts/rvm ; fi


source .bash_profile
をして適用させたら、rvmと打つと、バーッと何か表示されるはずです。
command not foundじゃないはずです。

RVMインストール完了です!!(*´ω`*)

追記(2011/09/04)

RVMインストール完了後
  1. 忘れずに、rvm install ruby-1.9.2でRubyを入れる
  2. rvm use ruby-1.9.2 --defaultで常に使うRubyを設定する
  3. rvm gemset create hogeでgemsetを作る

rvm gemset create hogeしたのに、rvm gemset listで表示されてない!?と思って焦ったら…
ただ、これだけのことでした…(´・ω・`)

つまりは今回のみそ

  • "cannot create directory"と怒られても、ホームディレクトリにある.rvmrcのpathを変更すれば大丈夫
  • 予め、Gitのインストールとpathの設定が必要
  • shellの設定ファイルにRVMのpathの設定することを忘れずに


RVMがうまく入らず、無しで何とかやっていたところ、gemのバージョンでエラーが大量に出たり、大変なことになってしまったので、もう一回挑戦してみました…
コマンド打つときのpath指定で、やってみる方法もあったのですが、結局うまくいかず、.rvmrcに記述したらすんなり行きました…げっそり…


間違い・コメントなどありましたら、どしどしお寄せください!

参考サイト様

Chrome+HTML5 Conference

抽選に当たりました!ヾ(*´∀`*)ノ
行ってきました〜!
http://events.html5-developers.jp/conference/2011/08/


ハンズオンの方は残念ながら、落選してしまったので、プログラマートラックの方に居座り続けました。


youtubeの方に録画が残っています。
http://www.youtube.com/watch?v=ULLYD3kyynI

追記(2011/09/01)

資料や動画一覧が公開されています!
http://events.html5-developers.jp/conference/2011/08/program.html

Chrome Web Store入門(あんどうやすし様)

  • Chrome内ではインストール≠ブックマーク
    • 同じ理屈で動いていても、ユーザに取っては違うものに見える
アプリの種類
  • Hosted App
    • サーバー上でホストされる普通のウェブアプリ
  • Packaged App
    • サーバーがいらない。
    • リソース一式+manifest.json
    • Chrome拡張APIが利用可能
    • ネットワーク接続不要
    • Chrome限定で動作
    • Web Storeの提供する方式では認可は不可
    • Chrome Web Storeの提供する方式では課金が不可
manifest.jsはなぜ重要か
  • ウェブページとウェブアプリをブラウザが区別できるようになる可能性
  • ユーザが適切なウェブアプリを見つけ出す手段
課金の方式
    • ワンタイム課金
    • 月額・年額課金
    • アプリ内課金
      • すべてフリートライアルあり

Debugging on Chrome Developer Tools!(北村様)

メトロノームのデモ

http://demo.agektmr.com/metronome/

  • 画像が一切使われていない!
HTML5のfont
  • インターネットからダイナミックにフォントを持ってきて利用することが出来る
Chrome Dev Tools
  • Dev Tools自体がHTML5で作られている
  • CSSやJSの変更を保存する事が出来る
    • 変更した分履歴(バージョン?)が保存されるので、revertしたりすることが出来る
  • Tips
    • Firebug Command API
    • firebugとの連携が出来る
      • $0 今エレメントパネルの中で選択しているエレメント 
      • $0.styleなど打つだけで表示される
      • firebugの関数一覧を見て使ってみる。大体できる
  • 難読化されているjsもカッコを押せば見やすく整形してくれる

WebSocketでリアルタイム通信(小松様)

  • ブラウザのサポート状況
    • 急に動かなくなる問題も出ている
  • 商用目的ではまだちょっとはやい

実践・ウェブアプリ高速化テクニック(太田様)

発表資料:
http://bit.ly/toka20-B5S

Good is the Enemy of Great
「いいね」は「すごい!」の敵

この部分で、
「小さなGoodを追求することで、Greatを損ねてしまう」という説明がありました。
私の中では、
"高速化テクニック"ばかりに目が向きすぎて、小さなことを直しすぎてしまうよりも、あくまでUser Experienceを追求して作っていくべきだ
と理解しました。

全体的な感想

 HTML5周りやChromeの事を広い範囲で知ることが出来て、勉強になりました。また、Dev Toolsの機能やWeb Socket周りなどで、今までなんとなくだったところについておはなしが聞けたり、新たな発見がありました。どんどん使っていきたいです。
パネルディスカッションでは、色々な方の見解や、ネイティブアプリとウェブベースのアプリについての見解をお聞き出来たりしてとても興味深かったです。






すごく余談

お弁当〜(*´ω`*)

お昼ご一緒させていただいた方のも、撮らせていただきました…!
美味しかった…

LT前の懇親会

美味しかった…

だしちゃまずいよ〜など有りましたら、教えて頂けますと、すぐこっそり消します(`・ω・´)






エントリになるべく写真を入れていくことにしました。
表示が重すぎる等ありましたら、教えてやってください…!

Hamamatru.rb#6

今月も参加しました!
http://atnd.org/events/18256

予習前提・wikiに上がった質問をディスカッションの流れをいつもとっているのですが、
今回は…質問がwikiに上がらなかったので、LTがメインになりました。


全体的な内容ついては…以下のarfyasuさんのエントリが大変分かりやすく、見やすいので参照してください
http://d.hatena.ne.jp/kanz-labs/20110811/1313079667

LTしてきました〜

資料を初めてあげてみます…!
突貫+変換で多少崩れてしまっていますが、雰囲気を感じる程度にどうぞ〜


セッションの内容については、以前上げたエントリをもっと凝縮しただけです。
http://d.hatena.ne.jp/sea_mountain/20110720/1311170178
http://d.hatena.ne.jp/sea_mountain/20110720/1311170179
http://d.hatena.ne.jp/sea_mountain/20110726/1311654522
あと、今回は頑張って、資料よりも口頭の分量多めを目指したため、書いてないこと結構あります…^^;


次回の勉強会から…

上の資料でも紹介したのですが、
Ruby on Rails Tutorialというすごくいい勉強道具があります。
これを読んで、まとめた内容を毎回LTしていきたいと思います!(終了未定

すごく良くて、英語でも気にならないレベルで読みやすいのは…すごく感じるのですが…
(紙媒体も買ってしまったのですが…)
辞書より厚い・大きいので全然進んでいません。
せっかくの機会なので、LTするという背水の陣の戦法で、読み進めていきたいと思います!
Web版は内容のアップデートがあるらしいので…本とWeb版でどの程度情報の差異が出始めているかも気になっているので、見比べながらやってみます!

【Rails3】【Heroku】Rails3.1.0.rc5でHerokuを使う

最近設計の下手さや、テストの書けなさにしょんぼりしている海山です。

Rails for Zombies後もぞんび会(と勝手に呼んでいる)は続いております。
Herokuやりたいやりたい!!と言い続けていたのですが、本当に実現し、ちょうどいい機会だったので、Rails3.1rc5でやってました。

結構はまりました。
Herokuでなんとか動いている状態を確認できるようになるまでの最低限をまとめます。

すごく参考になったサイト様!

環境

※Gitは入っている前提です

Gemfileに追記

require ‘heroku’

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

下の方の'pg'と''therubyracer-heroku'を書いておかないと、

Installing pg (0.11.0) with native extensions /Users/sea_mountain/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

というエラーが出ます。

その後コマンドラインで
bundle install
するとエラー

Installing pg (0.11.0) with native extensions /Users/sea_mountain/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

がでてしまうので、

bundle --without production

というコマンドにします。

ちなみに

参考サイトではこの後

bundle update rake # rakeのバージョンが0.9.1が入っているので、これを打つように言われる

も書かれているので、必要そうなエラー文など出た場合は参考に。

Gitの準備

git init

をまずして、

git add ファイル

でファイルを追加

git commit -m "コミットメッセージ"

でローカルにコミットして、

git push heroku master

でHerokuに上げる。

余談

githubなどだと、id_rsa.pubをgithubのWebの設定ページに登録する必要がありますが、
Herokuは~/.ssh/id_rsa.pubが作ってあれば自動でアップロードしてくれます。
作ってない場合→http://help.github.com/mac-set-up-git/

Herokuの準備

heroku create

command not foundと言われた場合は…sudo gem install herokuで入れましょう。

自分のRailsプロジェクトのDBの状態をHeroku側でも設定します。
このままheroku rake db:migrateをすると以下のようにエラーが出るので、

$ heroku rake db:migrate
(in /app)
rake aborted!
uninitialized constant Rake::DSL
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
以下続く

Rakefileの先頭行に

require 'rake/dsl_definition'

を追加します。

この後忘れずにgit addしてcommitしてpushして…

heroku rake db:migrate

成功すると、こんな感じ。

(in /app)
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED
Migrating to CreateUsers (20110808150710)
==  CreateUsers: migrating ====================================================
-- create_table(:users)
   -> 0.0242s
==  CreateUsers: migrated (0.0243s) ===========================================

上数行warningが出てますが…
ぐぐっても、解決法が見つからないので…とりあえずは置いておきます。
heroku openコマンドでブラウザが立ち上がって、Railsのindexページがちゃんと表示されたら成功です!


余談の余談

さくらレンタルサーバーのライトを借りて、Railsを動かそうと目論んでいたのですが…
頑張ってみましたが無理でした…Rails2系だと、Redmineが動いたという話などたくさん見つかるのですが…
Rails3系だと、よく分からないエラーで全然動かず… どうしようもなかったです。
その点、Herokuは簡単にRailsのバージョンもそんなに気にせずサクサク行けるので、すごい!
ただ、ローカルで動いていたのに、上げてみたら、赤文字が表示されているだけの、エラー文も表示されてないエラー画面が表示されることが多々…。
CSSファイルが少し間違っていたりするだけでも、コンパイル時に引っかかって、だめみたいです。少しはまりました。
ローカルで動いていても、Heroku上で動かないことも結構あると思っておくほうが良さそうです。

あと、cronは無料プランだと1日1回なので…botなどには使えないです…(なぜ最初にHerokuではなく、さくらレンタルサーバーを選んだか、もうおわかりですね…orz)


おかしい点や、補足など有りましたらぜひお願いします!ぞんび〜!

RubyKaigi2011 3日目Rails勉強会の話

大分時間が立ちましたが…;;
RubyKaigi2011の3日目、お昼時間にあったRails勉強会の話です
http://wiki.fdiary.net/rails/?RailsMeetingTokyo-0064

↑のサイトに、発表のまとめが有ります。

Rails情報源の歩き方を元にしたセッション

  • Railsを毎日Gitのlogで読んだほうがいいという話について
    • 一日平均20commitぐらいだったのが、一気に120commitぐらいあった時があって、さすがに辛かった
    • 英語の壁と内部仕様の壁どちらかでも超えられていないと辛い…


RailsCasts

    • ASCIICastはRailsCastを文字に起こした物

 →時間が立てば日本語版も出てくる

    • 日本語になるまでの時間がまちまち
    • まとまって一気に出るときもある
    • 英語版は定期的に更新されている

Ruby on Rails Tutorial

  • 紙版とscreencast版が売ってる。Railsを勉強するだけでなくて、rspecを使って、gitを使って、herokuに上げるという所までが出来る
  • web版では無料
    • 全部終わらせるのに、Chapter1つで2Hぐらい
    • 真面目に全部やるとすごくかかる…
    • rvmとかherokuとか全部載っているから、写経するだけだからやれる
      • ただ、gitを知らない状態とかだときついかも

飛び入りで、@AkitaOnRailsさんからのメッセージ

その日の午後のセッションを担当されていた、AkitaOnRailsさんが飛び入りでメッセージを下さりました!
ほとんど英語だったのでよく聞き取れていませんが…
詳しい事は、先に述べたRails勉強会のサイトにて。

印象に残った点
  • とにかく英語を使えるようになっておくべき
  • 英語の日本語訳を待っていては遅すぎる
  • 本にするまでにかなりの時間→日本語訳が出るまでの時間

→本が出た時点で、すでに情報が古くなっている

  • @AkitaOnRailsさんの英語勉強法
    • とにかく実践する
      • やっていて楽しいことがいいので、映画をとにかく見まくった(半年?)
      • 移動時間が往復4Hあったから、ダ・ビンチ・コードのオーディオブックを聴き続けた
      • ブログを英語で書くようにした

とにかく実践することが大事で、英語を聞いていて、全然理解できなくても問題ない。続けることが大事



他のセッションのメモも有りますが…
既出な気もしたり、うまく取れていないので、RubyKaigi2011まとめはこれで終わりたいと思います。


すごく楽しかったので、今年で最後なんて寂しすぎます…
来年から丁度東京で、今度は移動も楽だぞー!とか思っていたら…(´・ω・`)
RubyKaigiが終わっても、RubyRailsに関する勉強会などには積極的に参加していきたいです!

2日目

たのしいRails 松田様

Pro Tip1
  • Railsを毎朝gitのlogで読む
Pro Tip2
  • コミットから、誰が元気で活躍しているかがわかる→(ネット)ストーキング

@tenderlove
@wycats
@carllerche
がすごい奴ら。Railsの何を聞いても絶対知っている人

Pro Tip3
  • テストは絶対書く
  • コミットメッセージは一行で 英語で

悪い例:「バグを直しました。取り込んでください」→直した所書かないと

まだTipは続きますが、特に印象に残ったのがこの3つでした!

5 years know-how of RSpec driven Rails app. development.

データを作るための3つの方法
  • Fixture
  • Fixture Replacement
  • before節のブロック
  • fixture

ymlとかcsvでデータを書いておくと読めるというRailsのやつ

    • はやい
    • ちょっとしたデータであれば毎回読んでも苦にならないぐらい
    • ymlに書くから、メンテナンスがしんどい
    • モデルのバリデーションを追加するとテストが全滅するとか…

その後出てきたのがFixture Replacement
http://ruby-toolbox.com/categories/rails_fixture_replacement.html
 fabricationfactory_girlも人気がある

  • オブジェクトの作り方を定義しておいて、ちょっと違うオブジェクトを作ったりする
  • flexbleで高機能  使い方は難しい
    • 速度的には早くない
    • 200件作りたいというのは辛くなってくるかも
  • rspecでテストを書くときのポイント
    • 難しい→どこから書くの?
      • モデルのテストを書く
    • データが大変
      • 生成手段があるから、うまく使い分ける
    • 使い分けてもDRYじゃない
      • コンテキストをshareするといいよ

MacRuby on RailsMacRubyから見たcRuby〜 高尾様

MacRuby

  • Ruby1.9との100%互換を目指している
    • 独自の文法とかではない
  • Rubyを使って実装するのと、RubyからObjective-Cの関数をコールするのはほぼ完璧
    • Objective-Cから呼び出す方は無理だけど。
  • MacRubyを使って、Mac appstoreにアプリケーションを置ける!
    • 有料のアプリを公開するということもできる!
MacRubyRailsを動かすには…

結論:動きません
エラーが出るたびに色々直したが、以下の知識が必要

  • CRuby(80%ぐらいCRubyのコードだからわかってないと
  • Objective-C
  • C++
  • LLVM
    • バイトコード作ったり・コンパイルするのにコードが書かれている

@lrz
 「Railsが動作すればMacRuby1.0をリリースする」

サイン会

Rails3レシピブック 190の技

Rails3レシピブック 190の技


Rails3レシピブックげっとしました〜!ヾ(*´∀`*)ノ
すごい列で、後でレシピブックの一時的品切れがあるレベルでした。
内容は軽く読んだ感じですが、やはりすごく分かりやすく、使いやすそうです…!
ただし、最初の時点でWindowsが進められていないので、OS移行済みで良かった…とほっとしました。


今回のRubyKaigiでは、Rubyの実装レベルの濃い話から、どうやって上達すればいいかまで色んなおはなしが聞けて楽しかったです!
1日目の午前中のセッションで、求婚があった?らしく…すごく見たかったです(´;ω;`)
動画も逐一上がっているようなので、出られなかったセッションを含めてそちらを参照しようと思います!

1日目

Rubyを利用した大規模ウェブサービスの開発・運用 舘野様

http://techlife.cookpad.com/2011/07/19/rubykaigi2011/


すごく分かりやすくて、聞きやすかったです!

  • 現在30人以上のエンジニア
    • 3割が外国のエンジニア
  • テストを書くという決まり
  • Extensionsは条件指定で有効化
    • 表示されているユーザとそうでないユーザが居る
    • 仕様がどんどん変わるからSpecを書かなくてもいいルールにしている
    • Extensionsのエラーが出たときは、通常の機能を表示するようにしているので、デプロイが怖くない


他の発表では、組み込みでRubyを使う話や、githubの運営状態の話等様々な話が聞けました!
githubのステッカーがあったらしいのですが、影も形も無いレベルで速攻なくなったらしく…(´;ω;`) 「明日も持ってくるよ〜」と仰られてましたが、次の日も見ることは有りませんでした…(持っている方はちらっと…いいな…