タグ

ブックマーク / blog.livedoor.jp/xaicron (5)

  • にひりずむ::しんぷる - 死んでほしくない人のための Sub::Retry

    Sub::Retry はクールでクレバーなモジュールなのですが、retry の条件が exception のみでちょっと悲しかったので、retry 条件をカスタマイズ出来るようにしてみました。すでに取り込まれて、0.03 としてリリースされています。 Sub-Retry-0.03 - FrePAN ユースケース としては、Cache::Memcached::Fast とかで set とか get に失敗したときに retry するとかが挙げられます。 第4引数に coderef を指定することで、retry 条件を変えられます。 retry したいときは、true を返し、そうでない場合は(つまり、成功した場合は)false を返すようにします。default は 以前の挙動と同じです。 coderef の引数は return value と同じなので、その結果如何で処理を切り替えることが

    hide-K
    hide-K 2011/04/05
  • にひりずむ::しんぷる - Data::Encoder っていうのを書いた

    Yuji Shimada / Data-Encoder - search.cpan.org ネットワーク越しにデータを転送する場合、Storable や JSON や Data::MessagePack なんかを使うと思うのですが、いかんせん全部インターフェースが違います。 このあたりを共通のインターフェースで透過的に扱える、シンプルなモジュールが欲しくて書きました。 似たようなモジュールとして、Data::Serializer というのがあるんですが、ちょこっとコードがゴテっとしているのと、特に encrypt の機能はいらないなーという感じだったので、新しく書いた次第。 使い方は以下のようになります。 use Data::Encoder; my $encoder = Data::Encoder->load('JSON'); my $json = $encoder->encode([qw

    hide-K
    hide-K 2010/12/21
  • にひりずむ::しんぷる - DBI で実際に発行されるクエリーを取得する DBIx::QueryLog を書いた

    季節が変わって、早速風邪をひいています。 さて、もう秋を通り越して冬の様相を呈してきた昨今ではありますが、DBI では、普通はプレースホルダを使い my $stmt = 'SELECT * FROM user WHERE user_id = ?'; my @bind = ($user_id); $dbh->do($stmt, undef, @bind); とか書くと思います。 このときに、実際にバインドされた後の SQL をみたいなーって衝動に駆られると思いますが*1、どう頑張ってドキュメントを読んでもわかりませんね。 こういうときは仕方ないので、$stmt と @bind を両方ログに出してお茶を濁していました。 $self->log->_dump($stmt, @bind); # => SELECT * FROM user WHERE user_id = ?, [1234] でもこれっ

    hide-K
    hide-K 2010/11/03
  • にひりずむ::しんぷる - TT vs TTerse

    TT で TT の説明を書くような場合、 [% "[% foo.bar %\]" %] のように、クォート内でもタグの処理がされてしまうため、良くわからないエスケープ*1をしなくてはならなく*2、とてもハマったが、xslate の TTerse ならば自然に [% "[% foo.bar %]" %] と書く事ができる。 さらに言うと、xslate は syntax を差し替えることが可能なので、TTerse の説明を書くような場合は、 Kolon を使える。 こういうちょっとした動作確認をしたい場合も、TT 付属の tpage はファイルしか受付ないが、 xslate コマンドは -e でワンライナーを受け付けるため $ xslate -s TTerse -e '[% "[% foo.bar %]" %]' [% foo.bar %] $ xslate -s Kolon -e '[% f

  • にひりずむ::しんぷる - DeNA に転職しました

    すっかりブログに書くのを忘れていましたが、6月1日 より、DeNA で働いています。 前職のガイアックスでは、3ヶ月と言う短い間でしたが、様々なことを経験できました。それに良い友人もできたと思います! DeNA ではその経験を活かして、多くの人が楽しめるようなものを作っていきたいと思います。 というわけで、僕と握手したい人は http://atnd.org/events/4938 に登録するといいよ!

    hide-K
    hide-K 2010/06/08
    welcome!
  • 1