30 Sep 2012

yapcasia 2012

ypacasia 2012 main hall

HOME | YAPC::Asia Tokyo 2012

yapc には初めて行きましたが, perl コミュニティの凄さを感じました. miyagawa さんが他のコミュニティのいけてるところを perl コミュニティにも持ってこようと発表していましたが, 自分も perl コミュニティから学んで活かしていきたいですね.

個人的あとで要復習の発表

memo

前夜祭

  • Officeで使うPerl Excel編
    • windows で perl
    • どれでも OK (activeperl, starawberry perl など)
    • module
    • Wind32::OLE
    • SpreadSheet::*
    • Excel::*
  • UV - libuv binding for Perl
    • 一般的な async io 抽象化ライブラリ
    • epoll, kqueue, event port
    • なかったら select, poll
    • win だとたいてい select しかなくて遅い
    • win にも IOCP という高速な API がある
    • Asynchronous I/O in Windows for Unix Programmers
    • ただしインタフェースが unix 系とぜんぜん違う
    • そのため libuv は高い抽象レベル
    • ほとんど独自のフレームワークといったレベルで, 逆に syscall に近い既存のライブラリよりもカジュアル
    • kayac での事例
    • スマホアプリの通信モデル構築
      • iOS 対応のパッチをコミット
    • perl binding
    • typester/p5-UV
    • libuv アプリのプロトタイピング用途に
    • api がほぼ一対一のデザインで, プロトタイプからの移植が簡単
    • document
    • libuv 本家もドキュメントは uv.h 読め状態
    • AnyEvent との比較
    • perl でやるんならこれでいい
    • 枯れている, バックエンドを選べる, ドキュメント充実, モジュール充実
    • livuv の AnyEvent 対応
    • libuv の抽象度が高すぎて難しい
    • 開発状況
    • 通信周りは done
    • ファイルIO まわりは未実装
    • win でビルド通るか不明
    • 自分が欲しいところだけ作った
  • Sqale の裏側
    • container, lxc
    • それぞれで nginx, sshd, supervisord
    • amazon linux + patched kernel (3.2.16)
    • grsecurity
    • tcp port bind, fork bomb の抑制をする自前パッチ
    • web proxy
    • ELB -> nginx -> container
    • nginx
      • lua-nginx-module
      • redis2-nginx-module
      • リクエスト url がどのコンテナに入っているかを redis で持っている
      • そこのロジックを lua で
    • ssh router
    • mizzy/openssh-script-auth
    • SSH_ORIGINAL_COMMAND

一日目

  • What Does Your Code Smell Like?
    • ランダムなシーケンスをソートするコードを perl6 に書き換える
    • 関数のプロトタイプ
    • everything is reference
    • explicit reference
  • Web::Security beyond HTML5
    • ajax
    • xss, データの盗聴
    • xss
    • ie の content-type 無視
      • html でないものが html に昇格して xss
      • text/plain が html として解釈されたり
      • ie は最終的にファイルタイプに基づいてコンテンツを処理する
      • そのメカニズムは文章化されていなくて複雑
      • content-type, x-content-type-option, windows レジストリの関連付け, ie の設定, url 自身, コンテンツそのもの
      • 例外も多く, よく挙動も変わる
    • xss が発生しがちな状況
      • json 文字列内, jsonp コールバック名, text/csv はそのそもエスケープできない
    • データの盗聴
    • json array hijacking for android
      • android の古い (2.2, 2.3) で古い攻撃手法が通用する
      • property setter の再定義
    • json hijacking for ie