2007年11月12日

Viewにロジックを書くこと。

ビューに書くのが好きを拝見した。確かにその通りですね。
私もマネしてみたい。が、自分の自由の利くRailsプロジェクトは今ないので、今すぐには無理ぽいですね。。。

でも、content_tag()は大量に呼びまくると遅そうなので、そして、デザイナが嫌いがりそうなので、あまり使わないですね。。。そんなにボトルネックになりませんでしょうか?url_forとかもそんなに早くないとか聞いたような気もするし。

いや、優秀なフレキシブル志向なデザイナなら、いいんだろーけども。。。

moro氏の原案なのですね・・・これは。
タグ:Rails
posted by N.T.T with Rails 3.2 (ex. 2.1) at 15:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

[Mongrel-users] MongrelのWikiが始まろうとしている

Mongrel-usersにこんな記事が投げられた。
Evanの[Mongrel] Mongrel wiki?
おんなじような質問ばっかMLに出てくるから、FAQみたいなのをWikiに作ろう、と。spamを弾けて、ダサくなけりゃいいよ。

ってことだったんだけど、Rubyforgeはどうすんの?svnは?バグトラッカーは?Tracに移行するの大変じゃん!Ninja?
devjavuは?Ezraがユーザ数(5)制限のないプレミアム持っているよ。

...ということなので、Mongrel FAQ Wikiに期待。
posted by N.T.T with Rails 3.2 (ex. 2.1) at 03:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年11月02日

Mongrel 1.1

Cで書かれたRuby on Rails用ウェブサーバ、Mongrelからついに1.1が昨日リリースされました。
先週10月24日に1.0.3が出て、10月31日にそのバグフィックスが1.0.4として出ていましたが。
1.0系からの更新内容は

・JRubyを完全サポート。
・ソースレベルでの再構成。
・バグフィックス。

のようです。

1. Kevin Williams)1.0.4まで1.0.2、1.0.3のリリースを知らなかった。
2. Will Green)これまでCで書かれていたURL classifierがRubyベースになったけど、速度的には問題ないの?Cのほうが速いと思うんだけど。
3. cdr)↑え、私のDBはC版のURL classifierの速度に頼っちゃってんだけど。そのRubyってのはgemでのRubyって意味じゃないの?Rubygemsの「ruby」ってのはPOSIX (つまり、Ruby+C)って意味だよ。それに対して「win32」ってのはそのまんまwindows用のコードって意味で。
4. Kirk Haines)一般的にはCのほうがRubyより速いってのは正しいよね、うん。  少しのURLの分類なら、pure rubyでもC版と同じくらいかそれ以上速いよ。pure rubyへ切り替えることでシンプルになるし、(わずかな速さと簡潔さの)トレードオフで、たいていの人は何十個もMongrelにURLを登録してないから、という理由でpure rubyに移行したんだ。だから、たいていの人にとってはパフォーマンスは落ちないはずだよ。
5. Geoffrey Clements)ネイティブコードを呼び出すオーバーヘッドを考えてごらんよ。小さいメソッドのようなものであれば、ネイティブコード呼び出しよりもスクリプト言語で書いたほうがいいことが多いよ。Ruby版が遅いと思い込むだけじゃなくて、アップグレードしてパフォーマンス評価してみてよ。
6. Kevin Williams)おっと分かったよ。説明してくれてありがと。

というとこのようです。


「[Mongrel] Mongrel 1.1」から始まるmongrel-usersのスレッド
タグ:mongrel
posted by N.T.T with Rails 3.2 (ex. 2.1) at 13:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年11月01日

Rails公式のマニュアル on rubyonrails.org

manuals.rubyonrails.com is downによれば、マニュアルが落ちているということだけど、このサイトってRails APIと同じ内容なのかな?masuidriveさんのところは1.1.2と大変古くなっているけども、日本語話者にとっては今なおもっとも使えるところになっている。
タグ:Rails-core
posted by N.T.T with Rails 3.2 (ex. 2.1) at 17:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年10月29日

便利だけども、遅い遅いEager Loading

PratikさんがEager loading optimization patchというパッチを出していた。
#10011がもともとのチケットで、ここのチケットに当該パッチが添付されている。
三秒くらい眺めたけど、私が昔プロジェクトに取り込んだのとほぼ同じみたいだ。
最初のレスポンスをしている、Tarmo Tänavさんが言っているのに、簡単な例でしか試していない感じだ。

次にコメントしたMark Reginald Jamesさんが指摘している
Frederick Cheungさんによるslow eager loading ( & fix)のほうがまだよさそうな気配だ。
こちらのフィックスは私が関わったプロジェクトでもほぼ同じ問題が起きていたからだ。時間を割いて、このパッチを読んでみるといいかもしれないと思います。
タグ:Rails-core
posted by N.T.T with Rails 3.2 (ex. 2.1) at 13:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年10月23日

Time.nowが遅いとかいう「Rails勉強会@東京 第23回」の話を五分だけ見てみた。

ruby -rdate -e '1.upto(10000) { |i| p Date.today.year } '


ruby -e '1.upto(10000) { |i| p Time.now.year } '

を比較してみた@Ruby 1.8.5@Pentium D 3.40GHz (2MB cache) on RHEL4。

$ time ruby -rdate -e '1.upto(10000) { |i| p Date.today.year } '

real    0m1.563s
user 0m1.496s
sys 0m0.067s

$ time ruby -e '1.upto(10000) { |i| p Time.now.year } '


real    0m0.099s
user 0m0.044s
sys 0m0.041s

と、まー
Time.now
のほうが早いという結果になった。

結論:
Date.today
のほうが20倍近く遅いってことでいいの?
posted by N.T.T with Rails 3.2 (ex. 2.1) at 17:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年10月04日

AR#findのincludeオプションの罠

たとえば、こういうモデルがテーブル関係にある場合、


$ cat app/model/user.rb
class User < ActiveRecord::Base
has_one :user_some
end
$ cat app/model/user_some.rb
class UserSome < ActiveRecord::Base
belongs_to :user
end


userモデルとuser_someモデルは1:1対応。



User.find :first


だと


SELECT * FROM users LIMIT 1


と、まぁごく自然なのに対して、


User.find :first, :include => [ :user_profile ]


だと、


SELECT users.`id` AS t0_r0, users.`hoge` AS t0_r1, user_somes.`id` AS t1_r0, user_somes.`hoge` AS t1_r1 FROM users LEFT OUTER JOIN user_profiles ON user_profiles.user_id = users.id


となり、え?って感じで、10000レコードずつあれば、1億レコードのもRailsに返ってきて、それを処理することになる。どっひゃーーって感じなので、注意せねばね。

where
で絞り込めば、まだマシなのでしょうが、そうでない場合もあるので、注意がかなり必要!
タグ:Rails
posted by N.T.T with Rails 3.2 (ex. 2.1) at 11:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年10月01日

今年の夏の旅行

今年の夏はどこにも行かなかった印象だ。

七月に新潟に、八月に岐阜・名古屋に行ってきたくらい。

でも、どっちらも暑かったけど、楽しむことができました。

あなたの旅の思い出をブログに書こう!
タグ:研究
posted by N.T.T with Rails 3.2 (ex. 2.1) at 21:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

[Rails-core] Railsのセキュリティはジョークか?

Security + Rails =Joke?より

Rails Securityメーリングリストが機能していないよね、って話。

Railsはセキュリティに弱いフレームワークではなくて、セキュリティの情報共有ができていないよね。

Railsの脆弱性のあるバージョン範囲を示すべきで、どのバージョンから直っているのか分かりやすくしたほうがいい。

[7589]: Secure #sanitize, #strip_tags, and #strip_links helpers against xss attacksなどが採り上げられている。
タグ:Rails-core
posted by N.T.T with Rails 3.2 (ex. 2.1) at 15:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

[Rails最前線] メモリリークの問題

rails/ruby memory leak (2007年10月1日(月) 午前12:59)より

DBでセッション管理すると
http://drawohara.tumblr.com/post/13655303
に詳細が書いてあるよ、と。
      Darwin 8.10.1 i386

ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]

Rails 1.2.3

sqlite3lighttpdを使って、30分間で25000アクセス程度かけていくと、ゆっくりrsizeが増大していく。6hとかかけて。
タグ:Rails-core
posted by N.T.T with Rails 3.2 (ex. 2.1) at 13:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。