YAPC::Asia 2009 2日目終了
みなさんおつかれさまでした。
今年も大変楽しい2.5日間でした。
今年は特に、LTに出させていただきまして
ここ最近感じたことがない緊張感でしたが、
出てよかったなーと思っています。
たぶんid:charsbarさんがブログに書いてくれなかったら
出てなかったと思うので、いいきっかけをもらったと思っています。
ありがとうございました。
緊張とかで、いろいろ内容ぶっとばしてしまったので
次のエントリとかでちょっと補足したいと思います。
あと、はてスタご協力いただきましてありがとうございました。
帰って確認したところ98 + 2スター(id:hirose31さんあざーす)でした。
明日は同僚の結婚式があるので、Hackathonには参加できませんし
日曜日も自宅でPlack、PSGIまわりを確認したいと思います。
今年は、特別研修もあるので(おれは今回参加しませんが)
最後までみなさん楽しみましょう。
yapc++
現在のMojoについて
追記
ここではMojoのバージョンは0.991250について書いています。
CharsbarさんがMojoについて書いているので便乗エントリ。
ここ数ヶ月、会社で使っているツールのために毎日git pullして
動作させるために毎日アプリケーションを修正してきた身として
ちょっと書きます。
Charsbarさんのエントリにもあるとおり、1.0へ向けての
大きな変更がはいったので、以前のバージョンを使っている
アプリケーションはほとんど手を加えないと動かなくなっていると
思われます。
なにせ、各クラスのベースになるMojo::Baseに修正が
入ったため、アクセッサの書き方が変更になり
__PACKAGE__->attr("foo" => (default => sub { Hoge->new });
という以前の書き方では動作しなくなってしまいました。
現在ではこんな感じにちょっとだけシンプルになっています。
__PACKAGE__->attr("foo" => sub { Hoge->new });
その他にもContextを各ディスパッチしたメソッドに渡していたんですが
Mojolicous::Controllerを継承している、Controllerをnewするときのblessの
引数に取るようになったため
sub foo { my ($self, $c) = @_; # or my $c = $self->ctx; $c->req->param("hoge"); }
とかだったのが
sub foo { my $self = shift; $self->req->param("hoge"); }
という風に$selfから直接リクエストを取るように変更されています。
(実はなかでは$self->tx->reqになっているんですが)
この他にも、APIの変更、さまざまなバグフィックスや新機能追加が
されているので、0.900xとかからのアップデートは結構大変だと思われます。
そろそろアップデートするかというかたは、注意したほうがいいです。
動かなくなると思います。
あと長くなったのでVersion Numbers and Backwards Compatibilityに
ついては別のエントリで。
それと、YAPC::AsiaのLTはいつ決まるのかな。
いちおうMojoでなんか話したいなと思っているんで(たぶん・・)。
Mojoへpatchを送った
先日、Mojoで作ったアプリケーションをいじっていて
githubでMojoの更新があったのでインストールし直したところ
アプリケーションのテンプレートを作成するコマンドが
動かなくなっていたのでメーリングリストに報告しました。
原因は/usr/bin/envの動作がUbuntuで違うということでした。
/usr/bin/env perl -w
というコマンドが"perl -w"と解釈されて実効できないという
ことです。FreeBSD(Mac)は、ちゃんと解釈してくれるんですが
一部のLinux(envコマンド)でこのように動作してしまうようです。
その時は、Sebastianがすぐに対応してくれました。
翌日、またバグを見つけたので、今度はgithub上でforkして
修正したものを、pull requestしてみました。
そしたら、取り込んでもらえたようです。
(ちょっとフォーマットがくずれてしまっていたようなので
次は気をつける)
$c-req->url->to_abs
が正常に動作していなかったのが、これで直りました。
たいした修正ではないですが、動作していなかったので
これで、社内で使っているツールも動くようになります。
よかった。
■
今日のアップデートでUbuntuのperlも5.10になった。
今日はShibuya.lispにいってくるよ。
スポンジで虎を倒せるようになってくるよ。
追記
まちがった。Ubuntu9.04は最初から5.10だった。
単なるセキュリティアップデートだ。
ActionStreamsのPlugin書いてみた
といってもconfig.yaml書くだけで追加できる。
すげ。
http://github.com/ka2u/Jimdo-ActionStreams-Plugin/tree/master