タグ

ブックマーク / ziguzagu.org (19)

  • Data::ObjectDriver 0.10

    Data::ObjectDriver 0.10 をリリースした。 SIXAPART/Data-ObjectDriver-0.10 テストとドキュメントの修正だけのバージョンだけど 0.09 から 4 年弱を経ての復活。 大人の事情で宙ぶらりんになっていた PAUSE の SIXAPART アカウントを復活しつつ、前メンテナの Yann から Github 上のリポジトリを transfer してもらい再び Six Apart としてメンテナンスすることに。 sixapart/data-objectdriver Pull Request もながらく放置されてしまっているけどなるだけ近いうちに対応する方向で。Movable Type をはじめその他のサービスでも使っているので、今後はそれなりにメンテナンスされていくことになるはず。 ご利用中の皆様におかれましては引き続きよろしくお願い致します。

    kazeburo
    kazeburo 2015/01/15
  • 続:Proclet で起動しているアプリをファイル変更検知して再起動

    前の記事をつぶやいたら、@kazeburo さんから、 @ziguzagu App::watcherで、watcher --dir . --signal HUP -- proclet だとどうかな — masahiro nagano (@kazeburo) June 24, 2013 というのを教えてもらった! 前の記事でははしょったけど、redis、nginx なんかもうごいててまぁ再起動しても一瞬なんだけど、もったいない感があったので、 @ziguzagu plackupは-r、workerはwatcher使うとか細かく設定すると良いかもね。ちょっと面倒だけど — masahiro nagano (@kazeburo) June 24, 2013 の通り、gearman worker は App::watcher で変更検知、plackup は -r とか -R で、というふうにしてみ

    続:Proclet で起動しているアプリをファイル変更検知して再起動
    kazeburo
    kazeburo 2013/06/25
  • Perlbal::Plugin::ServerStarter

    Perlbal で Server::Starter(start_server command) によるホットデプロイをサポートするためのプラグイン、Perlbal::Plugin::ServerStarter というのを作った(作っている)。 https://github.com/ziguzagu/Perlbal-Plugin-ServerStarter Perlbal の素敵な点の一つに、動的に設定変更できる(管理ポートに telnet, nc などでつないでコマンド送り込む)というのがあるけど、たぶんほとんどのプラグインでは設定の削除ができない。たとえば Vhosts プラグイン。 VHOST app.example.com = app VHOST admin.example.com = admin ## これがいらなくなっても動的に削除するコマンドはない VHOST www.exam

    Perlbal::Plugin::ServerStarter
  • Perlbal::Plugin::Expires

    Perlbal の web server に Apache の mod_expires と同じ代替期間指定構文ってやつで Expires を指定できるプラグイン、Perlball::Plugin::Expires というのを書いた。 https://github.com/ziguzagu/Perlbal-Plugin-Expires 使い方はこんなん。 LOAD Expires CREATE SERVICE web SET role = web_server SET listen = 127.0.0.1:8000 SET docroot = /path/to/docs SET plugins = Expires Expires default = access plus 1 day 12 hours Expires image/gif = access plus 10 years ENAB

    Perlbal::Plugin::Expires
    kazeburo
    kazeburo 2011/06/26
    Plack::Middlewareと処理を共通化できるといいのかな
  • Plack::Middleware::Watermark - ziguzagu.org

    HTML や XML なんかのケツにコメントとしてテキストを埋め込む Plack::Middleware を作ってみた。 http://github.com/ziguzagu/Plack-Middleware-Watermark やってることといえば、content type を見て適当なコメントシンタックスを選んで、指定された文字列を追加するだけのお仕事。 use Plack::Builder; my $app = sub { [ 200, [ 'Content-Type' => 'text/html' ], [ "Hello World\n" ] ] }; builder { enable 'Watermark', comment => 'HELLO HELLO!!'; $app; } こうすると、 Hello World <!-- HELLO HELLO!! --> こういう出力にな

  • おまえのログ: WEB+DB PRESS Vol.52

  • YAPC::Asia 2009 特別研修 - Moose 入門

    先週末の YAPC::Asia 2009 のカンファレンスに引き続き、特別研修『Moose入門、モダーンなオブジェクト指向システム』に参加してきた。 研修の内容は、Moose とはなんぞやから始まり、以下(だいたい)7 部構成の入門講座。 Moose Concepts : コンセプト ざっと機能一通りみてみる なぜ Moose なのか Classes : Class の基礎から使い方 Moose::Object が何持ってるかとか BUIDLARGS, extends, override, super の使い方 Moose 使ったあとの後始末 (no Moose;) Role : Role の基礎から使いかた Role の持つ意味 使い方 alias で衝突回避 Basic Attributes : Attribute いろいろ required, default/builder, laz

  • DDLockd 使ってみた

    複数サーバーで同時実行される可能性のあるスクリプトの排他制御を実装するのに、DDLockd をつかってはどうかというアイデアをいただいたので、DDLockd について調べてみた(なんかロックするやつ、ぐらいのことしかしらなかった)。 DDLockd とは Danga Distributed Lock Daemon の略で、まさに今回やろうとしていた複数サーバーで実行されるアプリの排他制御を行うための仕組み、みたいなのを提供してくれる daemon。Perl で書かれている。Danga の名前が指し示すとおり LiveJournal で使われている(た?)。TypePad でもほんのりつかっていたり。 コードはこのあたりにおちていた。 http://code.sixapart.com/svn/ddlockd/ http://code.livejournal.org/svn/ddlockd/

    DDLockd 使ってみた
    kazeburo
    kazeburo 2009/05/20
    KeyedMutexはどうだろう
  • HTML::Split

    HTML を指定の文字数で分割するための HTMLS::Split なるモジュールを CPAN に up しましたので、さっくり使い方なんかをつらつら。 なにするモジュール? 最初に書いたとおり、HTML を指定の文字数で分割するためのモジュールです。 携帯端末などで HTMLタグを含むテキストデータが 10KB 未満など、きびしい制限があるデバイス向けに HTML を出力する際には、PC ブラウザで見せている長文をそのまま出力するわけにはいきません(容量オーバーってことできれてしまう)。 そこで、HTML を分割する必要があるのですが、ただ、単純に HTML を分割といっても、 タグの途中できれたらどうしようもない A タグのテキストノードなんかが分割されるのはあんまりうれしくない。分割してもいいけど、次のページはどうやってはじめるのさ( なしに突然 がやってくる)? CSS を当てたい

  • Perlbal で SSL を使う

    自さばで使ってる Perlbal で SSL を使えるようにしたいと思います。 必要なもの Perlbal はすでにインストールされているので、SSL 関連のものをインストール。

    kazeburo
    kazeburo 2007/05/30
  • Perlbal の設定

    SVNリポジトリのある自宅サーバーで、Perlbal お試し中です。 設定に関するドキュメントがなかなかみつからないなぁ、とか思ってたらCPANモジュール配布物の conf ディレクトリにサンプル、doc ディレクトリにドキュメントいくつか発見。特に doc/service-parameters.txt 重要。 リバースプロキシ(role=reverse_proxy)と Web サーバー(role=web_server)、2つのサービスを作って virtual host でサービスのマッピングをするサービス(role=selector)の作成、という設定まで出来た(理解した)。 LOAD vhosts SERVER max_connections = 10000 CREATE POOL apache POOL apache ADD 127.0.0.1:8080 CREATE SERVICE

  • 退職しました

    日、6月30日付けで現在の会社を退社することになりました(というのをこんな時間に会社で書いているのはどうなんだろう…)。 4年半前には入社したときは、『Telnetって何?』、『FTPってどこのプロレス団体?』と聞いていたようなレベルでしたが、それなりにがんばって今ではいろいろ任される立場となりました。すこしだけ自分をほめたいと思います。 よーやった。 でも、まだまだです。全然足りません、いろんなものが…。 今後はよりいっそう技術と人間を磨きながら、いけてるものづくりができるよういろいろチャレンジしていきたいと思います。

    kazeburo
    kazeburo 2006/07/02
  • はじめてのTest::Simple

    テストが届いたのでテストをしてみるテスト。勉強日記の公開テストもかねて。 Perl Testing: A Developer's Notebook (Developers Notebook) Test::Simpleはじめの一歩 #!/usr/bin/perl use strict; use warnings; use Test::Simple tests => 1; sub hello_world { return "Hello, world!"; } ok(hello_world() eq "Hello, world!");

  • Devel::Symdump

    Devel::Symdumpをさわってみました。シンボルテーブルをいろいろな方法でダンプしてくれるモジュールです。 #!/usr/bin/perl package MyDB; use strict; use warnings; use base qw/Class::DBI/; use Class::DBI::Loader; my $loader = Class::DBI::Loader->new( dsn => "dbi:mysql:test", user => "test", password => "", options => { RaiseError => 1 }, namespace => "Data", left_base_classes => qw/Class::DBI::Sweet/, ); require Devel::Symdump; my $obj = Devel::S

  • 退社したいプログラマのジレンマ

    退社しようと思ってたところに組織変更でおとずれてしまったジレンマのお話。 自分が「退社したい」と思うに至った5つの理由。 前向きな理由 webアプリ開発をおなかいっぱいやりたいから。 ↑について激しく技術レベルをあげたい、勉強したいから。 後ろ向きな理由 今の会社には「前向きな理由」のほうを実践できる環境がないから。 周りのプログラマが勉強しない、時間軸のずれた人たくさん。なので楽しくない。 自己評価にくらべて会社の評価がなんか高い。一歩外にでれば僕なんて屁みたいなレベル。 なので退社したい。もっと技術レベルの高い会社でレベルの高い人達と働きたい。 と思ってたところに、つい先日大幅な事業部内の組織再編があって(こんな時期に…)Webサイト開発がメインの事業部に配属になった。仕事的にはやりたいと思ってたこと。 そこで訪れたジレンマ…。 新組織での自分の立場としては準リーダーみたいなところで、

    kazeburo
    kazeburo 2005/12/21
  • Perl Best Practices

    アルファなPerlハカーの皆さん大絶賛の、すべてのPerlプログラマ読むべし、なです。 Perlでのプログラム記法ガイドラインとして、なぜそう記述するべきか、ということがしっかり丁寧に書かれています。ほぼすべての記法について明確な意思・意味のある解説があるため、あまり納得のいかないものがあったとしても、それも一理ある、と受け止めることができると思います。はい。たぶん、このに書かれているような内容を理解しているといないとでは、言語学習のスピードがずいぶん違うだろうし、実際のプログラムにも、見た目、質、両方に大きな差が出るように思います。 Perl Best Practices: Standards and Styles for Developing Maintainable Code

  • CGI::Application::Dispatchまとめ : おまえのログ

    ここ1ヶ月ほど(ながいなぁ…)、ちまちまと勉強してきたCGI::Application::Dispatchについて、使い方もこなれて来たので、ここいらでひとまとめです。 何するモジュール? この勉強中エントリーの1回目でも書きましたが、CGI::Applicationを利用したアプリで必要になるインスタンスCGIは作らずに、URI(PATH_INFO)から実行するモジュールとRunモードを決定する、というモジュールです。newしてrunするだけのインスタンスCGIなんか毎回書きたくないよ、というのがモジュール作者さんの意図のようです(PODにもあります)。 URIはこうなる CGI::Application::Dispatchを使った場合のURIは、 となります。 CGI::Applicationを継承したMyApp::Indexというモジュールを作った場合、それを実行するためのURIを比

    kazeburo
    kazeburo 2005/09/23
    dispatchまとめ
  • MultiViewsMatchでハンドラをMultiViews検索に追加

    前回のエントリーで海賊たろさんに教えてもらった、ApacheのMultiViewsで拡張子なしのURIを作る方法を試してみました。ただ、すんなりは行かなかったのでメモを。 最初は、ただ単純に.htaccessにOptionsでMutliViewsを追加しただけで試してみました。 これだけだと、.htmlなファイルは拡張子なしのURIでアクセスできるのですが、.cgiなファイルはNotFoundになってしまいました。なぜ…。あれやこれやと設定を勘でいじってみましたが、さっぱりわけがわからないので、もう一度腰をすえてじっくりApacheのコンテントネゴシエーションとmod_mimeのマニュアルに目を通しました。そしてようやく答え発見。 MultiViewsで検索されるファイルタイプは、MultiViewsMatchディレクティブで指定されているファイルタイプから検索される、というものでした。

  • CGI::Application::Dispatch勉強中その2

    周辺のちょっとしたものも含めてだいたい把握した気がするCGI::Application::Dispatch。便利です、すごく、とても。 ただ、今までCGI::Applicationを使う時はPATH_INFOを使わず、テンプレートファイルはインスタンスCGIと同じパスにおいてたので、テンプレートファイルをどこかひとつのディレクトリ以下にまとめる(CGI::Application::tmpl_path())、というのに全然まだ慣れません。 インスタンスCGIとテンプレートファイルを同じディレクトリにおくと、「URIの階層=ファイルのありか」になるので、HTML内のリンクを相対パスで書くのも気になりませんでした。 でも、CGI::Application::Dispatchを使う場合は、PATH_INFO形式を利用することが前提なうえ、URIが全部、 http://example.com/dis

    kazeburo
    kazeburo 2005/09/07
    リダイレクトしちゃいます。迷わないように
  • 1