Yokohama.pm#4に行ってきた

発表資料はきっと全部アップされるだろうし、

という素晴らしいまとめがあるので、メモはなし。上記まとめを見ながら改めて感想などつらつらとつづろうかと。

■QudoxSkinny(id:nekokak)

DBIx::Skinnyの詳細は前回の発表にて。前回の時は、DBICの基本的な使い方もよく分かっていないような状況だったので「今はとにかくDBIC覚えないと」って感じで参考程度にしか聞いてなかった。

最近になって少しDBICが使えるようになってきたけど、自分にはちょっと大きすぎるような気もしてきてる。確かに便利だけど、そこまでしてくれなくていいから、もう少し軽いのが欲しい。普段、DBをそんなに本格的に使うことも無いし、正直JOINすら発行してくれなくてもよかったりする。外部キーの値でPrimaryKeyを改めてselectしてくるだけで事足りるような用途だと、DBICはちょっと大袈裟に思える。となると、Skinnyみたいなアプローチは魅力的に映る。試してみたい。

ジョブキューに関しては、TheSchwartzのサンプルを動かしてみた程度だけど、Qudoは確かに取り回しがよさそう。DODを使うことは多分ないだろうから、そういう意味でも内部を追うならQudoの方が何かと便利かも知れない。

■次世代?DIコンテナ Bread::Boardの今後(id:lestrrat)

DIってほとんど接点が無くて、しかも何が便利なのかよく分からなかったんだけど、やっぱりよく分からなかった。メリットに対して、使うためのコストが大きすぎるように思えてならない。

PerlでDIが全然使われてこなかったことや、Bread::Boardに手を入れてるのも「PerlでもDI出来るよ」という実績作りが主な目的というあたりからしても、やっぱり違う世界の物なのかな。

あと発表に直接関係ないけど、牧さんがPath::Routerを「パス・ラウタ」って読んでたのが格好良かった。確かにその方が英語の読みとしては実際の発音に近いってどっかで読んだ記憶があるぞ。

■優しいWAFの作り方(仮)(id:dann)

以前はフレームワークと言えば、RailsPHPの各種フレームワークのようにフルスタックな物しか知らなくて、Catalystを使い始めた時はそのギャップに戸惑いがありました。Model, Viewは実質的にDBICとTTが標準とはいえ「型にはめる」強制力があまり強くない薄いWAFは感じられました。そのCatalystにしても最近はさらに薄く使うような流れが強くなってきているし、はてなフレームワークRidgeも極端に薄い。

これはCPANが存在するPerlならではのことだと思っていたのですが、そういえばJavaの世界でもいくつかのプロダクトの組み合わせでWAFとして利用されているようにも見えますね。とは言ってもそれぞれのパーツは大きいし、感覚的にはどうなんだろ。

で、Angelosも同じように、HTTP::Engine, HTTP::Router, Bread::Board(?) をベースにした薄いWAFという指向性。dannさんのブログやangelosグループを追ってはいるものの未だ未体験。とにかく触ってみないと、という段階です。

ルーティングについては、以前はRailsのようにルータを一カ所にまとめた構成がいいと考えてたんだけど、Catalystを使ってる内にActionのdispatchについてはController自身が責任を持つ形がいいかも知れないと最近は思うようになりました。これは、Controller内でChainedで一連の処理を構築しているのが大きいのですが、集中管理型のルータを使ってみてどう感じるかは自分自身興味のあるところです。

Amazon Elastic MapReduceperlを使った処理をしてみる (id:lopnor)

檀上さんによるAmazonEC2で使えるElastic Mapreduceの解説。今の仕事は本当に小さな規模でやっていて、分散処理とか全く縁がないんですが、EC2の仮想環境のようなクラウド環境ってのは憧れに近い物がありますね。もう本当に「あいつら未来に生きてんな」的な。ハードウェアの部分も含めて、どこまで自分で持つかってことは継続的に考えていくべきでしょうね。

local::libは気になりつつまだ触ってないけど(そんなんばっかりや)、自分のホーム以下にライブラリが入るのってApacheとかからはどう見えるんだろう。Apacheを自分のアカウントで動かしたり、suExec環境なら分かるんだけど、Apacheユーザで稼働させてる時とか読めるのかな?

■かんたんオブジェクト指向Simo入門(id:perlcodesample)

CPANに上がってるの知らなかった。

Mooseは使ってないので比較とか出来ないけど、バリデータとか、decode, encodeの仕組みが組み込まれてるあたりが使いやすそうな印象でした。o($hoge)->methodな書き方はちょっとjQueryっぽくて面白い。

■CAPとBASEとEventually Consistent(yohei)

『RESTfullWebサービス』の山本陽平さんによる発表。

発表資料そのままではないけれど、以下のエントリで述べられているCAP定理についてのセッションでした。

CAPは2002年にMITのSeth Gilbert と Nancy Lynchによって形式化され、晴れて定理となる。CAP定理によれば

  • Consistency (データの整合性)
  • Availability (システムの可用性)
  • tolerance to network Partitions (ネットワーク分断への耐性)

の三つのうち同時に達成できるのは常に二つしかない、ことが明かになっている。

というところをベースに、キャッシュやバックアップを絡めて運用のバランスに対する考察が興味深い発表でした。

昨今のWebサービスではAとPは絶対条件(深夜○時〜○時は利用できませんでは話にならない)として、Cを以下に現実的なラインで妥協していくか。

Strong Cosistency(他人の更新がすぐに反映される)とWeak Consistency(他人の更新がすぐに反映される、とは限らない)、そして「十分な時間があれば反映される」Eventual Consistency。サンプルとしてMySQLレプリケーションDNSを例として解説。

課金系のようないろんな人が見るわけではなく、更新が確実に反映される(Strong Consistency)が求められるケースと、ブログのようなConsistencyよりもAやPが求められるケースがある。それぞれ目的に応じた選択をしていく必要がある。

今回のセッションとしては唯一、Perlの直接的な話ではない抽象レイヤのお話でしたが、それだけに面白さが際だったように思います。

perl-completion.elの紹介(id:IMAKADO)

Emacsネタなので直接は利用できないけど、確かに便利そう。こういう人の作業環境を直接見ると、自分の環境の振り返りにもなっていい刺激です。

最近ようやくautocomplpop.vimを使うようになった程度で、まだまだ環境的には改善していきたい。surround.vimも入れてるだけで全然使いこなしてないしなー

■DBを使わずの簡易ジョブキューシステム(id:masartz)

Qudoの開発にも参加してるmasartzさんが実験的に作ってるMemcache-Queue。

発表にもあったように通常の用途ならQudoの方が適切だろうけど、こういう実験的なモジュールの話を聞く機会があるというのはYokohama.pmのいいところだと思う。

■HTML::AAFindの紹介(id:komoriya)

今回のオチ担当w

やっぱりこういうLTが一本は欲しいね。発表そのものはネタだけど、実際に使えればかなりの有用性がありそう。

発表や資料を見た感じだと、今のところテキストも込みでAAとして判定しているように見えるけど、テキストとAAが切り分けられれば強力なモジュールになりそう。

■懇親会

前回よりはいろんな人と話が出来たけど、やっぱりまだ緊張感があるなー。自分が何も出来てない引け目がある。ま、とにかくコード書けってことだな。

ZIGOROuさんに「アイコンの写真の時より太った?」って言われた。そんなことはないんだけど、後から考えてみると原因はヒゲ剃ったことだわ。同じ肉付きでも、ヒゲがあることでアゴのラインが明確になってまだましに見えたんだろう。春が来てフレッシュ気分でちよっと若返りとか狙ってヒゲ剃った結果がご覧の有様だよ! この日も食が進んで大変だったけどな!

懇親会は途中で抜けてきたけど、それでも終電一本前で結構ギリギリだった。一緒に帰った人が武蔵小金井で、その終電に何とか滑り込んだ格好。実はもう少し速く帰れるコースがあったんだけど、auの乗り換え案内ってあんまり精度よくないのかな。関内出発で調べて出てこなかったルートが、横浜出発で調べたら出てきた。次回以降は帰りの時間とルートもあらかじめ検討しておいた方がよさそう。

前回に続いて二度目のYokohama.pm参加でした。やっぱりこの会のアットホーム感は素晴らしい。多くの人が参加できるといいなーとも思うし、規模的にはこれ以上大きくなるとイベントの雰囲気も変わってしまうだろうなという気持ちもある。そういう意味では自分みたいに遠くから行くよりも、横浜に近い人が参加した方がいいのかななんてことも考えないでもないけど、また次回も出来れば参加させてもらいたいですね。