RubyKaigi2008 2日目

200806222214259193

眠い。今日は寝坊しちゃった。3日間通して楽しかった。バリエーションは結構あったし、すべてのセッションに思想が継承されているのがいいなと思った。ちょっと間違うと宗教だけど。眠かったので自分の範疇外のセッションで寝てしまった。メモとってないのがそれ。来年も行きたいなと思わせるカンファレンスだった。YAPCはもう行かないと思う。

200806210938139174
運営会提供のFreeSpot。b・g/a・n全部そろえて、地図まで明示。あの人数でもバリバリつながったし完璧。

拡張ライブラリの書き方講座(arton)

 アドレス操作・割り込み処理・ネイティブAPI
 例:メモリの確保とパージを視覚的に見せる

さらに仕事に使うRuby(後藤 謙太郎(ごとけん))

 割込仕事が多い
 Hikiフロントページにツールが集約
 %sudo cp -pR skelton target/directory で新規作成
 redmineのいいところ
  カレンダーと工数入力
  tracよりユーザとプロジェクトを簡単に使える
 伝票管理にKagemai
  依頼→見積→受注→検収→請求
 カスタマイズ
   複数のカラムで決まる状態
 Fastladder
  →LivedoorReaderclone
  Rails。Intranetuse。Nice。
 トラッキングシステムは社内・社外Verのそれぞれが必要だったりするよね

erbを偲んで(関将俊)

 smalltalkのViewという意味からVIEW=テンプレートという意識になりつつある世の中 
 htmlとcssと同じようにコードとViewは密接
 VIEWはVIEWオブジェクトであるという原点
 eRuby?

200806221019539183
メイン会場はこんなかんじ。

200806221018119179
メモ取り。レッツノート標準バッテリで6時間駆動。素晴らしい。ソフトバンクモバイルは圏外(涙。

200806221020119184
発表者のすぐ後ろでIRCが展開される。わかりやすくていい。

matzを説得する方法(田中哲)

 YARV
 速度以外にRubyに不満のあることとは
  バグレポートは通りやすい
  新機能は難しい
 受け入れる要素
  既存仕様意図を尊重
  設定がないことがいい設定
  必要性が納得できる
   具体的・多数が困っている
  解決策が妥当
  変更が小規模
 受け入れられない要素
  必要性が納得できない
  解決策が疑わしい
  独特な解決法=過去を継承しない
  余計な事をあわせて言う
 他ではどう扱っているか

The future of Ruby in Mac OS X(Laurent Sansonetti)
 RubyRubyとCocoa(MacOSXAPI)をブリッジ

200806221129599185
期待してたのだけど、期待した内容じゃなくてがっかり。表題から、ストレージをRubyで抽象化した紹介なのかと思った…

Rubyでつくるストレージサービス(福田朋紀)

 回線増強か
 クオンプと読む
 webリリースするらしい
 Railsらしい
 開発手法に作用するRubyについて

 失敗談
  メモリ不足
   mongrelでメモリいっぱい使う
   ファイルアップロード
    コントローラーを改修
   ファイルダウンロード
    X-Sendfileで解決
   RMagick
    ImageMagickの方がいい

  メンテナンス
   修正が簡単だけど、コードが汚くなる
   メンテナンスのスコープはどこだ
   core_extでライブラリ定義が再度書き換わっている
   プラグインが強力
    だけど影響範囲がどんどん把握しづらくなる
   acts_as_*
    SQLがいろんなところに分散してメンテしづらくなる
    組み合わせると問題が出る
   保守の範囲が広がって不幸の相乗効果

 大規模システムで保守担当範囲を決める必要が生まれる

 RailsMVC
 
 WebAPI
  認証のより分けなどフィルタ・コントローラが汚くなっていく
  一箇所にまとめるのが難しくなっていく
  コントローラ・サービスを別にすることで負荷を分散しないと

 コーディング仕方
  コーディング標準がまだできてない
  高い授業料を払うことになった

 無停止メンテナンス
  なやんでる
  まだとめてる

 パフォーマンス
  Railsではなく、回線とストレージの方が

REST信者から見たRuby on Rails 2.0(山本陽平)

 RESTとRubyて仲良し
  OpenURIがRESTFULだった
 RESTとRailsて仲良し
  RESTifiedRailsController
  シンプルなコントローラを目指したらRESTfullに
 RESTWebサービスの別案がwithRubyだった
  DHHが序文書いてる
 REST
  WebArchitectural style
 リソース指向アーキテクチャ
  RESTfulWebサービスにするためのアーキテクチャ
  一番重要なのはアドレス可能性
  次に接続性

 アドレス可能性
  リソースを定義してデータを渡す=アドレス可能
  リソースとは?=URI
 URI駆動開発
  URIの設計からはじめる実装
 Railsで作るとルーティングはシンプルだがコード構造に依存しがち
 URIは設計目標という考え方
 RestletとDjangoの割り当て方を観察する
 
 接続性
  クライアントアプリの状態を辿らせるServer側という考え=RESTful
  リソースとリンクを設計するのがハイパーメディア
  リンクをRailsで作ると
   シンプル(url_for,link_to)
   でもリンクのセマンティクスが意識できれるともっといい
   =リンクの意味を意識できれば
  クライアントがリンクの意味を理解できるようになっているのが理想
 
 アドレス可能性と接続性を意識すると、よりよいアプリが作れる

 全部リソースで考える。GETPUTPOSTでできないならリソースを見直せ


Real-World Enterprise Ruby(CTC 大場光一郎・高井直人)

 Rubyを社内に認めさせるための有効な理由
  新規案件の獲得・新規顧客の獲得
  →小規模ビジネスにフィット
  →大規模案件につなげる

 教育体制・技術支援体制の確立
 開発標準に取り組む
 保守運用フェーズサポート

 →保守運用ノウハウが個別なのがよくないのかな
 →作り人のアレな感じはテストでカバー
 →Rubyバージョン差異は実行環境保守部隊でカバー

 提案資料の要素テンプレートがあるといい
  実績:コミットする
  見積:Javaと比較。ファンクションポイント法で規模算出。実績値蓄積。
  開発者:開発前トレーニング。3日間。forJava開発者。
  技術支援:コードレビュー
  開発環境:まったく同じ開発環境を整備。開発標準のひとつ。
  運用環境:性能検証

Developing and scaling iKnow!(Zev Blut)

 iKnow ソーシャル言語学習サイト
 2Week間隔リリース
 マイぐれしすぎ
 NginxProxyとMonglel
 サーバー・LAMP/LNMR構成など。NFS
 3NodeでVM。マスタDBおちるので物理に。
 DB8コア早いディスクでRAM16GB
 memcached
 EventualDBSharding

 問題点
  ActiveRecordSQLレイヤーの吸収できない仕様で困ったことがある
  lengthの誤用でLoadAvarageが…
  lengthよりsizeがいいよ
 

 OpenID15%だって
  プロバイダにリレイ。プロバイダが遅かったら引っ張られて死ぬ。
  Timeoutを切る方法
   discover timeout

 FS
  ext3:3万までしかdirしか作れない
  xfs:変更したらウマー
  XFS採用した理由。Ruby時々なみだ目。

 コアラ(koala)
  最新版アップしたよ

Inside Tabelog's Backend(京和崇行)

 Win+ASPRails
 kakaku.comは高速マシンで少ない台数
 メモリ問題・大量に食いつぶす
 毎日再起動cron(w
 Monglelがメモリを大量に使って長い間いたとき
 
 APのスケールアウト
  セッションをDBに
  複数DBをみるようにActiveRecordが対応してない
   MgagicMulti-Connections
    だめ:コネクション張りすぎ・1テーブル1コネクション
   ActsAsReadonlyable
    OK:入れるとFindがスレーブをデフォでみにいく
    課題:フェイルオーバーの時に切り離せない
       MySQLProxy入れるか

 パフォーマンス
  Routesはあまり使わない=パフォーマンスが悪いから
   mod_rewrite+create_urlで解決
   マルチドメインで解決

  セッションはマスタのみ参照

ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile(しだらようじ)

 すげー

Using Ruby to Build a Scalable Startup(Alex Kane, Tunecore.com)

 TuneCoreという会社の人
  デジタルメディア配布
  レーベルスキップサービスかな
  PayPalで引き出すらしい
  75000ユーザが8億売り上げた
  有名アーティストが参加しているのが寄与しているようだ

 構成・役割
 [Front]
  ROR/MySQL
  1MonolithicDatabase
  Merb?によるUpload
 [Back]
  エンコ・メタファイル・店サイトにUP
 [配布エンジン]
  ほとんどRuby
  XMLバリデーションがJava
 [Que]
  優先度をわける
  キューはYAMLベース
 [VM]
  配布エンジン@EC2
  メッセージキューから仕事をもらう配布エンジン
  仮想サーバー数はキューの大きさで決定する
 [Storage]
  S3に2TB
  Amazonの蔵独活内はデータ転送無料:Cool!

 googlecodeで配布してるよ。

Rails症候群の研究(前田修吾)

 やたらとprotectedを使う
 やたらと既存クラスを再定義
 Rubyが何かわかっていない
  RailsなしでRubyは動きますか

 protectedはまぎらわしいのでいらないかも