タグ

ブックマーク / blog.shibayu36.org (4)

  • 処理のtimeoutを簡単に書くためのSub::Timeoutというモジュールを作りました - $shibayu36->blog;

    ある処理をするときに一定以上の時間かかったらtimeoutして処理を終わりたいみたいなことをしたい時がたまにあるので、それを行うSub::Timeoutというモジュールを作りました。 https://github.com/shibayu36/p5-Sub-Timeout 使い方 use Sub::Timeout; use HTTP::Tiny; my $res = timeout 3.5, sub { HTTP::Tiny->new->get('http://example.com/foo'); }; 基的には上のように、タイムアウトしたい秒数と処理のcoderefを渡します。 上の例だと3.5秒間で処理が終わった場合、その返り値を$resとして返し、処理が終わらなかった場合、その時点で処理を打ち切って例外を投げるようにしています。例外を投げるのでその後も処理を続けたい場合は例外処理をし

    処理のtimeoutを簡単に書くためのSub::Timeoutというモジュールを作りました - $shibayu36->blog;
    kits
    kits 2013/06/07
    (Time::Out について)「なぜかlib/Out.pmに実装がある」単にファイルの配置の話であり、perl Makefile.PL; make すれば blib/lib/Time/Out.pm にコピーされるので、問題ないように思う。
  • Mojolicious::Plugin::CSRFDefenderというのを作った - $shibayu36->blog;

    最近はMojoliciousを使ってWebアプリケーション開発を行っています。CSRFの対策をどうしようかなと考えていて、最初はPlack::Middleware::CSRFBlockを使っていたのですが、 Sessionとかの仕組みはApplicationと同じものを使いたい CSRF対策はApplicationの層でやったほうがきれいに書けそう MojoliciousのPluginを書いてみたい という三つの理由から、新しくMojolicious::Plugin::CSRFDefenderというのを書いてみました。 ソースはhttps://github.com/shiba-yu36/p5-Mojolicious-Plugin-CSRFDefenderに置いておきました。まだCPANには上げてないです。 概要 このMojolicious::Plugin::CSRFDefenderは自動的

    Mojolicious::Plugin::CSRFDefenderというのを作った - $shibayu36->blog;
    kits
    kits 2011/02/12
    CSRFチェック用のtokenを自動的にformに追加し、sessionのtokenとPOSTパラメタのtokenを比較。
  • モジュール作成からCPANに上げるまでの手順 - $shibayu36->blog;

    この前WebService::Bitlyというモジュールを作ってCPANに登録したので、忘れないうちにそれを行なうまでの手順をメモしておきます。これからCPANモジュールを作る人の参考になればと思います。 0.いろいろなドキュメントを読んでおく 間違ったモジュールをCPANに上げると迷惑がかかるようなので、最低限下のドキュメントは読んでおいたらいいと思います。 PAUSE: The CPAN back stage entrance perlnewmod - 新しいモジュールを配布するには - perldoc.jp 1.モジュール名を決めて、ひな形を作る まずモジュールの名前を決めます。CPANモジュールは、「このようなモジュールはこの名前空間」のような慣習があるようなので、それを考えながら決めます。 名前が決まったら、モジュールのひな形を作ります。僕はModule::Starter::PB

    モジュール作成からCPANに上げるまでの手順 - $shibayu36->blog;
    kits
    kits 2010/07/24
  • WebService::Bitlyというcpanモジュールを作った - $shibayu36->blog;

    最近bit.lyのAPIを使うことがあって、それをうまく扱うようなcpanモジュールを探していたら、WWW:Shorten::Bitlyというモジュールが見つかった。ただ、このモジュールでは自分のやりたかった事が出来なかったので*1、もう少し汎用的なモジュールを作ってみました。 機能 bit.lyのAPIの shorten expand validate clicks bitly_pro_domain lookup authenticate info をperlから扱う事が出来ます。つまり、URLを短くしたり、短いURLを長くしたり、クリック数の統計をとったりなどの機能を使う事が出来ます。。 利用例 use WebService::Bitly; #インスタンス生成 my $bitly = WebService::Bitly->new( user_name => 'shibayu', use

    WebService::Bitlyというcpanモジュールを作った - $shibayu36->blog;
    kits
    kits 2010/07/19
    CPANに上げる際に注意すべき点について(コメント欄)。
  • 1