2006-02-24 優しいRailsの育て方
● 複数のRails環境
えっと、複数のRails環境を用意する方法ですが、単に最新版の trunk を使うだけの場合は
% rake freeze_edge
とやるのだと思いますが、好みに応じて複数のバージョンを使い分けたかったり、trunk が手元にある場合にわざわざまた取得するのも冗長だったり、ということで、私は生々しく手作業でやっています。
● Rails スクリプトの実行のメカニズム
Rails スクリプトの実行のメカニズム的には、
% ruby script/XXX
が実行されると、まずスクリプト(から呼ばれた config/boot.rb)内で、
"#{RAILS_ROOT}/vendor/rails"
があるかどうかがチェックされます。存在すれば、その下の Rails パッケージ(activerecord, ...) が利用され、存在しなければ、システムにインストールされているパッケージが利用されます。これだけなので、結論から言うと、
「vendor/rails を好きなバージョンのパッケージへの symlink にする」
ことで簡単に切り替えられます。(削除すればいつでもシステム標準に戻る♪)。但し、現在の初期化のメカニズムになったのは 0.14 (多分)からだと思うので、0.13系ではこの方法は使えません。
あっと、念のために正確に言っておくと、vendor/rails/ 以下のパッケージではなく、vendor/rails/railties/lib/initializer.rb からの相対パス(../../*)にあるライブラリが利用されます。従って、例えば activerecord のソースをちょっといじって実験したい、なんてときに、各ライブラリは symlink にして、activerecord だけファイルをコピーしてきて修正してたりすると、どんなに頑張って修正してもそのファイルは無視されてしまうので注意が必要です。
残念な例
vendor/rails/ |-- actionmailer@ # -> ~/rails/svn/testing/actionmailer |-- actionpack@ # -> ~/rails/svn/testing/actionpack |-- actionwebservice@ # -> ~/rails/svn/testing/actionwebservice |-- activerecord |-- activesupport@ # -> ~/rails/svn/testing/activesupport `-- railties@ # -> ~/rails/svn/testing/railties |
● 我流
これで終わりなんですが、一応、私が今やっている方法を紹介しておきます。まず、適当な Rails 置き場(面倒なので ~/rails/svn/ 固定)を準備して、そこに trunk を落とします。
trunk ゲット
% cd ~/rails/svn/ % svn co http://dev.rubyonrails.com/svn/rails/trunk |
後日また最新版に更新したくなったときに差分で済むように、export でなく co がよいでしょう。
現在のファイル構成
~/rails/svn/ + trunk/ |
次に、co したときに表示されたレポジトリ番号の名前で trunk をコピーしておきます。もう番号を忘れちゃったよ!という鳥頭さんは、trunk 内で svn info するとよいでしょう。ということで、早速実行します。(お前かよ!)
リビジョン番号確認
% cd trunk % svn info リビジョン: 3630 |
忘れないように 3630 と呟きながら、急いで置き場に戻ってコピーします。
リビジョン番号でコピー
% cd ~/rails/svn/ % cp -pr trunk 3630 |
と、これは通常の使い方で、今回のように trunk にも含まれてないパッチを当てたりする場合は、混乱を避けるためにパッチを意味する 'p' を suffix してます。
パッチ当てる場合
% cp -pr trunk 3630p |
現在のファイル構成
~/rails/svn/ + 3630p/ + trunk/ |
ついでにパッチ置き場も作って、パッチを落とします。
パッチの準備
% cd ~/rails/svn/ % mkdir patches % cd patches/ % wget http://dev.rubyonrails.org/attachment/ticket/3913/cascaded_eager_loading.patch |
現在のファイル構成
~/rails/svn/
+ 3630p/
+ patches/
+ cascaded_eager_loading.patch
+ trunk/ |
パッチを当てます。
パッチを適用
% cd ~/rails/svn/3630p/ % patch -p0 < ../patches/cascaded_eager_loading.patch |
で、まだ動くかどうか怪しい最新版には testing の汚名をつけておきます。
最新版を testing と名付けておく
% ln -s 3630p testing |
現在のファイル構成
~/rails/svn/ + 3630p/ + patches/ + testing@ # --> 3630p + trunk/ |
時間があればテストもやってみましょう。各モジュール直下の RUNNING_UNIT_TESTS に詳しい手順が書いてありますが、るびま0004が日本語なので楽ですね。中央付近の「ActiveRecord の確認」に詳しく載っています。
http://jp.rubyist.net/magazine/?0004-RubyOnRails
今回は ActiveRecord に怪しいパッチを当てたので、ActiveRecord をテストしてみます。るびまの通りにDBは作成しているとして、
Gems な人のテスト
% cd ~/rails/svn/testing/activerecord/test/ % rake |
多分、Gems な人(普通の人)はこれだけでテストが実行されると思います。非 Gem なパラノイアはコマンドを明示して実行する必要があります。
非Gemsな人のテスト
% ./all.sh "connections/native_mysql" |
ピンポイントでテスト
% ruby -I "connections/native_mysql" associations_cascaded_eager_loading_test.rb |
テストも終わって、いよいよメインですが、最初に書いたように、Railsアプリケーションの vendor/rails を好きなバージョンに向けるだけです。とりあえず、今の testing バージョンを利用してみましょう。
testing バージョンを利用する
% cd ~/rails/apps/special-sample/vendor/ % ln -s ~/rails/svn/testing rails |
ちゃんと動いてるようなら stable に昇格させてあげましょう。ついでに、アプリケーション側も stable へリンクを変更しておきます。逆に問題があった場合は、testing を消して stable に戻しましょう。
最新版を stable に変名しておく
% cd ~/rails/svn/ % rm stable && ln -s 3630p stable |
現在のファイル構成
~/rails/svn/ + 3630p/ + stable@ # --> 3630p + testing@ # --> 3630p + trunk/ |
stable バージョンを利用するように変更
% cd ~/rails/apps/special-sample/vendor/ % rm rails && ln -s ~/rails/svn/stable rails |
現在のファイル構成
~/rails/apps/special-sample/vendor/ + plugins/ + rails@ # --> ~/rails/svn/stable |
すると、また1週間もしないうちに楽しそうな機能が trunk に追加されますので、同じ作業をやって testing と stable を更新することになります。こうやって、~/rails/svn/xxxx にどんどん各バージョンの rails が増えていきます。これが trunk 無限地獄です。(消せよ)。
年末に消したのにまた増えてきた図
% tree -L 1 ~/rails/svn/ ~/rails/svn/ |-- 3383p/ |-- 3438p/ |-- 3595p/ |-- 3618p/ |-- 3621p/ |-- 3623p/ |-- 3630p/ |-- patches/ |-- stable@ # -> 3623p |-- switchtower/ |-- testing@ # -> 3630p |-- tmp/ |-- trunk/ `-- workings/ |
以上です。って、ち、違うわよ。べ、別にあなたのために調べたんじゃないからね!前からまとめようと思ってたんだから。勘違いしないでよね。
● 参考
- [trunk] 最新 ticket http://dev.rubyonrails.org/timeline
2007-02-24
● [℃-ute] ℃-ute デビュー単独コンサート2007春 〜始まったよ!キューティーショー〜
どうせお前らは、はずかむ、おはスタ、デビューCDも好調で「℃-ute始まったな」感が高まる中での℃-ute初コンにJUMPするほど喜んでマイマイに片想いしてるんだけど、As ONEの生ファルセットを聞いちゃうとやっぱり愛理へのENDLESS LOVEが芽生えてしまい、脳内で即抱きしめながらYES!しあわせ絶頂なお前らなんだけど、中盤の非持ち歌ゾーンはわっきゃない曲が多くて、タイムカプセル状態でテンションが落ちかかってるところでまさかのキューティーガールズ登場にお前らの桜はチラリしちゃって、さらに初単独コンに向けて努力するメンバーを見守るnkskちゃんの大きな愛を目の当たりにしたお前らは、みかんあげるから俺ももてなしてケロ!とか思いながらも、やっぱり最後はまっさらブルージーンズ!とアラカンと一緒に叫んでラビン!ラビン!ラビン!ラビン!しちゃうんだろう?とか言ってw
セットリスト
120 :名無し募集中。。。 :2007/02/24(土) 17:56:06.62 0
01.JUMP ℃-ute
02.EVERYDAY YEAH! 片想い ℃-ute
03.As ONE ℃-ute
MC ℃-ute
04.ENDLESS LOVE〜I Love You More〜 ℃-ute
05.即 抱きしめて ℃-ute
06.YES!しあわせ ℃-ute
MC 萩原舞・岡井千聖・鈴木愛理
07.SHALL WE LOVE? 有原栞菜・中島早貴・矢島舞美・梅田えりか
08.会えない長い日曜日 萩原舞・岡井千聖
09.サヨナラのLOVE SONG 鈴木愛理
10.【メドレー】
乙女 パスタに感動 萩原・有原・矢島・梅田→℃-ute
ミラクルルン グランプリン! ℃-ute
ちょこっとLOVE 岡井・鈴木・中島
VTR
11.わっきゃない(Z) ℃-ute
12.タイムカプセル ℃-ute
13.桜チラリ ℃-ute
14.大きな愛でもてなして ℃-ute
15.まっさらブルージーンズ ℃-ute ● KPT
Problem
| 項目 | 内容 |
|---|---|
| 台詞 | 「あと何十分かで終わっちゃいますが・・・」とかnkskちゃんだけ反感を買うような台詞が多い(*1) |
| ネタ | 小学生コントのネタがちょっとシュール杉 |
| 非持ち歌 | 知らない曲多い。ベリと本体は? |
| 栞菜の握手 | 相手の目を見るんだ。がんばれ! |
| 握手会 | 史上最速。コンサートだけでいいよ。というか、りーたんのアンコール返して! |
| 大もて | 最後のオクターブ上げていくやつは微妙。最後の一回だけ煽ればよし |
(*1) よみうりでも「違ーーーぅ!」でスペジェネを止める役だし
Keep
| 項目 | 内容 |
|---|---|
| キューティーガールズ | 必須。むしろこれだけでもいいくらい。ルミネで7-23時ぐらいでやるのも可 |
| 日替わりMC | MCのトーク内容を変えるのは嬉しい。ベリはここを見習うべき |
| VTR | 他グループが出てくるコントVTRは楽しい。次はベリと絡む方向で |
| nkskチェック | 星明子さんばりにメンバーを見守る役、あるいはストーカーとして |
| 煽り | わっきゃない、大もて、まっさら |
Try
| 項目 | 内容 |
|---|---|
| nkskちゃんソロ | 始まったな感がある確変少女を放置いくない。上手さより今が旬の娘に歌わせるんだ! |
| 非持ち歌 | ベリと本体のメジャーな曲を是非。よみうりが伏線でスッペとザ・ピースが来ると予想 |
| 公演数増 | 初コンのご祝儀相場とは言えオクが高い。関東で10公演くらいよろしく |
| クリアファイル | 梅さんに偏ってない?4枚買って3梅さんとか。ん、梅しかったの?w |
| キッズコン | キッズ合同コンは狼の総意。熊井ちゃんとナッキーのデュオとか絶対泣くんだから! |
● 参考
- 一人で行く℃-uteコンスレ Part.2 http://ex21.2ch.net/test/read.cgi/morningcoffee/1172290613/120
2008-02-24
● 第25回フェブラリーステークス(GI)
3連単予想なんて甘い!この8連単の1点読みで勝負したい。配当は2億くらいでお願いします>JRA様。
予想
| 順位 | 馬番 | 馬名 | 予想 |
|---|---|---|---|
| 1 | 04 | フィールドルージュ | 実力、体調、調教に死角なし |
| 2 | 09 | メイショウトウコン | JCDの好走とダートの安定性から |
| - | 16 | ワイルドワンダー | 完走したら3着。でも根岸Sのダメージで競走中止しそう>< |
| 3 | 10 | ブルーコンコルド | 去年2着の実績。年齢的な衰えも感じない |
| 4 | 15 | ヴァーミリアン | 実力No1も調教不足で3着争い。馬体重が増加してなければ本命 |
| 5 | 13 | ビッググラス | 去年3着の実績も、やや力の衰えあり |
| 6 | 07 | ドラゴンファイヤー | 調教不足。安勝マジックに期待 |
| 7 | 05 | クワイエットデイ | 年齢的にそろそろ厳しい |
| 8 | 08 | ロングプライド | ペリエパワー |
実際問題、3連単しかないので、4-9-10 (700倍)に1kいってきます。あとビッググラスが不当に人気ない(最下位)のが凄い。複勝(20〜30倍)に1k入れとく価値は十分ある。
参考
- [Yahoo] 第25回フェブラリーステークス(GI) http://keiba.yahoo.co.jp/scores/2008/05/01/08/11/denma.html


_ akausagi [ツンデレなくまの人にちょっと萌えた。]
_ 从 ’w’) [近寄らないで!(が実はツンデレだったら最高に萌えるの数→(1/20))]