タグ

plackに関するikasam_aのブックマーク (29)

  • PSGI アプリを supervisord + Server::Starter で動作させる - Hatak::Techlog

    PSGI で動作する Perl の Web アプリをデプロイする環境をどのように作ろうかと思って試してみたので、その手順をまとめてみます。 記事を書きかけて放置してしまっていたので、diff が古かったりするのはご愛敬で。。 構成の概要 今回構築しようと思う構成は次の通りです。 PSGI を用いた簡単な Web アプリ アプリを動作させる Perl とそのモジュール群は perlbrew + Carton で管理 複数のシステムを同一サーバで動かす可能性もあるため分離しておきたい Carton 使ってみたい アプリケーションサーバには Server::Starter + Starman を利用 Hotdeploy できるようにするため Server::Starter のプロセスは Supervisord で管理 supervisord の導入 スーパーサーバーSupervisorの導入手順

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 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 =

  • Plack Handbook: Plack and PSGI Development guide ebook

    Plack Handbook for Developers This little handbook is based on the content of the website Plack Advent Calendar. The calendar had 24 useful short posts explaining the concept of PSGI and tutorials how to adapt Plack to the existing web applications. The calendar was so successful and it's been considered a canonical reference for many beginners trying to learn Plack and also web framework authors

  • HTTPコンテンツ圧縮とPlack - blog.nomadscafe.jp

    「HTTPコンテンツ圧縮はどのレイヤーで行うのがいいか」で書いたりしましたが、高トラフィック環境では、サーバ間の通信量も問題となるため、ApplicationサーバでもHTTP圧縮をかけたほう良さげです。Plackには既にPlack::Middleware::DeflaterというApacheのmod_deflate相当のMiddlewareがあるのですが、ちょいちょい弄っていたりするのでその紹介。 その前に、HTTPコンテンツ圧縮のおさらいです。HTTP圧縮はリクエストのAccept-Encodingにgzipやdeflateがあった場合に、コンテンツをgzip、deflateなどで圧縮し、レスポンスのContent-Encodingヘッダに圧縮に用いた方式を表記することで実現されます。さらに、クライアントサーバ間にキャッシュサーバが存在した場合に、Accept-Encodingを送って

  • Plack::App::DAV 書いてみる。

    iOSアプリにデータを渡すときにDAVサーバーを使うことが多いけど、Macには標準でDAVサーバーがついてな(いよね?)くて不便なことが多かったので、Plackでさくっと立ち上がるDAVサーバーがあればいいなぁ、と思ってました。 そんなおり、Net::DAV::Serverの新バージョンがリリースされているのを発見して、これは!と思って作ってみました。 https://github.com/lopnor/Plack-App-DAV 使い方は これでカレントディレクトリが5000番ポートで解放されます。 読み出しはできてます 何も考えてないので、でかいファイルとか多分しんどいと思います ファイル名が文字化けしているのを見かけました。Net::DAV::Server側にフィードバックしたいです。 書き込みができてません。Net::DAV::LockManagerの使い方のあたりかな?と思ってい

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Plack::Test で HTTP クライアントのテストを書く方法 - Craftworks Tech Blog - Branch

    先日、WWW::Curl をラッピングした HTTP クライアントなモジュールを書いたのですが、テスト用に HTTP サーバーを用意しないといけないと思いつつ、他の HTTP クライアントがどのようにテストをしているか調べてみたところ、WWW::Curl は、 my $url = $ENV{CURL_TEST_URL} || "http://www.google.com"; などとしていて、LWP は Net::HTTPServer を使っているようでした。 ネットワークが繋がっていないとテストが出来ないのもなんですし、Net::HTTPServer 使ってサーバー書くのも面倒臭そうなので、来の用途とは違いますが、シンプルに書けそうな Plack::Test で書いてみることにしました。 use strict; use warnings; use Test::More; use Plac

    Plack::Test で HTTP クライアントのテストを書く方法 - Craftworks Tech Blog - Branch
  • Plack::Builderのenable_ifよりも簡単に、指定した条件下でmiddlewareを有効にするモジュール - blog.nomadscafe.jp

    CloudForecastや先日のNoPasteではPlack::Builderを使って、デフォルトの機能としてPlack::Middleware::ReverseProxyを有効にしている。 my @frontproxy = map { s/\s//g } split(/,/, $ENV{FRONT_PROXY} || ""); foreach my $ip ( @frontproxy ) { my $netip = Net::IP->new($ip) or die; push @frontproxies, $netip; } buider { enable_if { my $addr = $_[0]->{REMOTE_ADDR}; my $netip; if ( defined $addr && ($netip = Net::IP->new($addr)) ) { for my $pr

  • 第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (3) | gihyo.jp

    PSGIミドルウェアを利用する PSGIミドルウェアはアプリケーションと同様にコードリファレンスとして実装されますが、いちいち.psgiファイルに記述するのはあまり効率が良くありませんし、再利用性もありません。そこでPlackにはミドルウェアをモジュールとして利用するためのベースクラスPlack::Middlewareや、それを利用して実装された各種ミドルウェアが同梱されています[2]⁠。 ここでは、これらのミドルウェアを利用して先ほどのTatsumakiアプリケーションを拡張してみましょう。 Auth::Basic PSGIアプリケーションに簡単なHTTP認証機能を付けるミドルウェアがAuth::Basicです。容易に拡張できるコールバックインタフェースを持っているため、データベースやLDAP(Lightweight Directory Access Protocol)などとの連携もでき

    第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (3) | gihyo.jp
  • Sunaba - Perl web apps in the cloud

    bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. It is a great pleasure that my 4 hour hack last night lets me now introduce: Sunaba the perl sandbox environment to run any PSGI/Plack applications. Since we started the Plack project, it has always been my hope that someday we can port this PSGI interface on the "Cloud" infrastructure like Google AppEngine or H

  • Plack::Loader::RestarterとPlack::Loader::Shotgun - すぎゃーんメモ

    よく知らないまま、はじめてplackupを使ってみていたのだけど、ちょっと困っていたので何気なく呟いてみたら… sugyan plackup -R が若干負荷が高くて膝の上にMacBook載せて作業するには熱くなりすぎる…! 2010/04/03(土) 15:38:34 miyagawa @sugyan try plackup -L Shotgun instead 2010/04/03(土) 15:41:13 miyagawa @sugyan or install Mac::FSEvents 2010/04/03(土) 15:44:43 sugyan @miyagawa ありがとうございます! さっそくいれてみます 2010/04/03(土) 15:48:00 sugyan そっか、Filesys::Notify::Simpleってのが中でMac::FSEvents(もしくはLinux::

  • 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

  • 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;

  • ゆーすけべー日記

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

    ゆーすけべー日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Request! What kind of Request?

    bulknews.typepad.com Tatsuhiko Miyagawa's blog to discuss mostly tech and nerdy stuff. So, Plack::Request is probably the most useful class/utility in the Plack/PSGI ecosystem but at the same time confuses people to think that Plack is more of a framework or a library for end users rather than for an application framework developer. xSGI/Rack Request classes Rack has Rack::Request which is a base

    ikasam_a
    ikasam_a 2009/12/21
    "How to convert your Catalyst applications to Plack" using Plack::Request, which totally doesn't make sense.
  • 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

  • Day 13: use Plack::Test to test your application

    Testing There are many ways to test web applications, either with a live server or using a mock request technique. Some web application frameworks allow you to write an unit test using one of those methods, but the way you write tests differ per framework of your choice. Plack::Test gives you an unified interface to test any web applications and frameworks that is compatible to PSGI using both moc

  • おさかなラボ - Plack::Testが凄い!

    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