読者です 読者をやめる 読者になる 読者になる

北海道苫小牧市出身の壮年PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

今日はYAPC::Asia Tokyo 2010前夜祭の日です

perl レポート

YAPC2006年から出ているので今年で5回目になります。今夜東京工業大学大岡山キャンパスで開催される前夜祭に出席します。

なお、去年に引き続きgihyo.jpさんの特集にレポートを掲載させて頂けることになりました! このブログとgihyo.jpさんの方と両方にメモとりますので、合わせてご覧下さい。

yusukebeさん「イントロダクション」

  • Ustreamはやってません。自分の回線で勝手にやるならOK。
  • PerlCasualとは
    • 意図 → 「カジュアルに」利用者としてPerlを使う
    • 三度活動した
  • 今日のテーマ → WAF
  • Plack/はてPSGI
    • PSGI の developer = WAF作成者
    • Plackで直接Web Applicationを作りたくなりがちだが、違う。WAFを使うべき
  • 今日のLTは初めての人もいる
  • 岡田有花さんとの対談もおたのしみに!

WAF作者+利用者の集い

nekokakさん「神威 - Plack base frame work」
  • Webだけでない。CLI(バッチ処理等)も意識したFramework
  • PSGIへ対応
  • 去年発表したSmorkerはHTTP::Engine
  • Sledgeを使えれば、違和感なく使える
    • 学習コスト面
    • Sledgeが好き
  • バイルのプラグインが豊富
    • バイル実績も6公式サイト。今後もメンテされる
  • config.pl/config_local.pl → Arkを参考にしたもの。perlコードをコンフィグにできる。
    • YAMLより柔軟性が高い
  • Kamui::Container → Object::Containerのようなもの
    • Mooseへの依存をなくした
  • viewはTT、Text::MicroTemplate::Extended、JSON のどれか
  • distpatchのtableは集中管理する
  • authorizerはSledgeより細かく設定が可能
  • まとめ
sugyanさん「Ark」
  • 今回は全裸は封印
  • Ark
    • typesterさん作
    • Catalyst like
    • 実績も多数
    • 資料は去年のAdvent Calenderにもある
  • 変更点
    • Plackベースに変更
    • 非同期アプリも対応
    • ark.plの廃止
    • Path::AttrRouterを分離
      • CPANにはもう少しで上がる→「去年も言っていた」
  • 必要最低限 → app.psgi、lib/MyApp.pm, lib/MyApp/Controller/Root.pm
  • デモ ((cat > でファイル書き込むのはecho使うより男らしいw)
    • 最低限のファイルを作って、plackup -e で起動
  • setup_minimal → 必要最小限だけのロード。Shotgun(plackup)向け
  • 今後
    • Model、Form などを分離
    • View は考え中
    • CPANへ載せる
  • まとめ → 鎌倉移住キャンペーン!!
charsbarさん「Mojo
  • Mojoの情報 → Mojoに関してのcharsbarさんの過去のプレゼンも参照
  • 実績
    • インフラアプリ
    • 不自由な環境でのモック
    • さっくり → 気軽に作って、気軽に消す
  • 問題もある
    • アプリの書き換えが必要な変更もおこる
    • 記事に書いた物がすぐに使えなくなることも
  • スライドもMojo × Websocket にてやっている
    • ケータイとかでも見られる
    • 200行ほどで書かれている
    • $app->secret → cookieを安全に使う
  • HTTPもWebsocketも1つのスクリプトで対応可能
  • はてなおや@naoya_ito*1さんのMojoの記事は多数RTされ、有名に
  • 課題 → WebSocket に関しては Plackと連携できていない
  • コミット履歴を見ると、「コードの整理」が20〜25%
    • きれいにする、ということが重視されている
  • 後方互換重視の人は、もう少し我慢をすると使える段階になる
  • ドキュメント
  • CSSセレクタによるテストを実装中 → Mojo::DOM
  • 最適化に関しては、不十分かもしれない
    • 自前で最適化をするとよい。本家にフィードバック
  • 元々は、フレームワーク for フレームワーク → 柔軟な作りとなっている
  • APIの変更が不安な場合はサブモジュールとして使う → 例: bootylicious
tokuhiromさん「Amon」
  • Amon 2.0 がさっきリリース
  • WAFとは? → 感心ごとの集中、コードの重複を防ぐ
    • 各自が好きに作ってよい
    • WAF のベースとなる共通部分は、共通化 → Plackとか
    • 感心ごとは人によって違う → 最適なWAFは個人によって違う
  • Amon2のコンセプト
    • Sledgeライク。Catalystは嫌い
    • 有名なモジュールのみを使う (例えばpadwalkerは避ける)
    • ミニマムに。758行
    • XSは使わない。mo[ou]se は使わない。
    • できるエンジニア向け
    • 使う人は、コードを全部読むのが前提
    • WAF依存のノウハウがないようにする
    • Plack, Xslate(高速、開発が速い), DBIx::Skinny
    • Router::Simple Tiffany Log::Dispatch, .pl の設定ファイル
  • 嫌なフレームワーク
    • 依存が多い, 突然Moose依存, XS, 起動に1秒
    • evalを使う, 後方互換がなくアプリを書き換えが必要

おしらせ

チェックインのときにもらったホルダーが入場証になるので、なくさないように。

(ホルダーの落とし物があるので、落とした人は名乗り出て下さい)

Lightning Talks

uzullaさん「TatsumakiJavascript で ウェブチャット(とか)」
  • FaceBookが人気 → 「いいね!」
  • Tatsumaki とは → Comet
    • WebSocketは、動かないブラウザがある
    • FlashiPhoneでは動かない
  • デモ → http://s.cfe.jp/chat
  • 難しいのか?
    • Perl側 → Handlerを用意するだけ
    • JS 側 → コールバックを書くだけ
    • 環境整備 → cpan -i で簡単。起動も plackup
  • Cometの利用箇所
    • チャット以外にも、メッセージ通知も
    • いろんな環境で動くのがいい
  • JSONP を使えるようにするクイックハック を紹介
kawanetさん「OSDC.TW に行ってきました - Shibuya.pm in Taipei 報告」
  • 海外のYAPCで、英語を習得しよう!
  • YAPCを海外で
    • ハワイは大変なのでTaipeiで
    • 日本の著名なハッカーが、英語でプレゼン
  • kawanetさんのトーク
    • Something Xiaolongbao → 枠をまずとるのが目的
    • みなさんも、Perl Casual などを使ってどんどん発表するのがいいのではないか
  • 今年のテーマ 三次元
  • 実装方法
    • Perlも利用
    • CSS3 のドロップシャドウを利用
xaicronさん「簡単サブコマンド」
  • サブコマンド → git add の 「add」
  • CPANモジュールで実現
    • App::Cmd → デファクトスタンダード。1コマンド1モジュール
    • App::CLI → 作りがシンプル。ソースを読まないと理解できない
    • CLI::DIspatch → charsbar氏のモジュール。Light App::Cmd?
    • これらは、すべてモジュール化(.pm)が必要
  • Getopt::Compact::WithCmd
    • .pl 内だけで済ませる
    • Getopt::Compact と同様の使い勝手
    • サブコマンドごとのオプションに対応
    • サブコマンドのネストに対応
    • 必須オプション設定
    • GetOpt::Long のようなオプションも利用可能
    • Usageの表示にも対応
  • デモ
  • Dispatch は非対応。自前で
刺身さん「MaatkitでMySQLチューニング」
  • Maatkit とは?
  • mk-query-digest → スロークエリログの統計データの表示
  • mk-query-profiler → EXPLAINより詳しい情報
    • ディスクI/Oなど。プロファイリングによりわかる。
    • 導入が非常に楽
    • I/O周りに注目してプロファイリングする例
  • 結論 → ランダムリードが発生していた。チューニング後高速になった。
koba04さん「モダンPerlの裏側で...」
  • 外部の会社から納品されたコードのお話
  • Case1: HTMLと仲良し (2010年納品)
    • perl script内に HTML
    • perl CGI」でググると、こういう記事が
    • 2007年にtakesakoさんが書かれた「いまどきのPerlプログラミングについて」がよい
  • Case2. ○○なPerl
    • bareな文字列 trueの利用や $this や camelケース
  • Case3. 脆弱
    • CGI->redirect にて exit していない
  • まとめ
    • use strict だけはつけてほしい
    • Perlベストプラクティス を参考
    • 書いたコードに疑問を持って見て欲しい

ITMedia News記者「岡田有花」さんによるスペシャルゲスト対談

  • なり染め(結婚報告?) → 2008年
    • 当時はエロいサービスを作っていた → 今も
    • 2年ぶり2回目の再開
    • ネットで見るより地味でした。地味ですか? → 地味です
  • Twitterで質問を募集した
    • 「なんでそんなに美しいのですか?」 → 自作自演でした
    • 他はなしw
  • Facebookが流行るとかFacebookが流行るとか
  • SNSgree, mixi, DeNAの三大ソーシャル企業の方が参加している
  • WAF(作る道具)は揃った → 最近面白いWeb Applicationは?
    • 流行った後に紹介している。逆に聞きたい。何が流行っている?
    • Facebookですね」
  • mixi と同時期に始まった。当時はMySpaceに主導権があった
  • 一週間前までは、FacebookのIDはあったけど使っていなかった
    • 急にユーザが使い始めたので使った
    • サービスの内容よりも、ユーザの人数で決まる
  • 業界が乗っかって失敗したサービス → Second Life
    • 広告業界が広告で汚染して、そのまま去った。
    • 最近だと、Twitterに来ている。UStreamも。ただし、ユーザベースが固まっているので大丈夫か
    • 電通さんは、ネット業界に資本を出してくれるので、それはありがたい
  • Facebookからお金をもらってるわけではありません」
  • Facebookをなぜ広めたのか → 面白かったから
  • その前はアメーバピグを使っていた → 面白い
    • JSとかJCとかで大変なことになった(記録は自主規制)
    • ただし、知らない人とコミュニケーションはめんどくさい
  • Facebookは、知っている人と素早いレスポンスができるのがよい
    • IRCとかチャットも面白い。これらは古い仕組みだが、IRC最強説も。
  • リアルタイムのネットサービスは、暇な人だけしかできない?
    • 廃人になる。YAPCの準備ができなかったりする
    • みんな廃人になるのはよくないのでは。
  • ATNDはいいサービス → 人間のアクティビティを「サポート」するもの
    • ATNDがサービス名とは知らなかった
  • 普段見るウェブサービスは?
    • Yahoo。もしくはTwitter。女子っぽいのがいい。Facebookは女子が居ない
    • ユーザは、実は女性の方が多い。
    • おっさんの日常も面白いよ! 「たらこ焼けた」
  • 岡田有花さんは昨日誕生日
    • 今年の「クリスマスは一人で楽しく過ごす」記事は、後輩に任せる
  • 婚活系のサイトも面白い → インタネットは出会い系
    • (男女ってわけでなく)インタネットの出会いが一般的になっている
  • GreeSNSではないんじゃないか。ゲームコミュニティでは?
    • Greeの田中氏は「若い人は、ヴァーチャルとリアルの人間関係を分けない。だから、SNSだ」とおっしゃっていたそう
  • 楽しんでいる人達は、実名を出すことは気にしないのでは?
    • 学校で実名を出さないことを教育している。子供は実名を出さないと思う。
  • 昔は、空き地のようにのびのびと実名でインタネットを使っていた
  • 「あなたの知らないインタネット」もあるはずだが、どこに取材すればいいのか?
    • 子供の世界は、大人からみた目線でしかわからない。が、あるはず。
    • マックで見かけた東工大生(?)の帰国子女がFacebookを使っていた
  • 開発者は、はてブがつきそうなサービスを作ってしまう
  • 女子高生の知り合いを作って、利用されているサービスの実態を知りたい
    • でも、若い社員にお願いしたい
  • otsuneさん「iPhoneをDISった時の話を」
    • 発売後、2年後に買った
    • 当時は要らないと思った。ひろゆき氏も当時は同意見だった。
  • Facebookやりましょう(お金はもらってません)
  • otsuneさん「TwitterをDISった話を」
    • 友達がやってなかったから
  • Facebookは、電話帳と連動する
    • どこで儲けるのか? → 金儲けの話はちょっと・・・
    • mixiも同じことを考えている。
  • Facebookの「もしかしてともだちかも」は非常に正確すぎる
    • skype等の情報とも連携している? mixiもそういうことをしている?
  • mixiTwitterでいい話
    • uzullaさんの"美人な"奥さんは、mixiで再会した!skypeで愛を育んだ!
    • 会場から拍手
  • Q. mixiiPhoneで使いにくいって話ですが、mixiタッチは使いやすいのでは?
  • A. mixiアプリのことだった。mixiタッチが推奨
  • Twitter に不用意に変なことを書くと、リプライがすごい → Facebook使いましょう
  • 「将来の夢は?」「お嫁さんになりたい」

合わせて読みたい

*1:Thanks to @otsune