datamapperでfind(:select => '')みたいなことはできない
dm-core (0.9.11)の話
ARだと、
User.find( :all, :select => 'DISTINCT mail_addr' )
のように、select文を直接書くことができるけど、これはdatamapperではできないらしい。
続きを読むYAPC::Asiaに行った
木曜日、金曜日は大岡山に行ってYAPCを見てきました。
自分が見たのは以下のトーク。多分メモにほとんど意味はない。。。
- XS書きのためのPerl MAGIC 入門 (gfx) : http://d.hatena.ne.jp/gfx/20090912/1252721360
- API Design - Shawn Moore (sartak) : http://sartak.org/talks/yapc-asia-2009/api-design/
- Modern Catalyst (hide) : http://blog.hide-k.net/archives/2009/09/yapcasia_2009mo.php
- Event programming fun with AnyEvent and Coro (miyagawa) : http://conferences.yapcasia.org/ya2009/talk/2218
- CPAN Paclager (dann) : http://dann.g.hatena.ne.jp/dann/20090910/p1
- 『Ficia』インフラとPerlにまつわるエトセトラ (hirose31) : http://www.slideshare.net/hirose31/ficiaperl-1981415
- はてなブックマークのシステムについて (naoya) : http://www.slideshare.net/naoya1977/ss-1983437
- Perl? which Perl? (dankogai) : http://www.dan.co.jp/~dankogai/yapcasia2009/perls.html
- 記憶 (nothingmuch)
それから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を使うモジュール
- Sub::Name
- CMOP, Moose
- 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よりもすごく速い。生成はやや速いくらい
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を持ったモジュールのどのへんがいいのかってことを解説する感じだった。
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
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
CPAN Paclager (dann)
- 依存モジュール解決して、RPM,dpkg作るモジュール
- 既存のCPANPLUS::Distだと依存関係の解決,エラー訂正が不十分
- 再起的に依存解決します。
Solved in Perl6 : Jonathan Worthington
今回個人的に一番面白かった。Jonathanの英語もわかりやすかったし、Perl6を試してみる気にもなった。
バッテリーが落ちてしまってノートにメモってたので、後でまとめよう。。