Run a website with Perl? - you should learn how to use Plack. Most Perl web frameworks support it and it makes your life a lot easier and a lot more fun
![Plack basics for Perl websites - YAPC::EU 2011](https://cdn-ak-scissors.b.st-hatena.com/image/square/7a91b8d10add52b9621497e65ca0d0059db72303/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fyapceuplack-110816142621-phpapp02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
Plack::Middleware::StackTrace::ParseMessageってのを作ってみた。名前が微妙なので考え直すかも。 テンプレートエンジンが投げる例外がテンプレートファイルを指していることがあります。例えば、Mojo::TemplateとかText::PSTemplateとか、たぶんMasonも。Text::PSTemplateなら下記のようなメッセージでdieします。 Function Product::Lisst is undefined at /home/sugama/my_app/public_html/index.html line 38 StackTrace::ParseMessageを使うと、このような「at … line …」な例外をパースしてDevel::StackTraceの先頭に追加してくれます。すると、Plackのデバッグスクリーンの先頭にテンプ
Plack distribution comes with some readymade PSGI applications in Plack::App namespace. Some of them might be pretty handy, and one example for that would be Plack::App::File and Plack::App::Directory. Plack::App::File is to translate the request path, like /foo/bar.html into the local file, like /path/to/htdocs/foo/bar.html and opens the file handle and passes it back as a PSGI response. So that'
dotCloud でPSGI Hello World 2011年4月30日 16:32 D | ブログ記事のURL | コメント(0) | トラックバック(0) 最近PSGI/Perlをサポートし始めたdotCloudのinvite codeをもらったのでとりあえずHello World的なアプリを作った。 作り方だが、まずdotcloud用のツール類をインストールする必要がある。自分のマシンでpythonを動かした事がなかったのでそこから。まず自分のpythonは homebrew経由で入っているヤツで、全てユーザー権限で入っているのでsudoとか使ってないのに注意。 easy_install dotcloud docloudではまず"deploy"というものを作る。deployは複数の"service"の集合体。"service"はそれぞれが一個のアプリなり、データベースなりを指す(
id:tokuhiromがHTML::Pictogram::MobileJpというモジュールをリリースしていたので、これを使ったPlack::Middlewareを作ってみました。 http://github.com/hirose31/Plack-Middleware-Pictogram-MobileJp 「モバイル用のHTMLのチェックを実機やFireMobileSimulatorでやりたいのだけど、&#xXXXX;で絵文字を指定するとドコモ以外のクライアントで絵文字が表示されないのでチェックにならない」 というような場合に、このMiddlewareを介して表示すれば、クライアントのUser-Agentをみてキャリアに応じた絵文字のコードポイントに変換してコンテンツを返してくれるので便利なんじゃないかと思います。 ごくシンプルですが、こんな感じで使えます。 # psgi use Plac
2010年09月09日17:00 カテゴリLightweight Languages perl - PSGI::OR::CGI released! PSGI::OR::CGIというModule を Release したのでお知らせします。 /lang/perl/PSGI-OR-CGI/trunk - CodeRepos::Share - Trac dankogai's p5-psgi-or-cgi at master - GitHub Dan Kogai / PSGI-OR-CGI - search.cpan.org 追記アリ要は、PSGIとしてもCGIとしても動くアプリを簡単に書けるようにするModuleです。 #!/usr/bin/env perl # printenv.(psgi|cgi) use strict; use warnings; use lib '/Users/danko
Arkの勉強をしようとサンプルいじりながらちょこっとずつ進めていたら、 さっそくエラーが出てしまってどこがおかしいのかわからず挫折しかかってたところに、 さくらレンタルサーバーで動くWebアプリをArkを使って作ってみた - すぎゃーんメモなんていう素敵なエントリーがあがってたのでもうちょい頑張ってみようと勉強してみようと思います。 で、その前に。 psgiファイルを「plackup app.psgi」でなくCGIで動かす方法知らなかったのですけど、 上の記事読んだらさくらのレンタルサーバーでArk+CGIのTwitterアプリを作る練習 - すぎゃーんメモにCGIで動かす方法が書いてあったので僕もさくらで試してみました。 ゴール 環境変数を表示するためのenv.psgiの結果を、CGIで実行しても表示できるようにする まずpsgiの作成 Sunabaにあったhelloworldの中身を少
Twitter経由でPlack::Testを見た。なにこれ。もうCGIいらないじゃん。 PlackやPSGIを知らない人は先に適当なページでも見て頂きたい。そんなんよりPSGIのエントリ書いてほしいって方はコメント残しておいてください。でももう半年も経つからググればいっぱい見つかるんじゃないかな。俺ほとんどPSGIに首突っ込んでないし。 で、Plack::Testの何がどうすごいかというと、次のようにPSGIアプリケーションのテストができる。テストコードは宮川さんのものに、クエリ部分を付け加えたものだ。 use Plack::Test; use Test::More; use HTTP::Request; use strict; use warnings; my $app = sub { my $env = shift; my $query = { map { split(/=/) } s
レスポンスヘッダにExpiresやCache-Controlを追加することで、ブラウザのキャッシュを有効活用し、ダウンロードの時間をなくす事でウェブの高速化を実現できます。またサーバ側にとってもリクエスト数を減らす事ができ、負荷の削減にもなります ApacheにはExpiresやCache-Controlを付加するmod_expiresというモジュールがありますが、Plackにはまだなかったので作ってみました。VarnishのようにWebサーバ機能を持たないリバースプロキシを使う場合には、便利なんじゃないかなぁと思います CPANにリリース済みです http://search.cpan.org/dist/Plack-Middleware-Expires/ 使い方 builder { enable 'Expires', content_type => [ 'text/css', 'appli
本連載では、第一線のPerlハッカーが回替わりで執筆していきます。記念すべき第1回は、WEB+DB PRESS本誌ではVol.2から執筆しており、長らく連載も担当していた宮川達彦さんです。 はじめに PerlでWeb開発をするためのフレームワークは百花繚乱、人気を集めています。本稿では、これらのフレームワークが共通して利用するためのインタフェース仕様であるPSGIと、そのエンジンとしての実装であるPlackを紹介します。 PSGIに至る道 PerlとWebアプリケーション開発の親和性 Perlは「インターネットのグルー(糊:のり)言語」とも言われ、CGIによる開発がメインだった1990年代から、Webアプリケーション開発に最も関わりのあるプログラミング言語の一つと言ってよいでしょう。2000年代に入っても、Ruby on RailsやPHPなどの他言語からの影響も取り入れながら、Web開発
5年ほど前に作ったレガシーな自作フレームワークを、この度PSGI化した際の記録です。単なる記録であって、必ずしも「PSGIへの対応はこうやるといいよ!」いう内容ではありません*1が、興味があればどうぞ。 レガシーオレオレフレームワークの概要 Oreore::Application はCGI::Applicationのように、1リクエストに対して1インスタンスのフレームワークです。各 App.pm に 呼び出し用の hogehoge.pl を1つずつ割り当てて、 Apache::Registryで運用されていました。 package MyApp; use base qw(Oreore::Application); # For index.pl?action=index sub action_index{ my $self = shift; $self->response->content(
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く