2013年9月26日木曜日

YAPC::Asia Tokyo 2013 参加メモ(二日目)

前稿に引き続き、聴講したトークの雑感を箇条書き的に。

Mojoliciousでつくる!Webアプリ入門 by Yusuke Wada

  • WAF 自作も楽しいけど、そこは本題じゃないんだからとりあえず WAF 使っとくのが良い、と。
  • ライブコーディングでさくっと作られてたのですごい簡単感が伝わってたと思います。
  • 「分けることで分かる」「少しづつやる(ことで俺スゲー感を持続)」俺スゲー感はモチベーション持続に有用ですよ、本当。新しいことやると楽しいんですよね。
  • CCF は WAF 使ってないんですが、特に model がきちっと分かれてないところは次の大改修前には手直ししたいという気になりました。

Programming AWS with Perl by Yasuhiro Horiuchi

  • with Perl 要素少なめ。
  • Python 製 AWS CLI が提供されてるので、Perl での自動処理用にはそれに対する wrapper AWS::CLIWrapper を使えば良いのではないかと、という感じですかね。
  • CLI と API 直叩きモジュールとどちらが良いという質問がありましたが、自動処理用には CLI 経由でいいでしょうけど、アプリ的にはモジュール使用なんじゃないですかね。

What's new in Carton & cpanm by Tatsuhiko Miyagawa

  • もちろん cpanm は使ってますけど Carton は使ってないんですよね。個人の趣味の領域だとそこまで必要性を感じないというか。
  • git URL 可になったのは patch 版指定とかできて嬉しい感じではあるんですけど、Dist::Zilla で github に置くと普通はインストール可にならないんで、その辺どうするのがいいのかな、と思ったりします。

GitHubでつくる、たのしい開発現場 by Hiroki OHTSUKA

  • どっちかっていうと精神よりというか、本来そういうことの方が重要だとは思うんですが、やっぱり具体的なツールとか Tips の方が分かりやすいんですよね。

可視化のためのPerl by Muddy Dixon

  • 可視化には Explanatory (ストーリー説明) と Exploratory (ストーリー探索) の 2 種類がある。
  • マイニング技術者はドメイン知識が少ない v.s. ドメイン専門家はマイニングの知識が少ないので可視化してドメイン専門家に見てもらおう、と。
  • DataCube の開発止まってるじゃんということで、Data::Cube をリリースされたとのことですが、「僕はこの手の処理はRでやります」という衝撃の結末からは、どうせこのモジュールも開発止まるんでしょ?、感が激しくします。

本当にあったレガシーな話 by Daisuke Maki

  • livedoor blog のモダン化について。モダン Perl 入門 増補改訂版 に書かれるそうです。題名は増補改訂版になっていますが 80% 変わっているとのこと。
  • 発表的にはとりあえず mod_perl dis だったと思っておけば大体合ってるんじゃないでしょうか。
  • とにかくログをとることがまず最初。設定切り替えには use constant による定数たたみ込み最適化の利用をすると良い。
  • 他色々あったんですが、$0 変えると ps で見たときに分かるというのは Tips は面白かったです。

スマフォアプリ開発を支える認証認可アーキテクチャ by Rieko Suzuki

  • 執筆記事の著者写真の時点でなんかもう色々と違う気がしましたが「糞アプリ」発言で逆に安心しました。

PhantomJSによる多岐にわたる広告枠の確実な表示テスト by Yusuke Yanbe

  • Selenium::Remote::Driver を使えば headless ブラウザである PhantomJS を操作できるのでそれを使ってテストするという話。

フルテストも50msで終わらせたい 〜 FreakOutの取り組み 〜

  • 最初にさすがに 50ms は無理ですとの潔いお言葉。
  • 一日目の soh335 さんの発表と結構被っていたとのこと。テスト用ユーティリティモジュールも用意されているそうです。
  • 実行順序に依存するテストを避けるために、テスト順序のシャッフルがおすすめとのこと。
  • File::Find, List::MoreUtils, Parallel::ForkManager, Net::OpenSSH, TAP::Harness といった CPAN モジュールを組み合わせて分散実行することで 2,000 秒 over → 180 秒に短縮。
  • CPAN モジュールの組み合わせというのがとても Perl らしくていいですね。
  • 「高速なテストは開発文化を変える」手元でやるより push した方が速いのでとりあえず push する文化に→コードが早期共有されてレビューも進み品質も向上。

LT

とりあえず分かる範囲でメモ。名前が分からない方とかもし抜けてたらすみません。

  • テストカバレッジについて http://coveralls.io/ というサービスがある。
  • DBIx::* の新しいモジュール。
  • makamaka さんの同人活動レポート。
  • HTTP から SMTP 送信ができる Haineko について。
  • Perl 入学式と近所の Perl Mongers のおかげで初心者でも「つぶやいてないでコード書け」というサービスができました!という話。いい LT だったと思います。
  • papix さんの Perl 入学式活動レポート。
  • kamipo さんの mysql-build の話。
  • もっとネタモジュールを!ということで netacpan.org できました。
  • kamadango さんのマイクロコミュニケーションの話。
  • tokuhirom さんの Test::Power っていうか HTTP::Body::Builder 作ったった。
  • mruby_nginx_module について。
  • pjf さんの method add_datapoint( Str: $goal!, Int:$timestamp) みたいに書ける Method::Signatures の紹介。
  • takesako さんの Perl クイズ。近藤嘉雪先生が優勝してました。チート級。識別子が 251 文字以下とかそんな制限あったんですね……

Keynote by Tomohiro Ikebe

  • 「Management and Perl culture」というタイトル。
  • マネージャーで画像検索するとリア充 マネージャーって管理するというより支える方じゃないの?
  • できるエンジニアにできるからマネージャーやれ、は最悪。とはいえチーム内のリーダーシップは必要。
  • 社内に対する広報(エンジニアの仕事が意味のある仕事だってことを伝える)ことも大事。
  • ……そんなに年が変わらないということにちょっとショックを受けました。

YAPC::Asia Tokyo 2013 クロージング by Daisuke Maki

  • 牧さん、櫛井さんのツートップによる YAPC::Asia はこれで終了、とのこと。後を継ぐ人が居ないとこれで終わり、ということなんでしょうか?
  • のべ参加者 1,000 人オーバー。うーむ、すごい。

まとめと余談

  • 今年の YAPC は Perl の話題が多いな、とかいう tweet を見ましたが、確かに Perl 寄りな感じで個人的には嬉しかったです。
  • 本当は今年発表できたらなーと朧気に思っていたのですが(Dist::Zilla の話とか)、Minilla と Milla のトークが応募されてるし、しかも Ricardo SIGNES ご本人来てるしってんで無理ゲーでしたね。LT できたらなーというネタは今年は余裕で間に合わなかったので来年に LT できたらなーと思っています。
  • 今回新しいノート PC (VAIO Pro 13)で参加しました。今まで一台のノート PC をどのシーンでも使い回す感じだったので 2kg 前半まで選択肢に入れていたのですが、重量というよりもバッテリーの持ちからこの手のイベントではちょっときついな、ということでモバイル用として購入。シートバッテリがなかったとしてもイベント中はもってそうでした。重量はあんまり気にしてなかったんですが実際に使ってみると、部屋の移動のときに横に抱えるのも楽だし AC アダプタもなくてそのまま運べるしで良かったと思います。

YAPC::Asia Tokyo 2013 参加メモ(一日目)

遅ればせながら、YAPC::Asia Tokyo 2013 参加メモ。

目が覚めたらいきなり当初乗るつもりだった電車の時間でしたが、最初の説明にわずかに遅刻する程度の時間で着。いきなり席が埋まってる感じでちょっとびびりました。メインの藤原洋記念ホール 1階席は後ろからの入り口が2ヶ所あるのですが、一度どっちかの入り口から入ってしまうと途中で別の通路側まで行くのは狭い席の間を移動するしかなく(ステージ直前では移動できたかも)手前通路側が埋まりがちになっていた気がします。 以下、聴講したトークの雑感を箇条書き的に。

Postcards from the Edge: The State of Perl 5 Development by Ricardo SIGNE

  • Dist::Zilla でも大変お世話になっている RJBS こと Ricardo SIGNES 氏の Perl5 の今後についての発表。
  • とりあえず pumpkin というのは Perl 5 のリリースマネージャ(というのが正確か分かりませんが)的な立ち位置の人だ、というのは以前の参加の時に聞いているので知っているのですが、何言ってるのかさっぱり分からない参加者の人とか居たんじゃないかな、というのは少し気になりました。
  • 「Perl5 は Perl5 であり続ける(意訳)」という言葉は印象的でした。
  • postfix dereferencing @{$hoge}$hoge->@* と書けるというのは確かにちょっとキモいですが Perl らしいキモさな気がします。実際 $hoge->[3]->{key} とか書いた後、あぁ array dereference しなきゃってんで、カーソル戻して @{ } で囲うとかいうのは超頻出パターンなので便利にはなるはず。
  • 本体開発側では互換性によってはじかれるパッチとか改良とかは少ないかもしれないですが、利用者側で互換性のために使用しない機能、とかは割とある気がします。モジュール書いててもより低いバージョンをサポートするためにより面倒な方法に書き直したりすることもありますし。強制アップデート的なことができれば楽かもしれませんが。

Perlのモジュールを公開するときに気をつけておいた方がよい**個のこと by Kenichi Ishigaki

  • 基本的に CPANTS の Kwalitee の説明という感じで、Test::Kwalitee::Extra とか書いてるくらいなので大体のところは既知でした。
  • バージョンの形式(v0.1.5 だとか 0.1.5 だとか 0.001005 だとか)について聞いてみましたが、「特殊なことしないのであれば 0.01 とか使うのが楽」とのことでした。なんかコンセンサス的なものが欲しいです……

Perl and Riak - 分散データストア Riak を Perl から "爆速" で使うために - by Tatsuro Hisamori

  • FreakOut さん所属。(前からそうで気付いてなかっただけかもしれないですが) YAPC での存在感が大きくなってる気がします。
  • 内容についてはどうこう言えるほど知らない分野なので割愛。
  • 「継続的に運用していくシステムにおいては"テストができる"ことはマスト要件」これ本当大事。

Inside amon2-livedoor-setup.pl with web application development 2013 by Kazuhiro Osawa

  • Team Geek 買いました。
  • 溺愛の初期設定スクリプトだと社内事情が考慮されてないので、各社でひな形設定スクリプトを作っておくとよいよ、という話。
  • コピペを排除するためのひな形スクリプトがコピペ対象に、というのはものすごく有りそうな話。
  • 「開発から本運用に必要なすべてを盛り込む」これは確かに大事だけど抜けやすそうな気がします。

SPDY、HTTP/2.0の使い方 by takesako

  • 使いどころ、というところまでは達してなくて今使うならどうするか、くらいでしょうか。
  • HTTPS 接続を強制する HSTS (HTTP Strict Transport Secruity) は初めて聞きました。
  • Outbound Port 80 Blocking は笑ってしまいましたが、でもそれでもいい気がしますね。企業等のフィルタリングが辛いかもしれませんが。MITM 的に中継する HTTPS フィルタ proxy とかは SSL によるセキュリティの根本的なコンセプトを損なう最低の存在だと思っているので許容不可。

Types and Perl Language by Masahiro Honma

  • 人全然居ないんじゃないの?と思ったら座れませんでした。
  • トラブルがあってデモができなかったり、本論に入る前のところで終わったりした感じで、もっとちゃんと聞きたかったですね。
  • ひょっとしたらトラブルが無かったらそうだったのかもしれませんがバックグラウンドの説明を廃して Typed Perl の実例側から話す、という流れもありだったんじゃないかと思います。

モダンPerlリファクタリング by Naoya Ito

  • Perl 徹底攻略 掲載ネタです。毎回全く新しいネタを話すというのはとても難しいことだとは思うのですが、既に書籍を持っている状態で聞くと割と悲しい気分になったりするので、発表→書籍出版の順番になるようにしてもらえると宣伝にもなって双方がハッピーかもしれません。いや、トーク内容にも書いてあるし確認しておけば良かったんですけど。
  • とにかくまずはテストを作ること、細かいテストをちまちま書いていくという意味ではなく、とにかく大外の I/F 切ってテストを書いて、あとはテストとコード修正を並行していく、という感じでしょうか。
  • Test::Base で DATA セクションに置くとかまではやらないですけど、テストケースをデータにまとめておくってのは良くやりますね。

perl な web application のためのテスト情報 by soh335

  • テストを書いてもらうために、テスト用の共通モジュール t/Util.pm を作ってテストを書く障壁を下げている、とのこと。
  • Web application に限らないですし、各種 Test モジュールの簡単な紹介もあるのでさらっとスライド見ておくといいんじゃないでしょうか。
  • コードだけじゃなく、ファイル命名規則だとか用語チェックだとかもテストすればよい、というのは確かにその通りでわざわざ別の枠組み使わなくても TAP で合わせてしまえばいいですね。

はてなのサーバ管理ツールの話 by Yuuki Tsubouchi

  • ものすごくざっくりまとめると、運用系のツールは各種あって組み合わせの柔軟度は持っていたいけど設定が分散するので中央のコントローラーは内製といった感じでしょうか。
  • 知見や経験がほとんどないところなんでなんとも言えないですが一通り紹介というよりはポイントに絞って話してもらったほうが良かったかもしれません。

LT

題目と発表者リストがあるかと思ったらスケジュールの所にないですね……。とりあえず分かる範囲でメモ。名前が分からない方すみません。

  • kazuho さんの prove の発表。prove は汎用 taskrunner である、と。(今後使うか分からない)拡張子限定の解除とか Tips 満載でした。
  • mobile factory の人。えーと何でしたっけ?モテる台詞でしたっけ?今年のネタ枠。
  • Tachikoma の話。依存ライブラリ指定を更新して commit して pullreq 出してくれる。n-click から 1-click だと商売になって、1-click から 0-click だと革命という台詞が印象に残りました。
  • yappo さんの HTTP::Builder::Body が欲しい、という話。
  • hirose31 さんの inspect running perl process という話。strace とかだと syscall しか見られないし gdb 系だと特定の環境に依存するしということで、inspect-perl-proc を作成。例えば perl プロセスが詰まってるときにどこの関数で詰まってるかとかが分かる。いや、これすごいんじゃないでしょうか。
  • yusukebe さんの YAPC::NA 行ってきた話。どこから来たの?で話ができるし、こちらから話を切り出せば聞いてくれるよ、とのこと。
  • eikichi さんの YAPC::Tohoku やりたい、という話
  • comewalk さんの OSS に対する貢献の話。別にコード書くだけが貢献じゃない、と。規模によるでしょうが、自分のような弱小個人だったりすると単に反応があるだけでも嬉しいですしバグレポだけでも「使ってくれてる人居たんだ(泣)」という気分になります。
  • bayashi さんの module 紹介。アップロードしたところで自分もすぐに使わなくなるかもしれないですが、ローカルにおいてるだけだと絶対に今の自分にしか使えないですが、上げれば誰かが使えるかもしれないですし、テストやドキュメントを書くので将来の自分にとっても役に立ったりするかもしれません。Milla, Minilla, Dist::Zilla とか使うと簡単にモジュールをアップロードできます。おすすめ。
  • gfx さんの Power Assert と Emscripten による perl.js の話。
  • mizuki_r さんの p5-Spica (Web service wrapper) の話。
  • Songmu さんの Riji (日記) の話。いや、中国語分からないっす。

以下次稿