Having some free time during the Christmas break, I decided to give a shot at a small project that I had in mind for a while, and that was to develop a PSGI-compliant(-ish) web server with support for the SPDY protocol. In case you haven’t heard of it, SPDY is a networking protocol developed at Google with a goal of reducing web page load latency. It is currently used by some of Google services (i
Plack is a superglue for Perl web frameworks that provides a common interface called PSGI (Perl Server Gateway Interface). PSGI allows any web application that returns status, headers, and content to work with any PSGI-compliant web server without needing server-specific code. Plack provides middleware, servers, and tools to develop and run PSGI applications. It allows frameworks like Catalyst, Da
bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. Tatsuhiko Miyagawa / Tatsumaki-0.1000 - search.cpan.org Tatsumaki, my tiny Perl port of Tornado using Plack and AnyEvent originally started as a proof of concept to test and demonstrate PSGI's streaming interface but its chat app using a simple long-poll Comet got a lot of attentions from people: Audrey Tang use
ircで聞いたときはうまく説明できなかった&tokuhiromさん、Yappoさん、kazuhoさんに直接教えてもらったのでまとめとくなり。 Proxyサーバーを作ることになった。 こんな感じのやつ。 で、これの問題として対抗のサーバーの応答速度が遅い場合があってそこにProxyサーバーが引きずられる点がある。つまりクライアントからの毎コネクションが比較的長くなりがちなサーバーをいかに効率よく組むかという課題がある。 最初は勘違いして他のサーバーへの問い合わせの間に他のことをして全体の応答速度を速くする、つまり非同期化によるメリットを模索していたんだけど、1回の応答で他サーバーへの問い合わせがたくさんあるようなクローラーみたいなことをする場合はメリットがあるけど、基本的に1回の応答で他サーバーへの問い合わせは1回だし、コンテンツを持ってくる以外にも処理はあるけど、処理時間の多くはこの1回の
Introducing Web::Simple A first taste of Web::Simple Wed Nov 4 01:15:00 2009 NAME Web::Simple - A quick and easy way to build simple web applications SYNOPSIS #!/usr/bin/perl use Web::Simple 'HelloWorld'; { package HelloWorld; dispatch [ sub (GET) { [ 200, [ 'Content-type', 'text/plain' ], [ 'Hello world!' ] ] }, sub () { [ 405, [ 'Content-type', 'text/plain' ], [ 'Method not allowed' ] ] } ]; } H
さて、前エントリでJSocketというのを作ったと書いたのですが、これは実はjavascriptで動くtwitter streamクライアントを作るならばmultipart/mixedを使うべきというのを読んで、レスポンスがpollではなくてストリーミングできるというのを知って、リクエストもやりたいよというふうに思ったのがきっかけでした。 まず、XHRでできないかを試してみたのですが、xhr.send(data)を一回読んでしまうと少なくともjavascript側ではリクエストは完了したと思ってしまって、再度xhr.send(data)しても反応はありませんでした。 そこでJSocketの登場です。JSocketを使うとhttpリクエストを断続的に送信することができます。やったですね。 で、Plack::Server::Coroを使って試しにリアルタイムチャットを作ってみました。どうぞお試
bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. In the last couple of (or even more :) days Yuval and I have been endlessly discussing what the asynchronous response API would look like in PSGI applications. And that was also becoming one of the most frequently asked questions on my side, since many people from AnyEvent, POE and perlbal (Danga::Socket) land a
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を渡せば い
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 new spec draft is out: prefork getting faster and now we got decent Coro engine I've merged all the feedbacks and things we noticed during the Plack implementations back to the main PSGI spec draft and updated it. It has lots of answers to the common questions and gotchas when writing a new server implementation. It also has a big list of contributors! I updated Plack::Impl::Coro to now use t
bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. Tons of progress just on my flight, or while I'm here. Last night I went to the office where Yappo and tokuhirom work, to hack and brainstorm on Plack :) Specs Now we've got the first spec draft out. It's mostly a clone of Rack specification, and lots of FAQ document inspired by Python's WSGI. It still misses th
bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. tokuhirom and I have been hacking on reference implementations and test suite for implementors. We added Mojo and AnyEvent based implementations to see how the Input and Error stream and response body API work with asynchronous callback based implementations (Note that these .txt files are notes for discussions,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く