プログラマーになりたい。

プログラミングや写真や本や読書会のことや、日常のこと。

YAPC::Asia 2009報告(1日目のみ)

ええ、1日目のセッションを懇親会でちょこっと飲んだだけなのに、翌日ダウンですよ。気を失ったように寝ていたそうです。きぃー!!とか思っても後の祭り。
なげいてもしょうがないので聞いた分のメモだけ(逐次)アップします。*1

10:00 Yoichiro Tanaka - ‎Webエンジニアのためのmixiアプリ開発ガイド‎ (40 分, 日本語):

  • OpenSocialにどういう方法で対応してあるのか。「Shinding」というのがある
  • mixiアプリのリリース前後(8/24〜31)の「起動しない」トラブルの原因や、どう対応したかの簡単な解説:
    • 一時は、サーバ数を×2さらに×2したが、その後元通りにまで落とせた
    • ピークは夜10時くらいかららしい(豆知識)が、トラフィックがのびはじめたとたんに落ちる
    • Shindingの致命的なバグ(ソケットを解放しない)に気づいてなかった
    • APIは重い。プロフの公開範囲判定が重いから
    • Devel::NYProfでの地道な分析とチューニングで、memcachedのヒット率を改善するなど
  • mixi側のスループット向上により、いくつかのアプリが負荷に耐えられなくなった状況がある。mixiアプリ開発者が巨大トラフィックにそなえるためのtips:
    • 起動プロセスでのマイミク情報受信がネックになることがある。
    • インフラに無理があるならGAE利用や、home画面の新着情報用アイコン(外部サーバになる)の枚数削減とかも検討するべきじゃない?
  • (JSだけで動く部分が多いような=通信しない方が楽って感じ?)
  • ※メモがてきとーなのは途中から入ったのと、もともとどうも興味がもてなかったせいです
  • 質疑:Q(JPA理事Emerson Mills氏).負荷テストはどうやったのか、十分だったと思うか? A.実際の平均マイミク数通り25人(豆知識)を想定したが、初期の利用者はアクティブな層だったので平均50人くらいだった(豆知識)りと、想定外だった部分はあった。が、必要なテストはしてあったと考えている。
  • Emerson Mills理事と終了後個人的にお話した。「テストは開発が遅れると、いちばんはじめに削られがち」とのこと。またApacheなどの「いじめかた」(笑)を教えてもらった。「1プロセスだけで、メモリ制限下でいじめるといいよ。開発環境レベルでも、結構いける。」

10:50 Tokuhiro Matsuno (‎tokuhirom‎) - ‎PSGI - Perl Server Gateway Interface‎

  • i heard someone saied 「tokuhirom‎+miyagawaの漫談」 about this.
  • フッタ:非同期DBの話はしません(パンフのタイトルは非同期DB云々だった)
  • 仕様とAPIと実装と…というようなレイヤの分離が大事
  • HTTP::Engineはそういうのが全部ごっちゃになってる。HTTP::Engineのメンテは今後、クリティカルなバグが見つかったら対応する程度かな
  • PSGIは仕様の提案
  • まだ固まってない部分があり、しばしば英語/日本語で会場とディスカッションになっておもしろかった
  • Plackはその実装
  • PSGI準拠ならGAEで動く」、「PSGI準拠ならmod_perl_lightで動く」「いっそPerl 6のCGI.pmにマージ」というような提案をすることも検討している
  • ディスカッションは#http-engine@perl.orgで
  • ※ちなみにぼく(だまん)はServer Gatewayってなんじゃらほいです。CGI的意味のGatewayか。この後もそうだったけど、どうもServerの意味合いが昔とだいぶかわってきてるらしくたびたび錯乱した

13:45 Shawn Moore (‎Sartak‎) - ‎API Design‎ (40 分, English)

  • まじえいごりょくたりなすぎしぬ。
  • WRITE TEST! WRITE TEST! WRITE TEST!

14:30 Hideo Kimura (‎hidek‎) - ‎modern Catalyst‎ (20 分, 日本語)

  • Catalyst‎ 5.8で変更された点の注意。「"モダン"な使い方とTips」。

16:10 Jonathan Worthington (‎jnthn‎) - ‎Solved In Perl 6‎ (40 分, English)

  • Perl 6の実装の1つ(?)「Rakudo」で動く例題による、Perl 6文法の入門みたいな
  • 演算子の前置記法っぽいの「@a=1,2,3; say [+] @a; // = 」6とかキモイのがでてきたり、
  • 「ガード」みたいな関数定義まであるし…まじなんじゃこりゃー。
  • 引数の型の違う同じ名前の関数を複数定義できるとかいうレベルではなく、f(::T T)とか(「2つの同じ型の引数をとる」の意)! パターンマッチでじゃんけんぽんの勝敗判定したりしてた。静的型付け関数型言語っぽくてマジやばいと思った。
  • ええと、なんかいま調べたら遅延評価もあるのか? Curryチュートリアル翻訳での既視感が(ようはHaskellっぽいということだと思う)。
  • あとSyntax sugar。anyとnoneとか。

17:00 ひろせまさあき (‎hirose31‎) - ‎『Ficia』インフラとPerlにまつわるエトセトラ‎ (20 分, 日本語)

  • mod_perl2で
  • Apachehttpd.confな話
  • 子プロセスが「太る」(メモリ使用量的に)ので、定期的に子プロセスを再forkするように
  • forkのタイミング: リクエスト増加に合わせて増やすと、forkのオーバーヘッドが同時にかかってしまうので、子プロセスを最大数起動しっぱなしにしちゃえ!

18:00 Lightning Talks (30 分)

  • (gfx) Moose
  • (fujiwara) PAAS、Salesforce(エコポイントのやつ。ストレージの一種らしい。よくわからん)、クエリあたり使用料がくそ高いので確認とかしない。一気にがばっととるように。さっきの続きからとるの専用の命令?とか。
  • (yuki kimoto)Mojo, ほかのWeb appの作り方(Catalyst, HTTP::Engine, CGI::Applicationとか)よりportable(Perl 5.8.1以降があればOK)
  • (tokuhirom)Test::TCP
  • (Daisuke Murase (‎typester‎)) http://im.kayac.com/ HTTPリクエストのPOSTで送りつけたメッセージをインスタントメッセンジャーに転送してくれちゃうWeb API
  • (yusukebe)"miyagawanize" aka. "THE PURPLE THING", in English. あった: http://yusukebe.com/archives/09/09/13/184216.html
  • (kamipo)MogileFS+nginxとかlighttpd…できたらいいな!
  • (Kazuho Oku)資料 Server:Starter…ってメモしてあるけど忘れてる!hot-deployに関するお話。で、古いプロセスを殺さずに、あたらしいシステムの子プロセスをがばっと作っておいて、動いたら古い方だけ殺す的な。

(Yuval Kogman)「nothingmuch」evalでdieしたとき、エラー処理どうするよ。dieをマスクしちゃうと、エラーの内容がとれないってこと?

買った!

モダンPerl入門 (CodeZine BOOKS)』(YAPC会場割引で10% off! サイン入り・ステッカー付き!)
Pythons & PerlMongers』(同人誌)

2日目みたかったものを妄想(でおぎなえたらいいな的な!)


いま気づいたんだけどこの2つ15:10でばっちり同じ時間帯だった。現場にいたら死ぬほど迷った結果たぶんmiyagawaの方に行ったんじゃないかというきはするけど、どっちにしても後悔しつつ満足していたことでしょう…。

*1:Perlのイベントだけど、楽しんで多様に見えたかもしれないけど、JCUGのスパイとして情報収集につとめたのであって決して裏切ったわけではないのよ!Perl 6さわってみたいのもその一環なんだからかんちがいしないでよねっ><!

Creative Commons License ©2007-2021 IIDA Munenori.