タグ

plackに関するbayashi_netのブックマーク (145)

  • Plack::Middleware::Auth::OAuth を作ってみた - hide-k.net#blog

    最近、咳のしすぎであばらにヒビが入りました。 大多数の人は心配をしてくださってありがたいのですが、ごく一部の極道達がおもしろ画像を連投して笑わせてくるおかげで全治が大分先になりそうです。 こんばんは。 先日、「モバイルなプラットフォームでの OAuth Signature の検証」ってエントリーを書いた際にPlack::Middlewareとかでやるべきとか書いておいて放置していたのですが、某極道が「とっとと書かないと笑わせてあばらへし折るぞ!ごるぁ!」と脅してきたのでサクッと書きました。 GitHubに置いてあります。 Plack-Middleware-Auth-OAuth 使い方は簡単。 use Plack::Builder; my $app = sub { return [200, ['Content-Type' => 'text/plain'], ['Hello World']];

  • PlackとDBIx::SkinnyとText::MicroTemplate::Fileでwiki作ったのでソースを公開してみる - だるろぐ

    2010/04/19 22:41 追記 ブコメでkamipoさんとa666666さんに「TMTで変数をエスケープさせたくない場合はencoded_string()使えばいい」と教えてもらったので修正。 ありがとうございます。 GitHub - hirafoo/piki: PlackとDBIx::SkinnyとText: :Fileで作ったwiki psgiとかplackとかstarmanとかモダンなアレソレとかに全然ついていけてないので勉強がてら。 今まで作って公開してみたときは解説長々と書いてきたのだけど今回は略。解説じゃない事を書こう。 何でwiki 認証とCRUDが使えれば基はいいだろうということで今まではBBS作ってたのだけど、芸が無いので。 あと、作ったもの晒すだけなら、ドメイン取って公開せんでもソースだけ晒せばいいと気付き始めた。 development用の環境しか作ってませ

    PlackとDBIx::SkinnyとText::MicroTemplate::Fileでwiki作ったのでソースを公開してみる - だるろぐ
  • Starlet 使ってみた|perl|@OMAKASE

    CPANでPlack関連の情報はないかと漁っているとstarmanライクなPSGI仕様のサーバ Starlet があると聞いて早速ためしてみました。 http://search.cpan.org/dist/Starlet/ 今まで自分の所ではplackで利用できるWAFを自前で書いてそいつをStarman + Server::Starterを使ってで動かしていました。 Starmanでなにも問題なく動いてるので変更する意味はないのですがPSGI仕様のいい所(簡単にインターフェースを取り替えられる)を利用させてもらいちょっとだけ試してみました。 変更前の環境はフロントにlighty(mod_proxy)+バックにStarman,Server::Starterな構成です。でStarmanはdaemontoolsで起動させてます。 変更前 starman利用時のdaemontoolsのrun-s

  • Inside Of Mbga Open Platform

    Hideo Kimura from DeNA presented on the MBGA Open Platform and the Hermit gadget server. The key points are: - The MBGA Open Platform uses OpenSocial 0.9 and allows third party developers to build gadgets and integrate them into social networks. - Hermit is the gadget server implemented in Perl using PSGI and Plack. It uses pluggable modules and can handle high volumes of requests through lighttpd

    Inside Of Mbga Open Platform
  • TatsumakiとTwiggy使ってみた - punitan (a.k.a. punytan) のメモ

    Tatsumakiのeg/chatをほとんどそのまま流用しました。 それぞれの概要 Tatsumaki Tatsumaki - Non-blocking web framework based on Plack and AnyEvent Twiggy Twiggy - AnyEvent HTTP server for PSGI (like Thin) ニコ生アラートサーバ ニコニコ生放送というサービスを使って開始された番組の情報がXMLSocketの形式で送られるもの。 とりあえずデモ http://live.linknode.net/stream 仕組み live.html live.psgi nicoalert.pl nicoalert.plでアラートサーバに接続し、取得したものをGETパラメータでサーバに送る。 live.psgiでlong/pollの管理と新規番組の情報を扱う。 l

    TatsumakiとTwiggy使ってみた - punitan (a.k.a. punytan) のメモ
  • Apache2+mod_proxy+持続接続で時々レスポンスが悪くなる現象のメモ - Pixel Pedals of Tomakomai

    今更な話題で恐縮ですがmiyagawaさんがものすごい勢いで教えてくれたのでメモっておきます。 mod_proxyでバックエンドにリクエストを投げたとき、リクエストのうち何個かが極端に遅いという現象が起こりました。その時のabの結果は以下。 % ab -c 5 -n 500 http://127.0.0.1:21082/ Percentage of the requests served within a certain time (ms) 50% 1 66% 1 75% 1 80% 1 90% 4 95% 1008 98% 1994 99% 2003 100% 2020 (longest request)なお、今回使おうとしたバックエンドはStarmanです。 多分こんな原因 検証不足で断言はできないのですが、多分以下のような感じ。多分。 Apache のデフォルトのServerLimi

    Apache2+mod_proxy+持続接続で時々レスポンスが悪くなる現象のメモ - Pixel Pedals of Tomakomai
  • PSGI standalone web servers

    bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. Now we have 4 (or actually more) PSGI standalone web servers. Here's a quick cheat sheet to compare them: HTTP::Server::PSGI - core in Plack. Should work on all systems with perl 5.8.1 or later. No preforking nor keep-alives. Best for the quick development with plackup and testing with Plack::Test. HTTP::Server:

    bayashi_net
    bayashi_net 2010/03/27
    「Personally I recommend Starman for the production use, running it behind nginx, Varnish or lighttpd.」
  • cronolog と plackup の連携 - tokuhirom's blog

    multilog に access logerror log をまぜてだすと、エラーでてんのかどうかよくわからなくなっちゃうので、まあわけた方がよろしい。 multilog でパターンマッチで適当に分割するという手もあるけれど、アクセスログは集計などにもつかうので、日ごとにファイルがわかれていた方が便利でしょう。 というわけで、こんな風にしてみた。 use Plack::Builder; builder { open my $fh, "| /usr/bin/cronolog /var/log/plackup/%Y/%m/myapp-%Y%m%d.l og" or die "cannot load log file: $!"; select $fh; $|++; select STDOUT; enable 'Plack::Middleware::AccessLog', logger =

  • DeNA テクノロジーセミナーきいてたら簡単なディスパッチャができた - tokuhirom's blog

    Perl5.10 以後のみ対応だけど、5.10 以後ならこんな簡単なのでいいのかも。 package MojaMoja; use strict; use warnings; use parent 'Exporter'; use 5.01000; our $VERSION = '0.01'; use Plack::Request; use Plack::Response; our @EXPORT = qw/get put post Delete zigorou res/; my @ROUTE; BEGIN { no strict 'refs'; for my $meth (qw/get put post Delete/) { my $method = uc $meth; *{$meth} = sub ($$) { my $pattern = $_[0]; push @ROUTE, { reg

  • [plack] response body を変更する Middleware の試作

    インターネット、GoJavaScriptPythonPerl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 Web アプリケーションが見事にコードリファレンス一つに抽象化されている PSGI では、あるアプリケーションに前処理・後処理を追加して、動作をちょっと変更する Middleware という仕組みがあって、それで色々と面白いことができそうなので、試しにくだらないものを作ってみました。 今回作ったのは、実用性皆無ですが、後処理を追加することで、出力をすべて大文字にしてくれる Middleware です。 必要なモジュール: Plack, Twiggy 使い方: plackup -s Twiggy app.psgi で動かして、http://localhost:5000/stream などを見

  • CGIをPlackで開発(2) - D-6 [相変わらず根無し]

    CGIをPlackで開発(2) 前のエントリ書いたら宮川さんにオススメ方法を教えてもらった http://twitter.com/miyagawa/status/10271128928plackup \      -L Shotgun      -MPlack::App::WrapCGI      -e 'Plack::App::WrapCGI->new(script => "/path/to/cgiscript.cgi")' だそうです!これなら全ての要件を満たせるもよう!そしてapp.psgiを作る必要ありません。 今これやってみて一つだけ問題点。多分POD入りのCGIは動かない。それと、__DATA__は見てくれるけど、__END__があると動かない。__END__さっき簡単なパッチのpull requestを送っておきました! カテゴリ 開発 タグ cgi perl plack 2

  • QRコードを表示するapp.psgi - とほほのN88-BASIC日記

    QRコードを表示するだけの簡単なお仕事を大量にさばきたいって言われたので書いてみた。 use Imager::QRCode; use Plack::Request; my $qrcode = Imager::QRCode->new( size => 2, margin => 2, version => 1, level => 'M', casesensitive => 1, lightcolor => Imager::Color->new(255, 255, 255), darkcolor => Imager::Color->new(0, 0, 0), ); my $app = sub { my $req = Plack::Request->new(shift); my $url = $req->param('url') or return [400, ['Content-Type' =>

    QRコードを表示するapp.psgi - とほほのN88-BASIC日記
  • Plack/Starman Daemontools Run File With Complete Deploy Bundle - D-6 [相変わらず根無し]

    Plack/Starman Daemontools Run File With Complete Deploy Bundle 注1:まだ番にはデプロイしてませんが、テストでは使いました。 注2:以下スクリプトは開発者の労力を減らすためのスクリプトで、万全なデプロイ方法だとか言うわけではありません。 注3:正直シェルスクリプトは素人です。 ここ最近のアプリケーションのバンドル・デプロイについてちょっと固まりつつあるので、書いてみる まず アプリケーションと、その依存関係。デプロイ側のサーバーにはlocal::libと必要なModule::Install系のモジュール、それにModule::Install::Bundle::LocalLibがインストールされている前提です。アプリケーションの依存関係は全部Makefile.PLに書きます。 use inc::Module::Install;

  • Plack::Server::Standalone系を使ってウェブアプリケーション開発と運用が楽になる話 - JPerl Advent Calendar 2009

    Plack::Server::Standalone 系を使ってウェブアプリケーション開発と運用が楽になる話 - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 既存の環境に対する不満 Perl のウェブアプリケーションを構築するにあたっては、リバースプロキシと mod_perl を組み合わせるか、あるいは FastCGI (ExternalServer) を利用するのが一般的だと思います。しかし、どちらをとっても、環境を構築して設定するのが難しいというのが個人的な不満でした (mod_redirect を設定したり mod_fastcgi にパッチをあててインストールしたり startup.pl を書いたり...)。自分が Plack の開発 (主に Server::Standalone と Server

  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • Plack::App::Proxyについてだらだらと - Pixel Pedals of Tomakomai

    去年の年末、FlashのXMLSocket通信を横取りしてダンプするアプリを書こうとしたのですが、その時に見つけたのがLee AylwardさんのPlack::App::Proxyです。HTMLを置換してFlashの接続先を横取りしつつ、自前のXMLSocketサーバを立ち上げるってのが1プロセスでできるってのは、非同期なWEBサーバならではの技ですね! ただ、Plack::App::Proxyを触り始めてみると、そのままではなかなか難しい部分が色々あったりしたので、コメンテナにしてもらってちょくちょくいじったりしています。(ちなみに、miyagawaさんもコラボレータで、私よりバリバリいじってますw) 一言で言えば、 Plack::App::Proxy がカバーしているのは Apache の mod_proxy の機能です。 使い方はpod見てもらうと全部載ってますが、例えば /back

    Plack::App::Proxyについてだらだらと - Pixel Pedals of Tomakomai
  • PSGI 1.03のMiddlewareを書いてみる - Pixel Pedals of Tomakomai

    最近Middlewareを書くことが多かったのでまとめときます。 Middlewareとは PSGI的には、Middlewareは外から見るとPSGI Applicationsですが、別のPSGI Applicationsを動かす能力を持っているものです。平たく言えば、「$app をラップして 新たな $app として振る舞うもの」と言えます。ただしPSGIでは、この"ラップの方法"は定められていません。 ただ、現実的には Plack::Builder の enable で適用できた方が楽なので、「Plack::Middlewareを継承する」か「$appを受け取って新たな$appを返すコードリファレンス」のどちらかがいいでしょう。 入力$envを参照・変更する 一番基的なMiddlewareのパターンです。これは簡単。コードリファレンスで実装するとこんな感じ。 my $middlewa

    PSGI 1.03のMiddlewareを書いてみる - Pixel Pedals of Tomakomai
  • Plack::Requestとか使って小さなWebアプリを作ろう! - JPerl Advent Calendar 2009

    ヒゲをはやして、髪をモヒカン気味に切って、ベストを着ていたら「dankogaiさんですか!」と呼ばれまくって失礼ですがショックを受けてしまい、とりあえずヒゲを剃ってみたyusukebeです。気合い入れて書きます。 はじめに さて、今回はPlack::RequestやTemplate-Toolkit、XML::Feedといったモジュールを使って、小さな、だけどもなかなか使えるWebアプリを作る過程を紹介します。これを通して、今話題であるPlackについてやWebアプリの仕組みについて多少でもわかっていただければこれ幸いでございます。 実はこのネタ昨日の夜考えて作ったものであります。というのも「YouTubeの動画を垂れ流しで好きなように、みてーな」とふと思ったからです。例えばYouTube内で「Perfume」と検索をすると個別の動画以外に「再生リスト」または英語では「Playlist」とい

  • PSGI/FAQ.pod at master from miyagawa's psgi-specs - GitHub

    NAME PSGI::FAQ - Frequently Asked Questions and answers QUESTIONS General How do you pronounce PSGI? We read it simply P-S-G-I. So what is this? PSGI is an interface between web servers and perl-based web applications akin to what CGI does for web servers and CGI scripts. Why do we need this? Perl has CGI as a core module that somewhat abstracts the difference between CGI, mod_perl and FastCGI. Ho

  • GitHub - kentaro/psgi-study

    PSGI/Plack勉強会 *PSGI/Plackとは? - PSGI = Perl Web Server Gateway Interface Specification -- WebサーバとWebアプリケーションとの間のインタフェイス仕様 - Plack = PSGIのリファレンス実装 -- PSGI実装のひとつ(とはいえ、やたら気合いの入った感じになってるけど) -- PSGI != Yet Another WAF -- PSGI != Plack *PSGI策定の背景 - 各Webアプリケーションフレームワークがバラバラに実装していた、WebサーバとWebアプリケーションとのインタフェイスを統一したい。 -- 車輪の再発明を避ける -- 各サーバ間における移植性を高める - そのためには、仕様と実装の区別を明確に行う必要がある。 -- Python: WSGI -- Ruby: Ra

    GitHub - kentaro/psgi-study