[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

amon2に関するissmのブックマーク (51)

  • Amon2で非同期レスポンスを使う方法と、非同期WebAppのハマりどころ - 時計を壊せ

    この記事はPerl Advent Calendar 2013の15日目の記事です。 Amon2とは @tokuhirom さんが開発しているPerl製のWAF*1です。 Plackを軽くwrapしたような軽量でシンプルなWAFです。 現在、Version 6.00がリリースされていますが、Version 3.50からwebsocketのサポートが入り、 その関係でPSGIの遅延レスポンス/ストリーミングレスポンスのインターフェースに対応しています。 Amon2で非同期レスポンスを使う Amon2::Plugin::Web::Streamingを使う事により非同期でレスポンスを返す事が出来ます。 例えば、index.txを5秒後にrenderして返す場合は以下のようになります。 use strict; use warnings; use utf8; use Amon2::Lite; use

    Amon2で非同期レスポンスを使う方法と、非同期WebAppのハマりどころ - 時計を壊せ
  • Amon2 にStandalone フレーバーが追加された - tokuhirom's blog

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

    issm
    issm 2013/10/03
  • YappoLogs: YAPC::Asia 2013 #yapcasia

    YAPC::Asia 2013 #yapcasia 今日みた夢が「blog 書かないと干すぞ!」ってがちぎれる941さんとlestrratさんがでてきたので書く事にした Yappo です。みなさん週末はいかがお過ごしでしたか?僕はカート大会いって箱根で温泉と美味しいご飯べてきました。 編発表資料 社内開発簡単化と世界で戦う開発を考える技術 明らかに会場でかくていっぱい人見に来る、裏発表の DeNA の人が Yappo に負けないクオリティにする!的な宣言してて泣きそうになったのでささやかな反撃でタイトルぱくりました。 1日目の午後一から40分の枠をもらったので、仕事向けのアプリケーション開発で考えなきゃいけない事と、雛形スクリプトを作る時に便利なKsgkの紹介をしました。基的にはコピペ脳は害でしか無いのでいかにしてコピペを排除するか、ちゃんと自分の頭で考えていくか。のような話をしまし

  • PerlのWAFのAmon2を使う時のオレオレTips集 | hirobanex.net

    Amon2を使い込もうと、ちょっとコード読んだり、オレオレカスタマイズしたりしたので、そのときに「こんな感じにした/こんな感じでお茶を濁した」というのを「オレオレTips」と題して公開していきますー。 PerlWebサービスを開発する PerlWebサービスをいまどき開発するなら、PlackベースのWAF(ウェブアプリケーションフレームワーク)を使うのがモダンPerlですね。候補はたくさんあると思うのですが、なんとなくCPANでドキュメントとかクラス数とか見ていると、DancerとMojoliciousと、そしてAmon2くらいが汎用的でいいんじゃないかなーと思っている次第です。 ちなみに、このブログはKamuiというnekokakさん製のWAFで書かれていて、仕事でも未だにKamuiベースでモリモリ開発しちゃったりしているんですが、CPANにも公開されていないし、特にメンテナンスも予

  • Amon2::Plugin::Web::Rawというのを書いてみた - 車輪を再発明 / koba04の日記

    Amon2::Plugin::Web::Rawというのを書いてみました。 追記ModuleをWeb::ImageからWeb::Rawに変更 https://github.com/koba04/Amon2-Plugin-Web-Raw 何 まぁ見ての通り、Pluginを読み込むとrender_rawっていうメソッドが生えてデータのtype(gif, png, jpeg, swf, zip)とバイナリデータを渡すとPlack::Responseにして返してくれるだけのものです。 Pluginにするほどではないのですが毎回書くのは面倒なのでPluginにしてみました。 用途 画像は通常は静的サーバーで配信すると思うのですが、アプリで合成して画像を出力したり、画像にもアプリと同様の認証をしたいという時に使えるかなと思っています。 Dist::Milla便利 http://weblog.bulkne

    Amon2::Plugin::Web::Rawというのを書いてみた - 車輪を再発明 / koba04の日記
  • amon2-setup.plの zsh補完を書きました - Shohei Yoshida's Diary

    http://gihyo.jp/dev/serial/01/perl-hackers-hub/001801 Web+DBの記事も Webで見れることになったので。 リポジトリ syohex/zsh-perl-completions · GitHub コード flavor一覧は 'list-flavors'オプションから取得しているので、 独自の flavorをインストールしていてもおそらく補完されます。 #compdef amon2-setup.pl local -a flavors flavors=($(amon2-setup.pl -l | awk '{print $1}')) _arguments -n : \ '*--flavor=[Set up flavor]:flavors:'"($flavors)" \ '--vc=[Setup the Version Control(Def

    amon2-setup.plの zsh補完を書きました - Shohei Yoshida's Diary
  • [perl][amon2] Amon2 アプリケーションにおけるパジネーションの個人的実装例 | いわぶろ(ろてん)

    はじめに 最近ようやく Mouse な実装を始めたところで(Moose もほとんどやったことない),これがなかなか楽しいので,ちょうどお仕事で必要だった「パジネーション」なクラスを書いてみたのでそのへんを晒してみます. 個人的に使いたいようにしか実装していませんw こんな感じで使いたい 「モデル」という定義にそぐわないような気もしますが,まぁあまり気にしないでください>< コントローラ内 コード中に出てくる $c->model(...) については,次をご参照ください: [perl][amon2] Amon2::Plugin::Model というのを書いて使っているので公開してみた « いわぶろ(ろてん) sub foobar { my ($class, $c) = @_; my $req = $c->req; my $page = $req->param('page') // 1; my

    issm
    issm 2013/04/20
    書いた.
  • PerlのAmon2-3.28のLargeフレイバーのDispatherが学ぶべき所が多い | hirobanex.net

    該当コード 『[Amon2入門] Amon2::Setup::Flavor::Large + Teng をもちいた簡単な掲示板の作成 ~ 軽量フレームワークAmon2入門 (7) ~』で紹介されていたから、ちょっとamon2-setupしてみてみた。 package MyBBS::Admin::Dispatcher; use strict; use warnings; use utf8; use Router::Simple::Declare; use Mouse::Util qw(get_code_package); use String::CamelCase qw(decamelize); use Module::Pluggable::Object; # define roots here. my $router = router { # connect '/' => {control

  • 第18回 Amon2によるWebアプリケーションの高速開発(2) | gihyo.jp

    上記のようにコマンドラインで入力すると、MyAppディレクトリ以下にスケルトンができあがります。生成されるディレクトリ構造は図1のようになります。jsディレクトリに配置されるJavaScriptファイルの多さと、t、xtディレクトリに配置されるサンプルテストスクリプトの多さが特徴です。 図1 Amon2のディレクトリ構造 テストスクリプトは、Test::WWW::Mechanize::PSGIを利用したものや、jshintを利用してJavaScriptの文法チェックをするものなど、いくつかの基的なテストケースを用意しています。これらを手に利用者は自分のアプリケーションに合ったテストケースへと成長させていくことができるようになっています。 起動してみる できあがったスケルトンはすぐに試してみることができます。次のように実行するとアプリケーションサーバが起動します。 ブラウザでhttp:/

    第18回 Amon2によるWebアプリケーションの高速開発(2) | gihyo.jp
  • 第18回 Amon2によるWebアプリケーションの高速開発(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回は普段Webアプリケーションの開発を行っているtokuhiromさんで、テーマはWebアプリケーションフレームワークAmon2です。 Amon2とは? こんにちは。tokuhiromです。稿では、筆者が中心となって開発を進めているAmon2というWebアプリケーションフレームワークについて説明します。 Amon2は、次のような特徴を持つWebアプリケーションフレームワークです。 PSGI/Plackベース Amon2はHTTP::Engine/PSGI/Plackの開発/制定に初期のころから関わっている筆者が作成したWebアプリケーションフレームワークです。そのため、Plackの部品をできる限り利用することにより、少ないコードベースでWebアプリケーションフレームワークを実現しています。これにより学習コストが低くなってい

    第18回 Amon2によるWebアプリケーションの高速開発(1) | gihyo.jp
    issm
    issm 2013/04/19
    続きも楽しみ!
  • 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をSupervisor+Starmanで動かす - http://mechanist.x0.com

    Amon2が、Apache+mod_perlではどうにもうまく動いてくれない(ホームディレクトリがわからないらしく、要所をフルパス指定にするコードの修正が必要)。Apacheの設定が悪いんだろうが、何が悪いんだかよくわからない。 そこで、わからないついでに、全く違う動作環境を試してみることにした。 それは、以下のページで解説されている Supervisor および Starman を用いた環境である。 supervisordとclelrydの設定 FreeBSDで Supervisor を使う なお、サーバーのOSはUbuntu11.10である。 まず、easy_installでSupervisorをインストールするために、あらかじめpythonのsetuptoolsを入れておく。 apt-get install python-setuptools その後にSupervisorのインストー

  • YappoLogs: サービスをつぶさない為に Web アプリを書く時にやっとくと良い事2選

    サービスをつぶさない為に Web アプリを書く時にやっとくと良い事2選 テンプレートのエラーが出た時にアプリケーションのログだけに書くのでは無く、誰にでも「ここがえらってるよ!」って見えるようにしとくと間違いが少なくなる傾向があるのでテンプレートエンジンでフック出来るようになっておいてたら、それをうまく使うと良い。 また、テンプレートエンジンがレンダリングしてるフェーズで DB にクエリが飛ぶような構造で書いてあると、非エンジニアのカジュアルにテンプレートいじる人が甚大なクエリを実装してしまう可能性があるので、これも早期に発見しないとサービスが止まってしまい会社の売り上げが下がってしまい社員が路頭に迷うケースが発生してしまうので、これらも未然に防がなければならない。 Text::Xslate + Amon2 ならこうかける。 package MyProje::Web; ...; { my

    issm
    issm 2013/04/05
    "テンプレートのエラーが出た時にアプリケーションのログだけに書くのでは無く、誰にでも「ここがえらってるよ!」って見えるようにしとくと間違いが少なくなる傾向がある"
  • Amon2 で bootstrap を明示的によぶケース - tokuhirom's blog

    Amon2 で bootstrap しているのは、dbh などのリソースのキャッシュのためというのが大きいです。 ですから、無闇に bootstrap メソッドをよびまくるとおかしいことになります。 bootstrap する箇所は以下のような場合です。 スクリプトの頭ジョブワーカーのジョブ単位の開始時Web の1リクエストごと(これは Amon2::Web で自動でよばれる)

  • Amon2 is now Carton ready - Amon2 3.74 is out - tokuhirom's blog

    https://metacpan.org/module/Amon2 I shipped Amon2 version 3.74, today. This version of Amon2::Setup creates cpanfile to support Carton. Enjoy web application development with Carton!

  • #perlcasual で再びライブコーディングさせていただいた - すぎゃーんメモ

    PerlCasual #05 : ATNDにて、@yusukebeさんに声をかけていただき、再びライブコーディングをさせていただいた。 前回やらせていただいたのは2年半以上前なのか… 第6回 yokohama.pmPerl Casual でライブコーディングに挑戦してみた - すぎゃーんメモ 前回はちょっとしたスクリプト的なものだったけど、今回はWebアプリっぽいのはどうか、ということでAmon2を使ってWebアプリを作成する、というお題にしてみた。 まっさらな状態から始めて OAuth2ログインを使って 掲示板的なアプリを Herokuにデプロイして動くものをリリースする という目標でやってみた。 掲示板的なのは実はAmon2のtutorialにあるやつですね。 Tutorial - Create BBS site — Amon2 documentation 結局できたのは htt

    #perlcasual で再びライブコーディングさせていただいた - すぎゃーんメモ
  • Amon2::Plugin::Web::ValidatorというPluginを書いた - のらねこの気まま暮らし

    ソースは以下。まだ全然書き途中 https://github.com/rymizuki/p5-Amon2-Plugin-Web-Validator 長めの前置き 以前からポツポツとリクエストのValidation系のModuleがどうにも肌に合わず、去年の秋ごろにData::Validatorを弄る感じで自作Moduleを使っていた。 別にあれがダメこれがだめで、というよりは社内で使うのにいろいろ制約があったことと、どうも冗長に感じること、Data::Validatorをメソッドのバリデーションに使っているのにリクエストはRuleの書式が違うことなど、どうにもまとまりがなかった。 受け付けるデータのチェックを行うのであれば、ModelもContollerも同じフォーマットであるにこしたことはないし、Mouse::Typesとか型チェック系のModuleも使っているのだから、ある程度ルールも

    Amon2::Plugin::Web::ValidatorというPluginを書いた - のらねこの気まま暮らし
  • Amon2+TengとMVC的Modelの実装 | UCWD-Studio

    前回のTengのリファレンスに続き、今度はAmon2でTengを利用するケース。これは amon2-setup.pl を実行する際に flavor に Teng を指定するとすぐに利用できるようになります。以下、一応手順。 Amon2, Teng, Amon2::Setup::Flavor::Teng が入ってない場合はインストール $ cpanm Amon2 Teng Amon2::Setup::Flavor::Teng 任意の場所で Amon2 のスケルトンを作成。この際 flavor に Teng を指定 $ amon2-setup.pl --flavor=Basic,Teng MyApp amon2-setup.pl を実行すると指定したプロジェクト名(上の例では MyApp)のディレクトリとともにスケルトンが作成されます。 use File::Spec; use File::Ba

    Amon2+TengとMVC的Modelの実装 | UCWD-Studio
    issm
    issm 2013/04/04
    Amon2::Plugin::Model の GitHub リポジトリ作りました: https://github.com/issm/p5-Amon2-Plugin-Model
  • Amon2やModel付近で読んでおこうと思っているソースコード一覧 - 僕のYak Shavingは終わらない

    tokuhirom's blog. Perl の次の10年のためのフレームワーク。Amon - tokuhirom's blog. Amon2 の構成 - tokuhirom's blog. Encode::encode で変換できない文字を 〓 にする - tokuhirom's blog. Perl でつくった web サイトを L10N する方法 - tokuhirom's blog. Amon2 の最近の変更のまとめ(2.13〜2.23あたりまで) - tokuhirom's blog. Amon2 with XMLRPC - tokuhirom's blog. dotcloud で Amon2 をつかう! - tokuhirom's blog. Amon2 の最近の変更について - tokuhirom's blog. Amon2::Lite というモジュールを Amon2 に添付

    Amon2やModel付近で読んでおこうと思っているソースコード一覧 - 僕のYak Shavingは終わらない
  • [perl][amon2] Amon2::Plugin::Model というのを書いて使っているので公開してみた | いわぶろ(ろてん)

    はじめに Amon2 アプリケーションで「モデル」的なクラスをメンドくなく利用するのに,Amon2::Plugin::Model というものを書いて 使っていたりします. 以前, hirobanex さんのエントリにて次のような言及がありました: とりあえず、issmさんに紹介していただいたコードを、Modelの名前空間いじれるようにして汎用化するのが一番いいのではないでしょうか?w 【Amon2のオレオレTips】MVCを意識したModelの具体的な実装とその考察 | hirobanex.net このあたりやその他いくつか修正を加え,そういえば GitHub にリポジトリ作ってもいなかったので,これを機に公開してみます. issm/p5-Amon2-Plugin-Model · GitHub SYNOPSIS Amon2 アプリケーション「MyApp」として簡単に説明してみます. プラグ

    issm
    issm 2013/04/04
    書いた.