タグ

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

タグの絞り込みを解除

amon2に関するrightgo09のブックマーク (13)

  • 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 をつかったウェブアプリケーションを GUI アプリにはやがわりさせる!! - tokuhirom's blog

    GUI アプリをつくりたいけど、どうもめんどくさくて、ウェブアプリケーションですませてしまうウェブエンジニアは多いとききます。 とはいえブラウザでいちいちひらくのも面倒だし、daemontools つかうのもちと面倒。。というわけで、GUI アプリケーションにしてしまいましょう。 以下のような、キモいが回転する PSGI アプリがあったとします。これを GUI アプリケーションにはやがわりさせるにはどうしたらいいでしょうか。 use strict; use warnings; use utf8; use Amon2::Lite; get '/' => sub { my $c = shift; return $c->render('index.tt'); }; # code was taken from: http://jsdo.it/moriyoshi/syTt __PACKAGE__-

  • Amon2 がストリーミングに対応しました。 - tokuhirom's blog

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

  • Amon2で画像掲示板 - http://mechanist.x0.com

    画像掲示板(Mojolicious::Lite)を見て、これを、最近いじくり始めたAmon2で書きなおしてみた(エラー処理はちょっとはしょった)。つまらないものですが、習作ということで。 Mojolicious::Liteでの「$self->req->upload('image')->move_to()」に相当する、ファイルをコピーするメソッドが、Amon2の方に(というかPlack::Request::Uploadに)見当たらず、ちょっと考えこんでしまったが、それ以外はあっという間にポーティングできた。おんなじようなPerlベースの軽量WAFなので、それも当たり前か。 Dispatcher.pm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3

  • 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
  • Amon2 のデフォルトの CSS framework を twitter の bootstrap にかえた - tokuhirom's blog

    https://metacpan.org/release/TOKUHIROM/Amon2-2.53 twitterbootstrap の方が blueprint よりも見た目が cool なので、とっかえてみた。 ついでに Asset まわりの実装をかきかえた。Flavor を自作している人は注意ですが、この部分の実装は、undocumented interface なので気にしません。

    rightgo09
    rightgo09 2011/09/23
    おぼえとく
  • Amon2のソースを読む(5) - Pixel Pedals of Tomakomai

    今日はAmon2-2.49のDSL周り。これで最後。 Amon2::Declare $c じゃなくて c() 使えたらいいよねって話。内容物の中では、t/ 内のExtended::V::MT::Context にて、テンプレからcを呼び出せるようにするために使っている。 Amon2::Lite Sinatra-ish な書き方ができるようにするもの。Amon2::Lite::_child_N という名前でコンテクストクラスを作る。Nは連番なので、package名さえ分ければ複数箇所から利用が可能*1。 use 元にはルーティングに必要な関数をエクスポートする。2.49 の実装では Router::Simple::Sinatraish は使わずに自前で実装している。さらにコンテキストにはdispatch と create_view が必須なのでこれらを実装。create_view では__D

    Amon2のソースを読む(5) - Pixel Pedals of Tomakomai
  • Amon2のソースを読む(4) - Pixel Pedals of Tomakomai

    今日はAmon2-2.49のTriggerとPluggin。 Amon2::Trigger クラスに対してもインスタンスに対してもフックがかけられ、それぞれ@Class::_trigger と $obj->{_trigger} を使って保存される。get_trigger_code を呼ぶと関連するハンドラを全て取得できるが、インスタンスに対して呼んだ場合はインスタンスに紐づくハンドラとそのクラスの継承ツリー上のクラスにぶら下がる全てのハンドラを得られる。ハンドラは親→子の順に並んでいる。厳密な順序に関しては、mro::get_linear_isa を使っているので現在設定されているmroの影響を受ける。 Amon2::Plugin::Web:: プラグインは $c->add_trigger でトリガを仕掛けたり、$c にメソッドを生やしたりしてYourProject::Web クラスを拡張

    Amon2のソースを読む(4) - Pixel Pedals of Tomakomai
  • Amon2のソースを読む(3) - 北海道苫小牧市出身の初老PGが書くブログ

    今日はAmon2-2.49のscaffoldとDispatcher。--flavor=Basic が基なんで、それを読む。 概要 scaffold 内のPerl関連のファイルはapp.psgiとYourProject.pmとYourProject::Webと YourProject::Web::Dispatcher だけ。実際のユーザ側の処理は YourProject::Web::Dispatcher がディスパッチした先に書くことになるので、Dispatcher.pm に直接書くか、YourProject::Web::C 以下のクラスに書くことになる。 YourProject::Web::Dispatcher を書くために Amon2::Web::Dispatcher::Lite と Amon2::Web::Dispatcher::RouterSimple が提供されているので、これも

    Amon2のソースを読む(3) - 北海道苫小牧市出身の初老PGが書くブログ
  • Amon2のソースを読む(2) - Pixel Pedals of Tomakomai

    今日はAmon2-2.49のコンテキスト周りで、具体的には Amon2、Amon2::Web、Amon2::WebRequest、Amon2::WebResponse、ついでにAmon2::Config::Simple 。Dispatcher はこれらと粗結合なので、次回以降。他残っているのは、scaffoldのコードと、トリガーとプラグイン周り。 Amon2::Web と Amon2 の関係 Amon2::Web はAmon2(コンテキスト) を継承しておらず、コンストラクタも持っていない。YourProject::Web ではAmon2 と Amon2::Web の双方を継承して使う。という構造を考えると、Amon2::Web はAmon2 のサブクラスに対する Mix-in として働いていると見た方がわかりやすい。 Amon2::Web scaffoldの YourProject/a

    Amon2のソースを読む(2) - Pixel Pedals of Tomakomai
  • Amon2のソースを読む(1) - 北海道苫小牧市出身の初老PGが書くブログ

    今日は Amon2-2.49 のscaffoldの作成まで。具体的にはAmon2::Setup:: 名前空間の部分。 amon2-setup.pl script/amon2-setup.pl がscaffoldの作成スクリプトだが、これは各フレーバーをnew->runしてるだけ。フレーバはAmon2::Setup::Flavor:: という名前空間に置かれるが、+指定で好きな名前空間のものも読めそう。 Amon2::Setup::Flavor Amon2::Setup::Flavor はフレーバーのスーパークラスで、ファイルを特定のPATHに吐き出す write_file などを提供する。write_file に渡すファイル名は、<<hoge>>の形式で変数を利用可能。ファイルの内容はXslateで解釈されるが、タグは <% hoge %> の形式。 Amon2-2.49のコアパッケージに

    Amon2のソースを読む(1) - 北海道苫小牧市出身の初老PGが書くブログ
  • Amon2::Lite で作る Dropbox アプリ! - ワタブログ

    2011年08月10日00:13 Amon2::Lite で作る Dropbox アプリ! カテゴリ Tweet iPhone / Android ではちらほら Dropbox API を使ったアプリを見かけますが、当然 CPAN にも Net::Dropbox::API というモジュールがありました。examples に Mojolicious::Lite を使った簡単な例が紹介されていたので Amon2::Lite でもやってやろう!ということで、 Amon2::Liteでmarkdownその他のリアルタイムプレビュー - すぎゃーんメモBig Sky :: すぎゃーんさんの「Amon2::Liteでmarkdownその他のリアルタイムプレビュー」をfluxflexで動かしてみた。をもとに Dropbox アプリを作ってみました。 https://github.com/wata/Tex

  • tokuhirom blog

    インストール今回は Amon2 の最新版が必要なので、すでにインストールしている場合でもあらためてインストールしてください。 環境は OSX, linux を想定していますが、Windowsでもそれほどかわらないかと思います。Windows でやっていてわからなかったら mattn さんにきいてください。 さて、Amon2 のインストールは非常に容易です。Amon2はCPANにリリースされていますから、通常のCPANモジュールと同様にcpanmコマンドでインストールできます。 % curl -L http://cpanmin.us | perl - Amon2 Amon2::DBIで、インストールが完了します。テストに失敗する場合には、コメント欄などできいてください。 TinyURLを作るぐだぐだとかたっていても何もつたわらないと思うので、チュートリアルに入りましょう。 とりあえず、簡単で

    tokuhirom blog
  • 1