YAPC::ASIA 2011で最近のPerl界隈の"当たり前"を勉強する

#yapcasia で知らない事とかついていけない話とか多いけどこれはこれでモチベーション上がるしキーワードくらいなら拾えるから来てよかった。
Oct 14 via EchofonFavoriteRetweetReply

ということで、今年に入ってからPerlを始め、Catalystで作ったwebアプリケーションをそのままサーバに乗せてCGIで動かしてる私め*1が、初めて参加したYAPC::ASIAで拾ってきたキーワードに関する簡単なまとめとリンク集を作りますよ。
先に断っておきますが、最新情報はありません。このあたりが常識っぽいなというまとめです。

Dancer

Sinatraライクな軽量Webアプリケーションフレームワーク
今回のYAPCでは、@tomitaさんがCPANモジュールガイド編集後記+αの中で触れていました。最近使ってるんだとか。
RubySinatraの移植として始まったみたいで、Sinatraみたいな書き方ができるそうです。
使ってみるにはこのあたりの記事が参考になりそう。
Dancerを試してみた 1 - 目の前に僕らの道がある

Mojolicious::Lite

フレームワークをもう一つ。こちらもSinatraライクなもの。依存が少ないのがいいらしいです。
MojoとかMojoliciousとかあってよくわからないので、簡単に位置づけを説明すると、

詳細は、このあたりの記事をご参考に。
第22回 Mojolicious::Lite:本当に簡単なウェブアプリがあればいいときは :モダンPerlの世界へようこそ|gihyo.jp … 技術評論社
Home · yuki-kimoto/mojolicious-guides-japanese Wiki · GitHub
いまどきぜんぜん珍しくない感じのフレームワークっぽいんですが、今回のYAPCでは、前出の富田さんのセッションでも軽く触れられた他、@kyannyさんのセッションの中で紹介されていました。
Ruby プログラマのための Perl ウェブアプリケーション開発入門 (Perl web development guide for R…
このセッション、Rubyistのための、となっていますが、RubyPerl、それぞれの初心者向けの情報が簡潔にまとめられていて、とてもためになりました。*2
Dancerとの違いはよくわかっていませんが、こっちのほうが日本語情報多そうです。
チュートリアルも公式にしっかり用意されてます。
Mojolicious::Lite · yuki-kimoto/mojolicious-guides-japanese Wiki · GitHub
以降しばらく、kyannyさんのセッションからの情報が続きます。

Perlbrew

http://www.perlbrew.pl/
ちょうど真裏のセッションで、Perlbrewについてやってたみたいなんですが。
Introduction to perlbrew - Speaker Deck
Perlbrewは、異なるバージョンの複数のPerlを管理するツールです。コマンド一発で切り替えられるので、新しいバージョンをちょっと試してみようかな、なんてこともラクラクできる。
使い方はこちらの記事なんかをご参照。
http://mt.endeworks.jp/d-6/2010/08/perlbrew.html

dotCloud

https://www.dotcloud.com/
アプリケーションを作ったはいいとして、どこで公開するのか。レンタルサーバでもいいですし、自宅サーバでもいいんですが、もっと手軽な方法が、今はやりのPaaSを使うこと。
Perlも使えるPaaSとして、dotCloudが取り上げられていました。
先に紹介したPSGIにも対応、Gitにも対応。モダンですね。
サービスの概要についてはこちら。
プログラミング言語やデータベースが選べる新世代PaaS「DotCloud」が正式サービス開始 - Publickey
実際に動かしたい、というときのチュートリアルはこのあたり。
http://mt.endeworks.jp/d-6/2011/04/dotcloud-psgi-hello-world.html
http://d.hatena.ne.jp/perlcodesample/20110403/1305614594

Rubyでは

上記3つは、それぞれRubyのhogehogeに対応するものとして紹介されていました。
その対応表がこちら。

Perl Ruby
Mojolicious::Lite Sinatra
Perlbrew RVM
dotCloud Heroku

このあたり、RubyをはじめてみたいPerl Mongersにもうれしい情報だったんじゃないでしょうか。私は嬉しかったです。

PSGI/Plack

「今年のYAPCでなにが一番興味深かった?」
Plack
「えっ」
「えっ」
でも知らなかったんだから仕方がないじゃありませんか。
様々なフレームワークと様々なサーバをつなぐ共通インターフェースで、その仕様がPSGI、それを実装したエンジンがPlackです。

第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (1):Perl Hackers Hub|gihyo.jp … 技術評論社
2009年のYAPCで発表されて注目されたみたいで。
http://tokuhirom.github.com/talks/20090910-yapcasia2009-psgi-plack/
今年のYAPCでは、@tomitaさんセッションで、『CPANモジュールガイド』がPlackリリース後にそのあたりを解説した希有な本として紹介されたり、@maka2_donzokoさんのパルモンで、レアっぽいオーラを放つカードになっていたり。

Perl界隈での最近のエポックメーキングな出来事として捉えられてるっぽい感じでした。
ということで、そのあたりの勉強のためにも使えると思って、『CPANモジュールガイド』を買いました。@tomitaさんにサインもらい損ねた。

CPANモジュールガイド

先ほどから触れてる『CPANモジュールガイド』ですが、著者の@tomitaさんご自身でも、自分用Wiki的によく参照されてると、ご自身のセッションで語られていました。
TMTOWTDI(There's more than one way to do it、やり方はひとつではない)がPerlのスローガンとはいえ、初心者がいきなりCPANの広大な海に放り出されても、どちらへ向かえばよいのかわからないもの。そんななかで、この本はとりあえず選んでおけば間違いない定番を厳選し、一つ一つの機能と使い方を簡単に解説しています。
初心者的には、このあたりから機能的に欲しいのを選んで実装してやると間違いなさそうです。

Perl CPANモジュールガイド
冨田尚樹
ワークスコーポレーション
売り上げランキング: 162403

ソルト

セキュリティのお話です。
徳丸本でおなじみの@ockeghemさんのセッションは、ウェブアプリケーションには付き物のパスワードに関してのトークでした。
その中で、すぐにでも実装できて、セキュリティが向上しそうな手法というのが、このソルトです。
簡単に言うと、パスワードをハッシュ化する際に、いくつかの文字を付け足してやることで、ハッシュからパスワードを求めるのが難しくなる、ということです。
詳しくは、スライドのP.41をご覧ください。
Webアプリでパスワード保護はどこまでやればいいか

電子版徳丸本セール中

鈍器としても有名な徳丸本ですが、先月末に電子版が発売され、期間限定のセールをしているそうです。
2,800円が1,800円に。
http://bookpub.jp/books/bp/144
あー、今日までですね。ブログ上げるのが遅くなって大変申し訳ない気持ちです。私はもう買いました。
紙で欲しい方はこちらをどうぞ。

Perlのテスト

@ikasam_aさんのセッション「他言語から見たPerlのテスト」より。
Good night, Posterous
テスト関係はぜんぜん勉強してないので、がんばってキーワード拾うくらいしか出来ませんでした。勉強せな。
中川さんはセッションで、テストフレームワークの役割を、以下の三つに分けていました。(スライドP.11)

  1. Helping to write tests
  2. Excecuting tests
  3. Reporting test results

その中で拾った諸々を。

TAPとJenkins

テストの実行はちょっと置いておきます。
TAPというのは、テスト結果のプロトコルです。上記のいろいろなテストモジュールから、この形式でテスト結果を出力できます。
TAPについてはこちらをご参照。
第1回 Perlにおけるテストの概要/TAPとは?:Happy Testing Perl|gihyo.jp … 技術評論社
このTAP形式のレポートをjunit形式に変換すれば、Jenkinsに載せられる。
Jenkinsというのは、CI(継続的インテグレーション)のツールです。
これについてもリンクで。よくわかってないんです。
「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門 (1/4):ユカイ、ツーカイ、カイハツ環境!(21) - @IT
で、先ほど置いといたテストの実行方法ですが、Test::Harnessというモジュールのproveというツールが紹介されていました。前出のリンク"Happy Testing Perl"に、これについても載ってます。

モックとスタブ

おなじセッションは、「スタブの機能しかないのにモックを名乗るやつがいる」という発言で一笑いあって、スタブもモックもわからないあたしには全然理解できなかったので、このあたりで勉強したいと思います。
2010-02-10


以上です。このあたりの情報を、Perlを触り始める頃に知っていたら……と思ってまとめました。
どなたかのお役に立てば。
あとこんな感じで大変勉強になるので初心者の人にもYAPC::ASIAはオススメだよ!

*1:そんな動かし方は非推奨です、念のため

*2:ベストトーク賞の投票はこちらに入れました