YAPC 2日目

今日も良い天気!

memcached in mixi by kazeburoさん

自分も使ったことがあるので mixi のような大規模使用例の話は楽しみ。
すみません。以下にはいくつかメモ漏れがあります。

  • memcached って何?
  • さまざまな言語でクライアント API
  • memached の「分散」
  • get / get_multi
    • get_multi は非常に高速
  • delete
    • 上書き禁止の秒数指定できる→知らなかった
  • mixi での利用事例
    • Pentium4 / Pentium D
    • memory 4GB
    • Linux 2.6.x x86_64
    • ちょっと古めのマシン
    • 専用マシン
    • 100台以上
    • 1台につき 3GB の容量で起動
    • cache Hit率 94%(安定している値)
    • メモリ使用量 88%(安定している値)
    • memcached のレポートをメールで送られてくるようにしている
    • 監視は nagios (check_tcp)
      • 自社製監視ツールと rrdtoolで性能監視のためのグラフ化(通信量・クエリー数・使用量)
    • CPUに関しては、ロードアベレージは常に1以下。
  • 分散アルゴリズム
    • Consistent-Hashing
    • Cache::Memcached::Fastに移行しようとしている
  • ここでネットワークが切れた。

How to defend Apache/CGI against multi-byte XSS atacks by 竹迫さん

  • HDR写真
    • Shibuya.jpeg
    • 空前のHDRブーム
    • サンドハウス(情報漏洩!)
  • 統計
    • Webアプリの脆弱性情報の届け出件数増えている。
    • SQL injection が増えている(認知された)
    • 修正にかかる時間
      • 大人の事情で時間がかかる場合も
      • 商用製品 / オープンソース / 修正の開発予算
  • wafful.org
    • mod_imagefight
      • Apache2 の Output Filter で安全な画像を返す
  • 本題 サニタイズHTML Escapeしてもだめなケース
    • ブラウザ特有のマルチバイト XSS
    • 近日公開予定の mod_wafful で対策できる。Webアプリで対応するよりも良いよね。
    • 安全なWebを目指したい

20 modules I haven't ye talked about by miyagawa さん

英語で発表。

  • 20->10
  1. 1.YAPC and Wifi
    • proxy pac が面倒
    • HTTTP::ProxyPac
    • Mechanize 使った Evil なコード ktkr!
  2. 2.pQuery
    • pQuery::DOM の camelize が...
    • no capitalization 'pQuery::DOM'
  3. 3.Migrating PHP to Perl
    • 酔った勢いで PHPPerl のSession 共有
    • PHP data serializations /tmp{session_id}
    • PHP::Session
    • 使ったことない(笑)
    • でもパッチがたくさん来るよ
  4. 4 Rails, ActiveSupport
    • Rails のこういうの when = 60.days.ago
    • autobox
      • $durations = 1->month + 2->days;
  5. 5.Numbers
    • my $ttl = 608400604800; # 7 days
    • => my $ttl = parse_duration "7 days";
    • .conf に書くのがいいのでは。
  6. 6. Unicode
    • ちゃんと理解している?
    • UnicodeUTF-8 を . で連結すると?
    • use Encode; してほげほげ
  7. 7. UTF-8
    • ブラウザの URL に日本語があるような例を Perl でも
    • URI::Find::UTF8;
  8. 8. Japanese
    • ローマ字表記って1つに決まらない場合もあるよね
    • Lingua::JA::Hepburn::Passport
  9. 9. Online id/pw mangament
    • Perl で id/pw をハードコーディング?
    • LWP::UserAgent::Keychain 使えばいいよ。
  10. 10. XML::Liberal
    • XMLでよくある間違いをソフトウェアで直そう
    • XML::Liberal
    • XML が valid ならペナルティはないよ

Pathtraq by id:kazuhooku

  • 自己紹介
  • The Long Tail of the internet.
    • ヒット数が 1/10 のページは 2.75倍存在
  • Pathtraq の紹介
    • Alexa のようなウェブアクセス統計サービス
    • ページ単位のリアルタイム統計
    • ホットな情報を抽出して表示
    • Demo
    • データ
      • ユーザー数 6300人
      • アクセス数 1億件
      • データサイズ 100GB
  • Scaling
    • 初年度の必要メモリ量 24GB
    • データベースの分割は行わない
    • Main Serever 1台
    • データの圧縮
      • サイズ
      • 速度向上
      • ランダムアクセスが多いので主要テーブルはオンメモリ
  • 圧縮
    • URL は圧縮可能
    • gzip には短すぎる
    • 事前知識を使用した圧縮アルゴリズム
    • 圧縮の状態のままインデックス構築
    • Static PPM(Prediction by Partial Matching)
    • range coder をバックエンドに
    • Impl as MySQL UDF.
    • カウンタの圧縮
  • Query Caching
    • Keyed Mutex
    • Cache::Swity
  • メッセージキュー