タグ

Amon2に関するsugyanのブックマーク (33)

  • Amon2 にStandalone フレーバーが追加された - tokuhirom's blog

    Amon2 4.04 から、EXPERIMENTAL ではありますが Standalone フレーバーが追加されました。 これにより、CPAN にすぐあげられる状態のウェブアプリケーションが生成されるようになった、つもりです。 ちょっとまだ荒削りだけど、うごいているので、おためしください。 このモードでつくったアプリケーションはグローバル変数など一切つかってないので、複数を単一プロセスでうごかしても綺麗に動作します。

    sugyan
    sugyan 2013/10/03
  • http://yappo.github.io/talks/20130920-amon2-line-setup/

  • Amon2 4.00 released - tokuhirom's blog

    Amon2 が久々のメジャーバージョンアップをはたしました。 主な目玉としては、 Teng をデフォルトの O/R Mapper として採用 bootstrap 3 に対応 の二点です。 ご査収ください。

  • Amon2のDispatcher::RouterSimple、個人的にこんなのだといいなー、という例 - taiyoh's memorandum

    [追記] tokuhirom氏に「よさげ」って言ってもらえたので、調子にのってgithubに上げました(シーパン王サーじゃないので)。Amon2::Web::Dispatcher::RouterSimple::Extendedって名前にしております。::RailsLikeとかも考えたけど、関数名違うから混乱するのでやめ。そして自分の英語がひどすぎて死ぬ。あとモジュール名長すぎる。 https://github.com/taiyoh/p5-Amon2-Web-Dispatcher-RouterSimple-Extended [追記終わり] [追記2] gfx氏から「no strict 'refs';状態でガリガリ書くのはマズイ」という指摘を受けて、確かにそうだよなー、でも、submapperへの出入りでコロコロ切り替わるから、限定するのはムズいよなー、と思ったので、関数はある程度他所で定義す

    Amon2のDispatcher::RouterSimple、個人的にこんなのだといいなー、という例 - taiyoh's memorandum
  • 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というのを書いた - ダメ人間オンライン
  • http://yappo.github.io/talks/20121019-yokohamapm9-amon2/

  • websocket.el + Amon2でリアルタイム Markdown Viewer - Shohei Yoshida's Diary

    WebSocketがなんなのか全然わかっていませんが、サンプルを参考に リアルタイム Markdown Viewerを作成してみました。日語を書くとエラーになるとか、 効率を全く考えていないとか、繰り返しやってるとエラーが出るとか 問題はまだ多数ありますが、いろいろ楽しいことができそうな予感はしました。 デモ動画 初めの 10秒ぐらい戸惑っています。 必要なもの Emacsは 23以降がいいっぽいです。試したのは 24.1です。 websocket.el Amon2 3.5以降 サーバ側 Amon2付属の chat.psgiをちょっと直した程度です。 use strict; use warnings; use utf8; use Amon2::Lite; use Digest::MD5 (); use Text::MultiMarkdown qw/markdown/; get '/' =

    websocket.el + Amon2でリアルタイム Markdown Viewer - Shohei Yoshida's Diary
  • Amon2 がストリーミングに対応しました。 - tokuhirom's blog

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

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

    Amon2 が WebSocket に対応していた!! 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

    sugyan
    sugyan 2012/08/07
  • 俺が普段よくつかう JS を Amon2 ジェネレーターでだすようにした - tokuhirom's blog

    俺が普段よくつかう JS を Amon2 ジェネレーターでだすようにした 普段、JS をつかってるときによくつかってるスクリプトたちを Amon2 でスケルトンつくったときにだすようにしておいた。 でっかいものじゃなくて、簡素なユーティリティ的なものだけをとりいれています。 いれたもの es5shim.js https://github.com/kriskowal/es5-shim/ EcmaScript5 の機能の一部をふるい環境でエミュレートしてくれるライブラリです。 Array.prototype.* が便利なのでいれてあります。 strftime.js https://github.com/tokuhirom/strftime-js Date.prototype.strftime をはやします。ほぼほぼ必要になるのでいれてあります。 sprintf.js http://www.di

    sugyan
    sugyan 2012/08/06
    sprintfって便利ですよね
  • Amon2でFacebookAPIを使う その1 - Perl勉強メモ アルパカDiary出張版

    FacebookAPIを使う要件が出てきそうなのでいろいろ調査中。 perlでFacebookAPIを使うにはFacebook::Graphがいいんでしたよね! Facebook::Graphのドキュメントにちょうどチュートリアルがあったので 試しに今回はその手順通りに設定していきたいと思います。 ただしそのままではなく一部Amon2用に置き換えてます。 また、今回は表示するデータを自分のニュースフィードにしてみました。 あと、Facebook アプリ登録画面ってログインするたびちょこちょこ変わってて 他のサイトの設定画面が参考にならなかったりするので スクリーンショットも添付してみましょう。 Step 1: Set up the developer application on Facebook. https://developers.facebook.com/ に行きます。 Step

    Amon2でFacebookAPIを使う その1 - Perl勉強メモ アルパカDiary出張版
  • ぼくがかんがえたさいきょうのAmon2のつかいかた - Kentaro Kuribayashi's blog

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

    ぼくがかんがえたさいきょうのAmon2のつかいかた - Kentaro Kuribayashi's blog
  • クライアントサイドJSでもサーバーサイドJSでもうごくテストを書く - Articles Advent Calendar 2011 Amon2

    こんにちは! tokuhirom です。日曜日ですね! 今日は Test トラックにかこうとしたけど Perl 関係なさすぎて自重したネタをかこうかとおもいます。 さて、Amon2 の重要なパーツといえる strftime.js ですが、こちらもちゃんとテストしなくてはなりません。strftime とかいちばんテストしやすいうえにバグりやすいのに、テストしてないライブラリがおおくてなさけなくなる今日この頃ですからね。 テストライブラリの選定 さて、Perl ならば Test::More をとりあえずつかっておけばいいのですが、JS の場合はどれをつかうべきかなやむところです。JS の場合、いろんな人がオレオレなテストフレームワークをだしててややこしいことこの上ありません。 こういう場合、Perl でも JavaScript でもライブラリの選定方法はかわりません。譲れない機能、ライブラリの

    クライアントサイドJSでもサーバーサイドJSでもうごくテストを書く - Articles Advent Calendar 2011 Amon2
  • Amon2 と JavaScript - Articles Advent Calendar 2011 Amon2

    こんにちは!tokuhirom です! Ark アドベントカレンダーをやるということなので、Amon2 アドベントカレンダーもやろうかとおもいます。 しかし、こちらはあんなにしっかりしたものをかく余裕がないので、ぺろーっとかくかんじにしようかとおもいます。 初日からネタがつきたので Amon2 と JavaScript の話をかこうかとおもいます。あまりこのへんかいたことなかったですよね。 現代の Web Application においては、JS をつかわないことはほとんどないといっても過言ではないでしょう。 ある程度の規模のウェブアプリケーションでは、JS が必須となっております。 そこで Amon2 では JS のサポートをしっかりやっていきたいとかんがえているわけです。 まあ、JS のサポートといっても、jQuery のコードを Amon2 にバンドルしておくとかそういった程度のこと

    Amon2 と JavaScript - Articles Advent Calendar 2011 Amon2
  • Amon2とJSONとセキュリティ - tokuhirom's blog

    [1]http://d.hatena.ne.jp/ockeghem/20110907/p1[2]http://www.atmarkit.co.jp/fcoding/articles/webapp/05/webapp05a.html[3] http://msdn.microsoft.com/ja-jp/asp.net/ff713315[4] http://labs.cybozu.co.jp/blog/kazuho/archives/2007/01/cross-site_including.phpあたりをよんで、JSON とセキュリティについてかんがえてみた。 ここで、有効とされている対策のうち while(1); を先頭に付与するPOST ですべて処理するといったあたりは、RESTful でないし、BK 感がひどいというか質的ではないのでできるだけやりたくない。 また、Amon2 では互換

  • 唐突ですがここでプラグインをかいてみよう 〜 軽量フレームワークAmon2入門 (10) 〜 - tokuhirom's blog

    唐突ですがここでプラグインをかいてみよう 〜 軽量フレームワークAmon2入門 (10) 〜 Amon2 のプラグインの書き方がよくわからないという話をたまに聞くので、そのへんについて説明したいとおもいます。 基的にはプラグインはただの Perl モジュールで、ただ一つの規約にしたがえば問題ありません。それは 'init'という名前のクラスメソッドをもっているということです。ただそれだけです。 package MyPlugin; sub init { } 1; これで、ひとつの valid なプラグインです。 さて、なにもしないプラグインをつくってもしょうがないので、ちょっと機能をたしてみましょう。 package MyPlugin; sub init { my ($class, $context) = @_; $context->add_trigger( AFTER_DISPATCH

  • Amon2::Setup::Flavor::Large + Teng をもちいた簡単な掲示板の作成 その2『ページャーをつけよう』 〜 軽量フレームワークAmon2入門 (8) 〜 - tokuhirom's blog

    Amon2::Setup::Flavor::Large + Teng をもちいた簡単な掲示板の作成 その2『ページャーをつけよう』 〜 軽量フレームワークAmon2入門 (8) 〜 さて、掲示板をつくったとはいえ、これだけではおもしろくありませんね。 まずこの掲示板には重大な欠陥があります。具体的にいうと、ページングがされていません。 ウェブアプリケーションにおいてはページングは非常に重要な要素です。 なにかを一覧表示するページをつくるときに、ページングのことが思いうかばないようでは一人前のウェブエンジニアとはいえません。ページングを手抜きすると、あとあと重いページになって泣くことになるでしょう。ページングは最初の段階でいれておくのが結局は楽なのです(という自戒)。 さて、今回の掲示板では Teng をつかっているので非常にページャの実装が容易になっています。Teng ではページャ関連の実

  • Amon2::Setup::Flavor::Large + Teng をもちいた簡単な掲示板の作成 〜 軽量フレームワークAmon2入門 (7) 〜 - tokuhirom's blog

    Amon2::Setup::Flavor::Large + Teng をもちいた簡単な掲示板の作成 〜 軽量フレームワークAmon2入門 (7) 〜 前回から大分時間が経ってしまいましたが、唐突に Amon2+Teng で大きめのアプリをつくるチュートリアルでもはじめましょう。Teng というのは、O/R Mapper とよばれる種類のライブラリで、DB へのアクセスを簡単にしてくれるものです。 さて、とにかくも準備からはじめましょう。 % cpanm Amon2 Amon2::Setup::Flavor::Teng Teng で Amon2 をインストールします。 % amon2-setup.pl --flavor=Large,Teng MyBBS とするとスケルトンができあがりますので % cd MyBBS として、プロジェクト用のディレクトリにはいります。 %cpanm --inst

  • Amon2 の最近の変更(3.22〜3.25) - tokuhirom's blog

    Amon2 の最近の変更(3.22〜3.25) Amon2::Lite が別 dist に分離されました(Amon2::Lite をつかっているアプリでは Amon2::Lite への依存を明示的に記述するようにしてください) 各種依存がすくなくなりました Xslate でつかう bridge のデフォルトが Star になりました。 Star がつかいにくかったりする場合のご要望は #xslate まで Pragma: no-cache; Cache-Control: no-cache をデフォルトにしていましたが、なにかと問題があるので Cache-Control: private をデフォルトにしました carton をつかう人がふえてくるだろうという予測のもと、依存をへらす変更をしています。Amon2::Lite が別 dist になったのが唯一の非互換な変更かとおもいます。Any

  • 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