plackの勉強始めました。

plack/PSGIというのが発表されてずいぶん経つけのだけども。

use strict;
use warnings;

use Plack::Request;
use Plack::Response;

my $app = sub {
  my $env = shift;
  my $req = Plack::Request->new( $env );
  my $res = Plack::Response->new();

  $res->status(200);
  $res->content_type('text/html');
  $res->body('hello world');
};

Plack::Responseのとこはシンプルに配列リファレンスにしてもよかったんだけど、インターフェースのはっきりしているオブジェクトにしておくとわかりやすいし、関数の引数に渡したときにも、渡された側からも使いやすいかなと思ってオブジェクトを使うようにしている。

あと、やっぱりMiddleware使いたい場合はbuilder使えばいいというのも覚えた。

use strict;
use warnings;

use Plack::Request;
use Plack::Response;
use Plack::Builder;
use Plack::Session;
use Plack::Session::Store::DBI;

use DBI;

my @connect_args = (
  'dbi:Pg:dbname=sample',
  'hogehoge',
  'fugafuga',
  {
     AutoCommit => 0,
     RaiseError => 1,
     pg_enable_utf8 => 1,
  }
);

my $app = sub {
  my $env = shift;
  my $req = Plack::Request->new( $env );
  my $res = Plack::Response->new();
  my $sess = Plack::Session->new( $env );
 
  my $body = .....;

  $res->status(200);
  $res->content_type('text/html');
  $res->body( $body );
};

builder {
  enable 'Session',
        store => Plack::Session::Store::DBI->new(
            get_dbh => sub { DBI->connect( @connect_args ) }
        );
  enable 'MethodOverride';
  enable 'CSRFBlock';
  $app;
};

こんなかんじ。
Sessionに使うDBIをScope::Container::DBIに任せてみたりもしたのだけど、Starmanで動作させたとき、Scope::Containerの38行目(DESTROYのとこ)で明示的にdisconnectしなかったという旨のメッセージが表示された。DBIとDBD::Pgを最新にしても同様のメッセージが出た。Postgresqlは8.4.9。AutoInactiveDestroy効いてなかったらもっと深刻なエラーで落ちるから関係ないし。よくわからん。来週再確認しよう。

食べログのやらせの件

食べログのランキング不正操作ってSEO業者のやりそうなこと。ていうかSEOそのものなんじゃないのかな?

はてなブックマーク - 「食べログ」にやらせ投稿 カカクコムが法的措置も 39業者特定 飲食店ランキング上げる狙い:日本経済新聞

SEO業者も駆逐されてほしいな。

ドコモのspモードが残念なことになってるらしい。

http://www3.nhk.or.jp/news/html/20120102/t10015010111000.html
報道発表資料 : spモード不具合に伴うお客様への影響と今後の対応について | お知らせ | NTTドコモ
高木浩光@自宅の日記 - spモードはなぜIPアドレスに頼らざるを得なかったか, spモード利用者へ注意喚起:信用できない人にテザリング接続させない。「ネ..

あけおめことよろ

あけましておめでとうございます。
新年中部地方で早々地震があったりして、今年のテンションだだ下がりです。最大震度4程度でよかったです。
これ以上大災害で亡くなる人がでなくなりますよう祈ってます。

あてにならない政府とろくでもない大企業が利権を握ると本当どうしようもない世の中になってしまうんですね。旧政権与党も腰が抜けてるし。

できる限りまともな方向に舵を切ってくれることを願います。

[追記] 関東地方でも震度4クラスの地震が発生した。フジテレビの生放送では何事もなかったかのように(本当に生放送だったのかという疑問が残っているが)放送を続けたらしい。そして、年末で気がゆるんだことによって原発のモニタリングが表示されない状況になったりしたらしい。

フジテレビ疑惑の生放送に関する黒猫亭さんの見解 - Togetter

ミッションインポッシブル ゴーストプロトコルを見てきた。

必要最低限なご都合主義と、やりすぎなくらいギリギリなアクションwww
それでも良かった。おもしろかった。
デジタル音響なだけのシンプルな映画館で、夜だから客はまばら。
ゆったり楽しめたかなー。