Rails勉強会@東京第15回

行ってきた

前半 Capistrano Yuguiさん

  • インストールするとcapコマンドができる
  • % cap --apply-to dirname または cap -A dirname
  • % cap show_tasks
    • いろいろな説明。--helpとは違う内容
  • rakeがcapをラップしてるrakeのタスクで実行できる(lib/capistrano.rake)
  • % rake:remote xxxx
  • 設定はconfig/deploy.rb
  • 標準のdeployはサーバにのディレクトリを作成してsvn coしてシンボリックリンクをはる
  • シンボリックリンクだから、まずい場合にすぐ戻せる
  • migrateとかもできる
  • AWDwR2版は多くはないけれどcapistranoのことが載ってる

Ceruberus 継続ビルドツール よしみさん

  • ビルド結果などをPlaggerみたいにパブリッシュ
  • フィードとかメールとかIRCとかJabberとか
  • 開発の経過を追いかけたい場合に便利


後半 フィード生成とキャッシュ 自分

  • FeedToolsを使うとフィードの生成と読み込みがかんたんにできる
  • hapricotは読み方がよくわからないけど、便利
  • Railsのキャッシュはファイル、メモリー、DRB、Memcached
  • mephisto(ブログツール)は自力でDBにキャッシュしてる
  • やっぱりRailsは遅い
  • mongrel clusterを使えば、そこそこ速くなる
  • Sweeperはobserverみたいだけどobserverじゃなくて使いにくい
  • SCGIの人はSCGIをやめてmongrelを作っているから、SCGIはもうあんまり更新されないかも

Railsとは関係ない話 瀧内さん、yamazさん

  • 画像リダイレクトをたくさんやるとIEが落ちたりする
  • 大規模サイトはいかにキャッシュを使うかが重要
  • ApacheなりSquidなりを二段構成でアプリサーバの前に置いたりする
  • 必ずしもRDBMSが良いわけじゃない
  • ニコニコ動画はたぶんRDBMSは使っていない


FeedToolsの使用例

  def feed
    item_size = 20
    feed = FeedTools::Feed.new
    feed.link        = url_for :controller => 'items', :action => 'feed'
    feed.language    = 'ja-JP'
    feed.title       = "recently #{item_size} items"

    items = Item.find :all, :limit => item_size, :order => 'created_at ASC'
    items.each do |item|
      feed_item = FeedTools::FeedItem.new
      feed_item.title = "item #{item.id}"
      feed_item.link  = url_for :controller => 'items',
                                :action => 'show', :id => item.id
      feed_item.updated = item.updated_at
      feed_item.content = item.content
      feed << feed_item
    end
    render_text feed.build_xml
  end

感想
人が多かった
WiFiが導入されて便利だった
Capistranoは使えるようにしたい
Railsのキャッシュのへんはあんまり収穫なし
でも大規模なサイトの運用の話がきけて良かった
パンくずは情報アーキテクチャ的にきちんと設計されているかがまず重要(システムの設計じゃなくて、ユーザー視点)
パンくずの実装はべたにビューに書いておけば良い気がするけど、Railsアプリでやったことないからわからない