YAPC::Asia TOKYO 2011
YAPC::Asia に初めて行ってきた。
@東京工業大学。
「Perlプログラミング言語の進歩を目的とする草の根のシンポジウム」である。
学会じゃないから、イベントっつーか祭りっつーか、そういう雰囲気。
なぜか、萌え系アニメオタクとアイドルオタクの空気になってて、どうも馴染めない。
プログラムオタクの空気ならまだ主旨通りでいいのに・・・なんでだろ。
Perl を使っている企業が大小問わず多数スポンサーについていて、
これはホントは弊社もスポンサーになるべきなのか?と思うほど。
Perl のモジュールを作ってる人や、仕事でPerl を使用している人のトーク。
有名企業の有名人のトークで話している内容が、体験済みの問題だったりしてよくわかる。
さすがにPerl ばかりを3年使っているとこういう感じになってくるんだな。
帰りに東工大の先生をしている元同期にばったり会ってビックリした。
なんか私は何をしているんだろう・・・と真剣に考えてしまったよ。。。
以下、内容メモ。
Perl 5.16 and beyond, Jesse Vincent
Perl 6 が出ても Perl 5 は頑張ってるんだよ!という、Perl 5.16 の話。
久しぶりに英語の講演を聞いた。
・ use 5.16; などとバージョンを指定することで、
今後のバージョンアップで機能が大きく変わったときにも後方互換性が保たれる。
・ Perl 5 からコアに関係ない機能をどんどん切り離してモジュール化していく。
Webアプリケーション高速化, mala
一般的なパフォーマンス対策としては、ボトルネックを探して、キャッシュを利用して、処理はまとめて行う。
1つ1つの処理を少しずつ高速化するのは自己満足で終わりがちで、不要な処理をとばすほうが成果は大きい。
DBからデータを引かないでキャッシュするとかは、その典型。
この辺は私がここ数ヶ月やってる仕事そのものなので、合っててよかった、という気持ち。
そのあとの話が、へーやってみよう、という類で、為になった。
あんまり一般的じゃないやり方だけど、ということでいくつか紹介してくれた。
・ Bloom Filter というクエリを間引く技術を、存在するかしないかわからないデータを検索する際に使用するとよい
・ キャッシュのウォームアップとして、ユーザが次にアクセスしそうなデータを先取りしてキャッシュに乗せる
・ Varnish, ESI というものの利用 (インフラ側なのでピンと来ず・・・)
でも、あんまり一般的じゃないことをするとメンテナンスしてくれる人がいなくなるよ、と。
きちんとドキュメントを整備しない限り、ずっと自分でやることになるんだよね。
新はてなダイアリーの裏側, Yasuhiro Onishi
来月から、はてなダイアリーがリニューアルするということで、どの辺を改善したかの紹介。
XSS対策をしつつ JavaScript を自由に書けるようにしたい、ということで、ドメインを分けることにしたらしい。
ドメインを分けて iframe 間でやり取りさせることで、ドメインをまたげないデータは不用意に使われたりしない。
なかなか新鮮な考え方だった。
Webアプリでパスワード保護はどこまでやればいいか, 徳丸 浩
ソニーの情報漏えい事件では、漏えいしたパスワードは、パスワードのハッシュだったらしい。
それは安全なのか安全じゃないのか?という話で、Perl は関係ないけど興味の範囲内。
パスワードを盗まれたときの対策として、アカウントロックを実装するのは基本。
あとは弱いパスワードを使われないように設定時にチェックすること。
で、盗まれたパスワードがハッシュ値だったとして、それを解析してパスワードがわかるのか?という話。
短いパスワードで Salt がないと、RainbowTable というやつでわかるらしい。
あとは解析をやりにくくするために、ハッシュの強度が問題。
Salt をくっつけてハッシュをとる、何回もハッシュをとる Stretching という方法が有効。
Perlで構築された中規模サイトのDC引っ越し記録, FUJIWARA Shunichiro
サービスをなるべく止めないでデータセンターを引っ越しするため、アプリやサービスを全て多重化した話。
Mobage オープンプラットフォームの事件簿, Toru Yamaguchi
・ 集計データを生成するときのデッドロックでハマった話
・ DBのマスターとスレーブがいるときにDELETEが遅くてハマった話
・ 公式アカウントや芸能人のアカウントなど、
極端にデータが多い人のパフォーマンスを改善するため1000件単位で処理した話
こちらもなかなか仕事と関係する話で興味深く聞いていた。
今やってることは、他の会社でも同じようなことをしているんだな、という感想。
他言語から見たPerlのテスト, Masaki Nakagawa
Perl は Test Anything Protocol が揃っていてよい。
Catalyst も Catalyst::Test, Test::WWW::Mechanize::Catalyst, Test::WWW::Selenium::Catalyst など。
でも、Ruby on Rails などはもっとテストツールがあったりするので、Perl ももっと真似するべし。
Apporoで類似文字列検索, Toshinori Satou
もしかして○○ って出すときに使うような、似た文字列を検索するモジュールを公開したよっていうお知らせ。
デモがエラーで動かなかったのは残念。
Lightning Talks 1
全18件、5分ずつのトーク。
Perl の話は3件くらいだったかな。
他はシュールなアプリを作った話(アニメ・ゲームネタ多し)と、スポンサー企業のエンジニア募集の話。
けっこう皆さん盛り上がっていたけど、わからない話が多かった。
途中で地震があって、講堂がミシミシって鳴って怖かった。
震度3,4 くらいかと思ったのに、震度2とは・・・
新しそうな建物だったけど、そうでもなかったのかな。