![http://dl.dropboxusercontent.com/u/224433/plackcon/index.html](https://cdn-ak-scissors.b.st-hatena.com/image/square/458d2d7694149bdbe3a49301ca701fd5b38dc6f3/height=288;version=1;width=512/http%3A%2F%2Fdl.dropboxusercontent.com%2Fu%2F224433%2Fplackcon%2Fimages%2Fisucon-net-sc.png)
これが価値を発揮するような出題ではなかったので結局つかいませんでしたが。あとでCPANizeはするつもりです。 てきとうなところで ^C でとめると結果を自動的に集計してreportをつくるところまでやってくれます。あくまでも開発用で、本番用ではありません。 なおこれを使う場合、アプリ側で DB::enable_profile() / DB::disable_profile() を行う必要があります。tokuhiromのエントリも参照のこと。 #!/usr/bin/env perl # usage: plackup-nytprof --port 1982 app.psgi use 5.10.0; use strict; use warnings; use Cwd qw(getcwd); use File::Path qw(rmtree); sub run { my(@args) = @_;
参考文献: 「Webサーバ不要、40行程度のスクリプトひとつで動かせる Gyazoサーバー(クローン)を書いた - 今日もスミマセン。」 こちらはRubyで書いてあるので昨日の Smiley Hackathon#7 にて、 Perl/Plack で実装したらどうなるかをやってみた。 dbm に入れる件を除いているのでより簡易な方法だけど 27 行くらいで書けて、 plackup コマンドでそのまま運用できるのでなかなかお手軽でいい感じです。 Plack::App::File で 画像のサーブが簡単にできるのが便利ですね。 .psgi のコード貼付けておきますので参考にしてみてください。 Plack はこのように「自分専用のお手軽 gyazo サーバが欲しい」といった個人の簡単なユースにあっていると思いましたね。 use Plack::App::File; use Plack::Builde
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
割と良く見る間違いです builder { enable "ServerStatus::Lite", path => '/server-status', allow => [ '127.0.0.1', '192.168.9.0/24'], scoreboard => ..; enable 'ReverseProxy'; $app; }; これは間違いです。リバースプロキシ配下にてアプリケーションサーバを起動すると、/server-statusに対して全世界からアクセス可能になります Plack::Middleware::ReverseProxyがX-Forwarded-Forヘッダをみて、REMOTE_ADDRを書き換える前、上の図の状態でPlack::Middleware::ServerStatus::Liteが実行されてしまうので、/server-statusへのアクセスが許可されてし
Reverse Proxyの後ろでApplication Serverを動かす際に、REMOTE_HOSTを本当のアクセス元に書き換えてくれる仕組みはいくつかありますが^1、Plackでは壇上氏の Plack::Middleware::ReverseProxy がそれにあたります。 ^1 例えば mod_extract_forwarded http://www.openinfo.co.uk/apache/ PM::ReverseProxy のSYNOPSISでもそうなってますが、このような仕組みを使う場合、REMOTE_HOSTを指定するのが安全です。 builder { enable_if { $_[0]->{REMOTE\_ADDR} eq '127.0.0.1' } "Plack::Middleware::ReverseProxy"; $app; }; 拙作の Plack::Buil
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
「君のPSGIファイルを僕のミドルウェアでいっぱいにしたい」という台詞を思いついたけど、埋めれるほどPlack::Middlewareを書いてないkazeburo です。 そんな僕が一番最近書いた Plack::Middleware がYet Anotherなアクセスログ記録ミドルウェア AxsLog です。某二人組は今年でデビュー20周年らしいですが、あんまり関係ありません。 https://metacpan.org/module/Plack::Middleware::AxsLog Plackのコアパッケージの中に Plack::Middleware::AccessLog が含まれてますが、以前からこのミドルウェアが比較的「重い」ということが気になっていました。マイクロベンチマークですが、 $ cat test.psgi sub { [200,['Content-Type'=>'text
Plack Handbookは、CGI以降の最近のPerlを使ったウェブサイトを作る上でベースとなるPSGIという仕様の実装であるPlackのまとまった(電子)書籍です。待ちに待ってましたという感じだったんですが、でやっと入手して読んだ感想とかをメモります。 といいつつPlackって何?詳しく教えて? 上述した通りなものがPlackなのですが、FTPでアップしてふんふんふん、という事をしている人にとって、いまいちピンとこないのがPlackだと思います。昔は、FTPを使って.cgiファイルみたいなのをアップしてちょっとした動的な動きをするページを作るには、PerlだとCGI.pmというCPANモジュールに準拠しながらいろいろと作っていたのです。ただ、ApacheのCGIという技術の上だと、何分毎回プログラムファイルの読み込みをとかを行うので遅かったりしたのです。そこで、FastCGIとかmo
後編を書く前に、YAPC::Asia2011が終わってしまったので、変な勘違いをされるかとやめようかと思ったのですが。。。とりあえず、YAPC::Asia2010の復習として、Plack時代のPerlによるサーバ運用では、わりと一般的なリバースプロクシによる運用を、このブログの実例で報告します。 前置き:plackupはわかったけど、実際どうするの? 「Perlは遅い」の原点だったApacheのcgi時代は終わりを告げ、Apacheに依存したmod_perl時代も終りを告げました。Plackを使えば、CGIだろうとmode_perlだろうとPerlのスタンドアローンサーバーであろうと、かなり汎用的に動かせる時代です。mod_perlとかFastCGI前から使っていれば、あるいは、「Rubyではふんふん、Pythonではふんふん」とか語れれば、いろいろな歴史をしっているからすぐ実践しやすいと
この時期、Perlを学び始める方も多いと思います。そこでプログラミング初心者がPerlを学ぶのに適した本を、私が実際に読んだことのあるものの中から選んでみました。 1冊目 1冊目はなんでもいいと思うのでとりあえず定番としてリャマ本を挙げておきます。 初めてのPerl 第5版 作者: Randal L. Schwartz,Tom Phoenix,brian d foy,近藤嘉雪出版社/メーカー: オライリージャパン発売日: 2009/10/26メディア: 大型本購入: 22人 クリック: 293回この商品を含むブログ (41件) を見るこれで基本的なPerlの文法が学べるはずです。この手の入門書は「課題」がつきものですが、すべて解く必要はないと思います。幾つか気になるもの・面白そうなものだけ試してみればいいでしょう。 1冊目読了の辞典では、以下のプログラムの簡易バージョン*1を実装できるよう
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"はそれぞれが一個のアプリなり、データベースなりを指す(
TwitBlogin! http://twitblogin.com/ とか作ったことだし、そこそこ開発環境整って、今なら思いつく限りのサービスはさっくり実装できそうだったのでPython初心者向けに書いておく。 少しでもPythonユーザが増えれば幸い。 対象は Python の基本的な構文程度はわかるけど、具体的に何から手をつけていいかわからない人 目次 Apache/WSGI/MongoDBの環境構築 flask [ Sinatra風ウェブアプリケーションフレームワーク] pymongo [ MongoDBラッパー ] werkzeug [Web Application デバッガ] jinja2 [ HTMLテンプレートビルダー ] pyquery [ jQuery風HTMLパーサ ] nose [ TDD ] 細かいライブラリの使い方とかPython本体の言語仕様とかは適当にぐぐって
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
本連載では、第一線のPerlハッカーが回替わりで執筆していきます。記念すべき第1回は、WEB+DB PRESS本誌ではVol.2から執筆しており、長らく連載も担当していた宮川達彦さんです。 はじめに PerlでWeb開発をするためのフレームワークは百花繚乱、人気を集めています。本稿では、これらのフレームワークが共通して利用するためのインタフェース仕様であるPSGIと、そのエンジンとしての実装であるPlackを紹介します。 PSGIに至る道 PerlとWebアプリケーション開発の親和性 Perlは「インターネットのグルー(糊:のり)言語」とも言われ、CGIによる開発がメインだった1990年代から、Webアプリケーション開発に最も関わりのあるプログラミング言語の一つと言ってよいでしょう。2000年代に入っても、Ruby on RailsやPHPなどの他言語からの影響も取り入れながら、Web開発
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く