RubyKaigi2008に参加してきた#2
つくばは遠いなぁ,と言うのが会場の印象.いやいい会場だったんですけどね.いかんせん自宅から遠かったなぁと.
2日目のキーワードは,「Ruby 物産展」「Mac 万能説」.
本日は朝の諸注意は飛ばされた
Ruby Extended Library Howto
- 拡張ライブラリとは
- C/C++で書かれ組み込まれるライブラリ
- 遅さ順
1.uptp(10) { |x| puts x }
for i in 1..10; puts i; end
for(i=0; i<10; i++){ rb_funcall(rb_stdout, rb_intern("puts"), 1, INT2FIX(i)); }
さらに仕事に使う Ruby
erb を偲んで
- MVC = オブジェクト群の相対的な関係
- コードとテンプレート
- 独立しているが無関係ではない
- View とは
- View オブジェクト
- ベンハムのコマ
matz を説得する方法
リファレンスマニュアル 2008 初夏
- 刷新計画の概要
- メソッドカバー率 : 52% 程度
- 組み込みライブラリ : 97.2%
- これからの予定
- 来年までにカバー率を上げたい
- ライセンスを変更したい
- CC に変える
マニュアル作りに参加してみたいなとは思ってたんで,これを契機に参加してみるかな.
Ruby と MacOS X の未来
- DTrace support
- Ruby/Cocoa
- Ruby/Object-C Bridge / C bridge
- RubyCocoa 良すぎ
- ProxyClass を経由して,Object-C Class にアクセスしている
- Create / Forwards Message / Convert / Exception
- MacRuby
帰りの電車で同僚といかに Mac を買うかについて話していた気がする.ローンさえ終われば....
REST 信者から見た Ruby on Rails 2.0
- Ruby and Rails
- REST と Ruby について
- 2002 から議論されていて仲良し
- REST と Rails も仲良し
- 抽象化レベル
- Architectural Style は HTTP/URI などの Architecture をさらに抽象化したもの
- リソース指向アーキテクチャ(ROA)
- Addressability (アドレス可能性)
- Statelessness (ステートレス性)
- Connectedness (接続性)
- A Uniform Interface (統一インターフェイス)
- A > C > U >>>>>>>>>>>>>> S
- Addressability
/entries -> list /entries/{entry_id} -> entry resource
-
- 実装
map.resources :entries
Real-World Enterprise Ruby
Development and scaling iKnow!
- 現在 20万 User
- 12 カ国
- Develop -> Freeze -> QA -> Release
- Env.
- 60000 upload /day
- migration = 474
- Past
- Now
- Future
- Add App-server
- memcached
- DB Sharding
- Problems
- ActiveRecord
- sum は limit を使わない ( ある意味当たり前だが,ARでは設定できる)
- has_many
- count = COUNT(*)
- length
- モデルを全部メモリ上にロードしているため,メモリ食い過ぎ
- size 使おうね
- OpenID
timeout(5) do methods.... end
Inside Tabelog's Backend
- 13台構成
- mongrel について
- スケールアウトについて
- セッションの共有
- DB格納で解決
- 分散アクセス
- AR はDBは1つのみ
- Plugin
- Magic Multi-Connections
- Connection はりすぎ
- Table の数だけはってる
- ActsAsReadonlyable
- 導入が簡単 find(.. :readonly => false) で master に行く
- フェイルオーバー
- 同時接続数
- 全ての slave に接続するので,slave が増えると大変
- パフォーマンスについて
- まとめ
- 地味に広告が重い
Building a Scalable Startup with Ruby
- TuneCore
- Artist -> TuneCore -> mp3 -> iTune Music Store -> Money -> TuneCore -> Artiust
- Environment
- Front End
- Rails/MySQL
- 1 Database
- Fragmented Cache
- Uploads via Merb
- Back End
- Audio transcoder
- Write metadata file
- Upload to the store
- Ruby + OpenSource transcode codec
- XML with Java
- 8種類の店舗に
- Front End <-> Back End
- Message Queue
- Amazon EC2 が配布サーバ
- 配布サーバがメッセージキューから仕事をもらう
- キューによるサーバ起動が行われている?
- Backend なので常時起動している必要はなく,キューが来たら
起動して処理を開始すればいい.
-
- Storage
- Amazon S3
- EC2 への転送は無料
Rails 症候群の研究
- ログ書き忘れ orz
- ようするに protected をなくそうぜ,と言う話.