YAPC::Asiaに行った

木曜日、金曜日は大岡山に行ってYAPCを見てきました。
自分が見たのは以下のトーク。多分メモにほとんど意味はない。。。

それからLTと基調講演。結構盛りだくさんでなんだかやる気の出る2日間だった。寝坊してしまって見れなかったセッション(RegExp Internalとか)があったのは残念だけど。。
意外とPerl6関連のトークは多くなかった。Perl6の話はなかなか面白かったので、来年はPerl6の話しが増えてたりするといいな。

スタッフの方々、ありがとうございました!

以下メモ

XS書きのためのPerl MAGIC 入門

  • タイとかlvalueとか
  • perl -MDevel::Peek -e 'Dump $^H'
  • MAGICはDevel::Peekでダンプして中身を見れる
  • perl -MDevel::Peek -e 'Dump \@ISA'
  • CPAN上のMAGICを使うモジュール
  • XSの場合、どんなMAGICがあるのか意識しないといけない
  • sv_setX_mg系のAPI -> 起動する sv_setX -> 起動しない
  • sv_isobject : MAGICハンドルする
  • xsubppのdefault typemap -> たまに起動する : premitiveはハンドルする
  • Scalar::Util参考になる
  • MAGICは遅い
  • MAGIC_extのhookは怪しい。
  • XS Template : closureのXS版
  • 実行はclosureよりもすごく速い。生成はやや速いくらい

http://d.hatena.ne.jp/gfx/20090912/1252721360

API Design - Shawn Moore (sartak)

  • Path::Dispatcher, Dist::Zilla, IM:Engine
  • all these modules are moose based
  • the secret of APIs
  • So Many test. please
  • why?
  • testを書けばAPIが堪え難いかどうかわかる
  • Class::MOP
  • traits -> ロール指定
  • シュガー層の分離
  • Dist::Zilla

plagin based
多分MIからIを抜いたもの?
CPAN::RT

  • IM::Engine -> Instant MessagingのFramework
  • Role == Trait? trait from small talk.
  • 結論 : テストかけ

とりあえずテスト書けってことはわかった。APIデザインの一般的な話しというよりは、良いAPIを持ったモジュールのどのへんがいいのかってことを解説する感じだった。

http://sartak.org/talks/yapc-asia-2009/api-design/

Modern Catalyst - (hide)

  • M V C ::がdeprecatedになった
  • NEXTがdeprecated
  • mk_accessors -> has
  • ...とかとか
  • use Moose; extends Catalyst ...
  • Catalyst::Pluginは基本的に使わない. 怒られます
  • Helper Method, method modifierでごにょごにょ
  • Roleに切り分ける -> setupに突っ込める
  • BEGIN phaseでCatalyst::Controllerをextendする
  • Controllerの拡張 -> Moose::Role + MooseX::MethodAttributes
  • ActionClass
    • Catalyst::Actionの拡張
    • ActionClass2つは使えない
  • 最近はActionRole
  • Dispatcher
    • default :Private -> 使えなくなる
    • default :Path
    • index :Path :Args(0) -> index :Private
    • Chained
    • $c->go : 行き先のautoとかも全部実行
    • $c->visit : 行き先のautoとかも実行していきっぱなし
  • Controllerを小さくしてmodelを賢くしなさい
  • Model::Adaptor
  • Test
  • Catalyst::Delta, Catalyst::Upgradingに書いてあるよ
  • PSGI -> WSGI/Perl

http://blog.hide-k.net/archives/2009/09/yapcasia_2009mo.php

Event programming fun with AnyEvent and Coro (miyagawa)

  • Event loop?
  • POE以外って?
  • Intro, Basic, Examples, Tips
  • DBI for event loops
  • Danga::Socket, Event::Lib -> inncompatible
  • 書き方が違い過ぎてこまる。POE::Componentのモジュール数250...
  • AnyEvent::Impl::* AnyEventで書いたコードはどれでも動く
  • バックエンドを自動で切り替えられる
  • PoCoを書くのはやめよう!
  • condvar, Timer, I/O, subprocess, modules

http://conferences.yapcasia.org/ya2009/talk/2218

Solved in Perl6 : Jonathan Worthington

今回個人的に一番面白かった。Jonathanの英語もわかりやすかったし、Perl6を試してみる気にもなった。
バッテリーが落ちてしまってノートにメモってたので、後でまとめよう。。

http://www.jnthn.net/articles.shtml