タグ

psgiに関するnihenのブックマーク (15)

  • Set the entry point in PSGI - Islands in the byte stream (legacy)

    PSGIスクリプトはコードリファレンスを返さなければならないということで,スクリプトを以下のようなレイアウトにしなければならないと考えがちだ。 #!perl-w use strict; [モジュールのロード] [ユーティリティ関数群] sub { [メインルーチン] }; __END__ しかしPSGIの要求はコードリファレンスであって,必ずしも無名関数である必要はない。むしろ,メインルーチンにも名前が付いていたほうがデバッグ等がしやすいのではないかと思う。 そこで,以下のように名前付き関数をエントリポイントにするというレイアウトを提案する。 #!perl-w use strict; [モジュールのロード] sub psgi_main { [メインルーチン] } [ユーティリティ関数群] return \&psgi_main; __END__ ポイントは,最後の return \&psgi

    Set the entry point in PSGI - Islands in the byte stream (legacy)
    nihen
    nihen 2009/12/15
  • Plack/PSGI Ecosystem

    bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. via www.flickr.com Some people still seems do not "get" Plack/PSGI, so here's the overview. The important bit is that Plack is an implementation but is also a namespace for utilities, and things like Plack::Middleware and Plack::Request should be thought of more like a library. Plack::Server, ::Middleware, ::Req

  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

    nihen
    nihen 2009/12/12
    何が言いたいのかがよくわからんかった。mod_psgiとかPlack以外の実装もでてきてますよー。
  • plackを使ってみたの巻 - D-6 [相変わらず根無し]

    plackを使ってみたの巻 PSGIだPlackだって某IRCチャンネルでお祭りをやっている最中金策に走っていたので、まださわっていなかったのですが、とりあえず練習でさわってみました。 http://github.com/lestrrat/GitPlack 結論からまず言います:WAFを作りたいんじゃなければとりあえずCatalystとか使っておけ。 私の見解は以下の通り: PSGI/Plackは統一された、しかも非同期エンジンを念頭に置いて考えられた仕様・実装なのでその点は素晴らしい。だけど、Plackはフレームワークではないし、とりあえずアプリを作る分には我々凡人は普通にフレームワークを使っておけばいい。・・・という感じ。 結果的には2時間くらいでWAFもどきとgitの情報を表示するアプリを作れたし、こういう仕様があるのは素晴らしい事です。 細かいところだけど難点はリスタートサーバーが

    nihen
    nihen 2009/10/20
    「しかも非同期エンジンを念頭に置いて考えられた仕様・実装」なんか数日前(miyagawaさんがTatsumaki作りはじめる前)まではそうじゃなかった気がするけどw / microなアプリ作る時とかにも便利かなとは思う(H::E同様)
  • PSGI/Plackで非同期 Web Server - blog.nomadscafe.jp

    PSGI/Plackにおいて、非同期にレスポンスが返せるstreamingという仕様/機能が追加されました。 PSGI/Plack streaming is now complete これを使うと、streamingをサポートしたサーバから非同期/nonblockingにhttpやGearmanを利用して外部へ問い合わせを行い、その結果をレスポンスしたりできます。 また、これがPlackで既に実装済みなので、非常に短いコードでサーバの実装ができちゃいます。 すばらしいですね。 すでにmiyagawaさんが、この機能を利用した非同期Web Framework「Tatsumaki」を書かれています。 イベントを扱う部分が隠蔽されているので、これを使うとさらに簡単に実装できます。 すばらしすぐる。 ここでは、簡単に外部へAnyEvent::HTTPを用いて、HTTPリクエストを行うサンプルを書い

  • mod_psgi をインストールしてみた - 酒日記 はてな支店

    【注意】2009年10月16日現在の情報です。 【追記】 初出時にあった configure.ac, Makefile の問題は修正されたため、記事内容も修正しました。 mod_psgi を試してみたのでメモしておきます。 Ubuntu 9.04 x86_64 Apache/2.2.11 (Ubuntu) Perl v5.10.0 built for x86_64-linux-gnu-thread-multi $ git clone git://github.com/spiritloose/mod_psgi.git $ cd mod_psgi $ autoconfconfigure が出来たので実行して make && make install. $ ./configure $ make # make installhttpd.conf に設定して LoadModule psgi_modu

    mod_psgi をインストールしてみた - 酒日記 はてな支店
  • Plack and PSGI uploaded to CPAN

    bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. Tatsuhiko Miyagawa / Plack-0.9000 - search.cpan.org Some yak have been shaved and the last minute bikeshed of renaming things in Plack::Builder was done, and now Plack and PSGI are uploaded to CPAN! Some server backends like AnyEvent, FCGI::EV, Coro, Danga::Socket, ReverseHTTP and ServerSimple are removed from t

  • Intro to PSGI and Plack

    PSGI is a Perl port of Python's WSGI and Ruby's Rack that defines a common interface between web servers and frameworks. Plack provides reference implementations of PSGI servers as well as middleware and utilities. This allows frameworks to run on many servers like standalone, FastCGI, and Apache using a common PSGI application interface. Plack is fast, supports many frameworks through adapters, a

    Intro to PSGI and Plack
  • へぼへぼCTO日記 - Re: PSGI Implのsendfileについて

  • YappoLogs: PSGI Implのsendfileについて

    PSGI Implのsendfileについて PSGIなServerはsendfileを扱う時にどうするかのメモ。 $env->{'psgix.sendfile'}がセットされてれば、そこに書いてあるファイルパスを使う $res->[2]がGLOBだったら fileno($res->[2])して sendfile に fd を渡す $res->[2]->can('fileno') が生えてたら、$res->[2]->filenoからfdを取って使う $res->[2]->can('path') が生えてたら、$res->[2]->pathからファイルパスを取って使う 以上が、基的なsendfileを使を行うときのパターンになる。 また、response headerにX-Sendfileなどの任意のヘッダが入っていて、その中にファイルパスが入っていれば、そのファイルパスを元にしてsend

    nihen
    nihen 2009/10/07
    $env->{psgix.sendfile}はいらないに一票かなぁ。 / 書いたhttp://www.geminium.com/chiba_blog/2009/10/07/327/
  • mod_psgi を実装してみた - spiritlooseのはてなダイアリー

    http://github.com/spiritloose/mod_psgi PSGI を実装したApache2モジュール。 % make && make installでインストールできて、 LoadModule psgi_module modules/mod_psgi.so <Location /psgi> SetHandler psgi PSGIApp /path/to/app.psgi </Location> で動く。 がーっと書いたのでまだまだの部分が多いとはおもうけど、一通り実装できたと思う。 Plack::Test::Suite を使ったテストも書いた。 http://github.com/spiritloose/mod_psgi/blob/master/t/suite.t mod_perlのようにApacheの機能を提供する必要はなく、アプリケーションへはenvを渡せば い

    mod_psgi を実装してみた - spiritlooseのはてなダイアリー
  • PSGI/Plack - Perl Superglue for Web Frameworks and Web Servers

    Superglue interface between perl web application frameworks and web servers, just like Perl is the duct tape of the internet. PSGI is an interface between Perl web applications and web servers, and Plack is a Perl module and toolkit that contains PSGI middleware, helpers and adapters to web servers. PSGI and Plack are inspired by Python's WSGI and Ruby's Rack. Documentation PSGI specification Freq

  • PSGI/Plack勉強会 - Kentaro Kuribayashi's blog

    PSGI/Plack勉強会を開きました(ひとりで)。資料はGitHubにあげてあります。いろいろまとめ書き足りてないのですが、自分的には納得したので満足してしまいました。 http://github.com/kentaro/psgi-study 以下にもコピペ。 PSGI/Plackとは? PSGI = Perl Web Server Gateway Interface Specification WebサーバとWebアプリケーションとの間のインタフェイス仕様 Plack = PSGIのリファレンス実装 PSGI実装のひとつ(とはいえ、やたら気合いの入った感じになってるけど) PSGI != Yet Another WAF PSGI != Plack PSGI策定の背景 各Webアプリケーションフレームワークがバラバラに実装していた、WebサーバとWebアプリケーションとのインタフェイスを

    PSGI/Plack勉強会 - Kentaro Kuribayashi's blog
  • PSGI - Perl WSGI

    bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. Info: if you come from Google and want to know what PSGI and Plack are: take a look at our PSGI/Plack project web page that has links to PSGI spec and FAQ, and then Plack git repo for the actual code. HTTP::Engine is the best thing that happened in the Perl web application development land lately. It's a port of

    nihen
    nihen 2009/09/05
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    nihen
    nihen 2009/09/05
  • 1