rubykaigi2008行ってきたのでまとめ

1st day

寝坊したので午後から参加。

キーノート (まつもとゆきひろ)
  • rubyコミュニティは梁山泊らしい。
  • rubyは使っていると楽しくなってくる麻薬のような効果がある。
  • IRCでは「Rubyをキメる」という名言
Ruby M17N (成瀬ゆい / Martin J. Dürst)
Ruby《を》教えてるんじゃない、Ruby《で》教えてるんだってば (増原英彦)
  • 情報系学科の人気が低い昨今。
  • 東大では昨年からrubyコンピュータサイエンスを教えるようになった。
  • 初心者向けのはまりどころを解説。空白スペースが入ってるとか、"が大文字とか。
成功するRuby教育のプラクティス (吉田裕美)
  • 教育ではペアプロを使うと効果的になる。
    • 会話で活気が生まれる、スキルの差が収拾できる、短時間で終わる
  • テストコードを与えてそれを解くコードを作成させる。
    • ゲーム感覚で楽しい、TDDの基礎、短時間で終わる
RSpecによるRailsアプリケーションのBDD、事例報告 (Yugui(園田裕貴))
  • RSpecを用いて1ヶ月でサイト構築。
  • まじめにSpec書くとコードの7割がテストコードになる。
  • テストコードを書くポイント
    • モデルは必須
    • コントローラはデータの入出力のある箇所
    • viewはインタラクションとして必須の箇所
    • 要はレイヤー間のコミュニケーションがあるところにはテストを書く

Q.7割がテストコードと聞くと、上の人がそんなことにリソース使ってるんじゃなくて実装コード書けと言われそうだが?
A.「おまえは何も分かってないんだから黙ってろ
スライド
http://www.slideshare.net/yugui/rspecrailsbdd/

LT
  • ODEのプレゼンすばらしすぎる
  • Enumerableのeach_slice、each_consを使え
    (1..10).each_slice(3) {|a| p a}
    =>
    [1, 2, 3]
    [4, 5, 6]
    [7, 8, 9]
    [10]

    (1..10).each_cons(3) {|a| p a}
    =>
    [1, 2, 3]
    [2, 3, 4]
    [3, 4, 5]
    [4, 5, 6]
    [5, 6, 7]
    [6, 7, 8]
    [7, 8, 9]
    [8, 9, 10]
  • named_scopeを使え!sqlの組み立てがすっきりする
  • わっふるわっふる

2nd day

matzを説得する方法 (田中哲)
  • 説得材料はちゃんと集めましょう。でないと無視される。
日本Rubyのリファレンスマニュアル2008・初夏 (青木峰郎)
  • 年末には1.8.7対応のドキュメントがリリースできそう
The future of Ruby in Mac OS X (Laurent Sansonetti)
  • RubyCocoaのメンテナの人。
  • RubyCocoaを使うとこんなに簡単にアプリ作れるとは思わなかった。
  • Object-CのGCをつかえるようになるMacRubyには期待せざるを得ない。
  • ただし、iPhoneには搭載難しそう。
Rubyのゲーム開発の現状と自作ゲームライブラリStar Ruby (星一)
  • 2Dゲームが簡単にできそうなライブラリ。
Rubyで懐かしのゲームブックを作ってみよう! (サイロス誠)
Developing and scaling iKnow! (Zev Blut)
  • 20万ユーザ。80万リクエスト/day、82 controller、1000を超えるview、migrationは474。
  • nginx、mongrelmysqlを使用。mysqlは早いディスク、8CPU、メモリ10Gを用いた。
  • memcacheを今後使う予定。
  • 負荷が高いところ
    • ARのlengthは負荷を超あげてしまうのでsizeを使おう
    • openidはOPが遅くなっている場合F5連打されてコネクションを使い切ってしまう。timeoutを適切に設定すべき
  • ファイルフォーマットのext3は1ディレクトリに31997ファイルまでしか作れないので、キャッシュに使う場合は注意しよう
  • CIツールにオープンソースのkwalaを使っている。
Inside Tabelog's Backend (京和崇行)
  • 食べログの中の人。
  • 7000万PV/月。サーバ13台。50request/sec、rails1.2
  • Apache+mod_proxy_balancer+mongrel
  • mongrelを放っておくとメモリ食って落ちるのでcronで2〜3日ごとに再起動ソリューション
  • DB負荷対策にacts_as_readonlyableを使用。
    • mugic_multi_connectionはテーブルの数だけコネクション張りまくってしまう。テーブルが150個くらいになると死ねる。
    • acts_as_readonlyableは設置が楽
  • routesのパフォーマンスが悪いと聞いたので、mod_rewriteで対応。
  • memcachedのヒット率80%
  • mysqlのクエリキャッシュのヒット率50%
  • 負荷が高いため、includeは使わない、pagenateが遅い
  • 現在sessionをDBに格納しているがmemcacheに切り替える予定。
RubyGCをどけんかせんといかん (authorNari)
  • GCの内部実装の話。
  • ruby1.9で多少ましになった。某配管工ゲームを動かしてもさくさく。
  • 今後さらに改善していく。
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile (しだらようじ(dara))
  • Jpmobileの機能説明。日頃からお世話になっています。
  • 実機が無いので、友達に借りている。
  • xhtmlがつかえるかどうかを機種ごとに判定したいとのリクエスト(確かに!)
Rails症候群の研究 (前田修吾)
  • RubyなくてもRails動きますか?という質問があった。
その他
  • 舞波さんの名刺もらいました。

Kiss!Kiss!Kiss!

Kiss!Kiss!Kiss!

  • まじめにRSpecやろうかと思ってWEB+DB買った。
  • 関係者のみなさま超乙でした!

amChartに株価チャート機能がついた

amChartについに株価チャート機能が追加された。

Stock chart 1.0.1.0 Beta
http://www.marcelionis.com/2008/05/29/stock-chart-1010-beta/

うおぉ。これであんなことやこんなことができそうだ。

Firefoxのギネスに挑戦するページの地図にはamMapが使われている。

リッチな表現がほんとうに手軽になった。嬉しい限り。

予測市場

例えばだけど、数年後には平場の会議をPodcastで流し、QAサイトで陳情を受け付け、予測市場で政策課題の優先順位付けがなされ、法案骨子がWikiで議論され、ニコ動で演説にヤジを飛ばせ、重要な政策決定について頻繁にネット党員投票を募るような政党ができていたら面白いなとか夢見ている。

これは面白い。こんな政党あったら絶対投票します。

予測市場なら今でもできそう。マニフェストのどれが実現されるかをユーザ同士で予想し合うと。ま、政党が公式でやらないと意味がないかもしれないけれど、ユーザはどの政策に興味があるか、実現可能性を含めて考えてくれるので、できない理由はないな。

chumbyとかandroidとか

PC向けのWEBサービスはどうもやり尽くし感というか停滞感というか、以前のような熱さがなくなってしまったように感じる。
今はハードとつなげるのが熱い。その意味で、2ch赤色灯は先見性があったな、と思う。