タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

amonに関するsoh335のブックマーク (12)

  • YappoLogs: Amon2 で国際化アプリを簡単に書く Amon2::Plugin::L10N を出しました

    « HTTP::AcceptLanguage - Accept-Language ヘッダを解析して適切な言語を返す君 | Main | zh-hans, zh-hant に対応してない!って怒られた時は » Amon2 で国際化アプリを簡単に書く Amon2::Plugin::L10N を出しました Perl で L10N する方法としてはPerl でつくった web サイトを L10N する方法 - tokuhirom's blog.が有名ですが、昨今はうっかりパンケーキとか唐揚げをべてたらロンドンとかに海外進出しちゃうようなのが当たり前になった現代においては、 blog のコードをコピペするやつは死んどけば良いので、死なないため殺されない為に実用的に CPANize して殺す側に回りました。 https://metacpan.org/release/Amon2-Plugin-L10N

  • Amon2 により CSV を PSGI/Plack で出力する方法 - tokuhirom's blog

    Amon2::Plugin::Web::Streaming と Text::CSV_XS の組み合わせにより、ストリーミング出力が可能です。 (Streaming 出力をサポートしたサーバーをつかって実装する必要があります) use strict; use warnings; use utf8; use Amon2::Lite; use Text::CSV_XS; sub load_config { +{ } } get '/csv' => sub { my $c = shift; $c->streaming(sub { my $respond = shift; my $csv = Text::CSV_XS->new({binary => 1}); my $writer = $respond->([200, ['Content-Type' => 'text/csv']]); $csv->c

  • Amon2::Plugin::Web::PageCacheというのを書いた - ダメ人間オンライン

    レスポンスのHTMLをまるっとキャッシュするplugin書いた。書いたというか別のWAFで使ってたやつをAmon2用に書き直した。キャッシュ先はmemcachedです。 dameninngenn/p5-Amon2-Plugin-Web-PageCache · GitHub やりたかったこと requestのpath毎にキャッシュするか否か設定できるようにしたい requestのpath毎にキャッシュのexpire設定できるようにしたい /path/to?p=1 と /path/to?p=2 は別のものとしてキャッシュしたい 想定してないクエリがついてきた場合はスルーしてクエリがついてないものと同じ扱いにしたい requestのpath毎にキャッシュ削除ができるようにしたい HTMLだけじゃなくてJSON返してる場合もキャッシュしたい そこそこお手軽に使えるようにしたい 使い方 モジュールを

    Amon2::Plugin::Web::PageCacheというのを書いた - ダメ人間オンライン
  • Amon2 がストリーミングに対応しました。 - tokuhirom's blog

    最近、Amon2 のリアルタイムWebサポートをおこないました。 これにより、WebSocket や Long poll をつかうウェブアプリケーションを Amon2 で簡単にかくことができます。 というか、ストリーミングがちょっとあるだけで、Tatsumaki を勉強しなきゃいけないのが面倒だったので、つくりました。 Amon2::Plugin::Web::Streaming というプラギンが、今回のバージョンでついています。これをつかうとこれまで Tatsumaki でやっていたようなことが、簡単に Amon2 でできるようになります。 MXHR には対応していないけど、WebSocket と streaming に対応したので、Amon2 で Tatsumaki がやっている領域はサポートできたとおもいます。というか自分がつかってる範囲ではこれで十分です。 以下がチャットのサンプルで

  • Amon2 が WebSocket に対応していた!! - tokuhirom's blog

    Amon2::Plugin::Web::WebSocket というプラグインをだしました。 Amon2 の中で非常に簡単に web socket がつかえます。 なんかよくわからん作法とかおぼえなくてもいいので楽すぎる。。 実装例は以下のとおりです。Twiggy でしかうごきません。 use strict; use warnings; use utf8; use Amon2::Lite; use Digest::MD5 (); get '/' => sub { my $c = shift; return $c->render('index.tt'); }; my $clients = {}; any '/echo2' => sub { my ($c) = @_; my $id = Digest::SHA1::sha1_hex(rand() . $$ . {} . time); $c->we

  • ぼくがかんがえたさいきょうのAmon2のつかいかた - Kentaro Kuribayashi's blog

    プロジェクトで、それなりに自由にいろいろやれる感じの状況になったので、好きにやろうと思って、いままで実務では使っていなかったツールをあれこれ試しています。 2012-02-17追記: エントリを書いた後、状況がだいぶ変わったので、実際にはずいぶん違う感じになりました。 WAFをどうしようかなーと思った時に、ドメインスペシフィックなぼくがかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーくを作成するということも考えたのですが、そんなにスペシフィックな用途でもないし、WAF自体はPlackを薄くラップしたぐらいのものでよいと思うので、自分でがんばって作る必要もないと考え、信頼と実績のAmon2を試用してみることにしました。 いくつか、こうだったらいいのになという点を反映して、こんな感じでやってみています。試しながらやってるとこなので、全然「さいきょう」でもないし、不十分なところはいろい

    ぼくがかんがえたさいきょうのAmon2のつかいかた - Kentaro Kuribayashi's blog
  • tokuhirom blog

    Amon2::DBI からはじめるデータベースアプリケーション 〜 軽量フレームワークAmon2入門 (5) 〜 はい! というわけで3連休あけですね。 Ruby 会議にいったり、Android なんとかにいったり、リア充生活をおくったりと、各自たのしい3連休をすごされたことかとおもいます。 さて、連休あけの今日は、かるく Amon2::DBI について解説をしてきましょう。 Amon2::DBI は、DBI の薄いラッパーで「素の DBI だとちょっと不便だな」というところにピリリときいてくる山椒のような存在です(ちかくのチンマーハンは山椒がきいてなさすぎるので、もうちょいきいてるといいなとおもいます)。非常にうすいラッパーだし、コードベース自体も非常に簡潔なので、ひととおりよんでからつかうといいかとおもいます。 DBI には子クラスを設定できる機能があって、Amon2ではそれをつかって

    tokuhirom blog
  • PrePANをAmon2化した + Amon2で気になった点など - Kentaro Kuribayashi's blog

    PrePANのWebアプリケーションフレームワークをAmon2に変更しました。閲覧者的には何も変わるところはないので特に意味はないですが、今後の機能開発がしやすくなったので、結果的にはよい影響はあると期待しているところです。 WAFは、YAPC::Asia 2011でのcho45さんの発表「ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく」にあるように「薄いフレームワーク」がより良いと最近は感じています。PrePANはまあ、特に変わったこともしていないアプリなので、ドメインスペシフィックに対処するべきこともなく、また、下手に自作するよりも、Amon2の方がずっといいものであることが明白なので、今回はAmon2を使うことにしました。 というわけで、Amon2作者のtokuhiromさんに「Amon2使いますよ!!1」と話したのを実行できたし、PrePANはいろいろと機能追加の

    PrePANをAmon2化した + Amon2で気になった点など - Kentaro Kuribayashi's blog
    soh335
    soh335 2011/10/24
    res_jsonってAmon2::Plugin::Web::JSONとは違う意味なのかな
  • Perlの軽量フレームワークAmon2::Liteでmarkdownその他のリアルタイムプレビュー、にTracを追加!! - 僕のYak Shavingは終わらない

    最近もっとPerl使いになりたい!って思ったのとCatalyst以外のフレームワークを使ってみたいって気持ちが相まって探していたら以下の記事を発見。 TinyURLをつくってみよう 〜 軽量フレームワークAmon2入門 (4) 〜 - tokuhirom's blog. Amon2::Liteでmarkdownその他のリアルタイムプレビュー - すぎゃーんメモ Mojolicious::Liteにしようか迷いましたが、 すでに使っている人がいたこと Mojoって聞いた時点で「喪女」が出てきてry 「あもん」ってなんだか言いやすい ということでAmon2を選びました。 Amon2の詳しい解説は家を御覧ください(そういえばTwitterでなぜかブロックされてる…)。 普段Catalystしかいじってない自分にとっては軽量WAFであることとSinatra風ということでかなりウキウキしてます♪

    Perlの軽量フレームワークAmon2::Liteでmarkdownその他のリアルタイムプレビュー、にTracを追加!! - 僕のYak Shavingは終わらない
  • tokuhirom blog

    Amon2のアーキテクチャまずはこちらの図をごらんください。 Amon2 の構造は非常に単純であることをご理解いただけたかとおもいます。基的な構造はこれがすべてなのです。なにしろ、できるだけおぼえることがすくなくなるように意図して設計されておりますから、こういうシンプルな構造になるのもあたりまえといえましょう。 ここで特徴的なところが二点あります。Web Context Object が Context Object を継承しているところ、レスポンスオブジェクトが has-a 関係ではないところです。 Web Context Object が Context Object を継承しているのは、CLI でもなんとなくつかえるようにするためです。この工夫により CLI での開発が異常に楽になっています。このあたりについてはおって解説したいとおもっています。 レスポンスオブジェクトが has-

    tokuhirom blog
  • tokuhirom blog

    Amon2の利点 〜 軽量フレームワークAmon2入門 (1) 〜 というわけで、私が中心となり開発を進めているウェブアプリケーションフレームワークであるところのAmon2に関する連載企画です。続くかどうかはわかりませんけど! 対象読者はウェブアプリケーションの開発の基礎知識はあり、Perlプログラミングを一通り理解していることを前提としています。 Amon2とはAmon2は、ウェブアプリケーションフレームワークです。ウェブアプリケーションフレームワークというのは、ウェブアプリケーションを書くために楽をするためのライブラリと、それに関するツール一式のこととここでは定義しましょう。 そう、Amon2を使えば非常に楽に、高速に、ウェブアプリケーションを開発できてしまうのです。 なぜAmon2なのかしかしウェブアプリケーションフレームワークとひとくちにいっても、Perlだけでも、数え切れないほど

    tokuhirom blog
  • Amon2 - Web application framework for Rapid web development

    Amon2 is Fun use Amon2::Lite; get '/' => sub { my $c = shift; return $c->create_response(200, [], ['Hello, world!']); }; __PACKAGE__->to_app();

  • 1