タグ

ブックマーク / nitsuji.hatenadiary.org (11)

  • SetHandlerとAddHandler - libnitsuji.so

    CGIが入ってるディレクトリがスラッシュで指定されたときの動作を指定したくてちょっとはまったのでメモ。 スラッシュで終わるURLがリクエストされたときに返すリソースを指定するのにはDirectoryIndexってのを使ってこんな風にする。 DirectoryIndex index.htmlでも、そのディレクトリに対してSetHandlerを使って、たとえばこんな風にすると <Directory "/cgi-bin"> SetHandler cgi-script </Directory >DirectoryIndexの挙動が上書きされて消えてしまいます。ドキュメントにもちゃんと書いてありました。 注意:SetHandler はデフォルトのハンドラをオーバーライド しますので、通常の挙動、たとえば、スラッシュ (/) で終わる URL が リクエストされたときにディレクトリやインデックスファイ

    SetHandlerとAddHandler - libnitsuji.so
  • psの操作に慣れる - nitsujiの日記

    Linuxなどで実行中のプロセスを表示させるコマンドにpsというのがあります。 これまでこのコマンドをかなり適当に使ってきていて、オプションとかよくわかってなかったのでmanをちゃんと読んでいろいろやってみました。 psコマンドはprocpsというパッケージに含まれるコマンドです。 procpsには他にtop, vmstat, w, kill, free, slabtop, skillといったコマンドが含まれているようです。 ここではFedora Core 6で以下のバージョンを使っています。 $ ps --version procps version 3.2.7 オプションの指定方法 オプションの指定方法にいくつかの方法があるので把握しておきます。 UNIX オプション。まとめることが可能で、前にはダッシュを置かなければならない。 BSD オプション。まとめることが可能で、ダッシュを使っ

    psの操作に慣れる - nitsujiの日記
  • setInterval / clearInterval - libnitsuji.so

    setInterval インターバルタイマーを設定する。一定間隔で実行する処理を文字列で指定する。あと実行間隔(単位はミリ秒)も指定する。戻り値としてタイマー変数っていうのが返ってくる。 clearInterval インターバルタイマーを解除する。引数にタイマー変数を指定する。 タイマーを再設定するときは一度解除してから設定しないといけない。 これと似ているのにsetTimeout / clearTimeoutというのがあるけど、こっちはインターバルタイマーじゃなくて単なるタイマーで、処理を一度だけ実行する時に使う。 写真のスライドショーみたいなのを作ってみました。 <html> <head> <title>setInterval</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <scr

    setInterval / clearInterval - libnitsuji.so
  • Catalyst::Manual::Cookbook::Deployment - libnitsuji.so

    Cookbook長いので分割。 デプロイについてのレシピ。Webサーバーエンジンとアプリケーションの効率化も含む。 http://search.cpan.org/~jrockway/Catalyst-Manual-5.700701/lib/Catalyst/Manual/Cookbook.pod#Deployment mod_perl Deployment mod_perlは多くのアプリケーションに対しての最適解だけど利点と欠点を述べる。他の方法としてはFastCGIがある。 Pros Speed mod_perlはとても高速で、それぞれのApacheプロセスのメモリにアプリケーションをロードすることによって恩恵を受けられる。 Shared memory for multiple apps 同じサーバーで複数のCatalystアプリケーションをする必要がある場合、mo_perlは共通のモジ

    Catalyst::Manual::Cookbook::Deployment - libnitsuji.so
  • TheSchwartzを使ってみた - libnitsuji.so

    TheSchwartzについては以下がわかりやすい。 TheSchwartzは非同期かつ分散した環境で各種ジョブを処理させるという枠組みを再実装して利用しやすくしたもので,MySQLSQLiteもサポート)上のデータベースにジョブを格納し,各ワーカープールで処理を行って結果を返す,という単純なフレームワークです。 第11回 OSCON 2007レポート みんなが注目している技術は?:サンフランシスコで昼を|gihyo.jp … 技術評論社 あとは以下のスライドでもっと詳しく知ることができる(71ページから) http://www.danga.com/words/2007_04_linuxfest_nw/linuxfest.pdf gearmanというジョブキューとTheSchwartzとの違いは以下のエントリがわかりやすい。 http://d.hatena.ne.jp/tokuhiro

    TheSchwartzを使ってみた - libnitsuji.so
  • perltidyがらみでvimのコマンドとか調べました - libnitsuji.so

    http://subtech.g.hatena.ne.jp/sekimura/20060507/p1 でvimで保存するときにperltidyを実行する方法を教えていただいたのでやってみた。 というかあまりに初心者なのでまずコマンドの意味がわからなかったので調べるところから。 au BufWritePost *.pl :%! perltidyauはautocmdの略でBufWritePostはバッファをファイルに書き込んだ後で*.plは拡張子がplのファイルで:以降がコマンドで%で全行が対象(特定行なら1,27とか)で!以降がシェルのコマンドでperltidyを実行。 たしかにうざいかも。保存しただけなのに勝手に変わっちゃうのって想像以上に変な感じだ。 map ,ptv <Esc>:'<,'>! perltidy<CR>mapはキーを割り当てる役割でここでは,ptvに割り当てでノーマルモー

    perltidyがらみでvimのコマンドとか調べました - libnitsuji.so
  • perltidyを使ってみました - libnitsuji.so

    perltidyってのは整形ツールです。インデントとか改行とかカッコの位置とかを調整してくれる。 コードが変にならないのかすごく不安なんだけど。とりあえず使ってみる。常用するかどうかはわかんないけど。 インストールはこうする。 $ sudo apt-get install perltidy設定は.perltidyrcをホームディレクトリに置けばそれが使われる(設定ファイル置き場は他にもあるよう)。設定内容はとりあえずPerl Best Practices: Standards and Styles for Developing Maintainable Codeに載ってるやつを使ってみた。 -l=78 # Max line width is 78 cols -i=4 # Indent level is 4 cols -ci=4 # Continuation indent is 4 cols

    perltidyを使ってみました - libnitsuji.so
  • DBIx::Classでスレーブに接続する - libnitsuji.so

    レプリケーション環境で、更新系クエリはマスター、参照系クエリはスレーブに振り分けるというのはよくあることだと思います。 PerlのO/RマッパーであるDBIx::ClassにはDBIx::Class::Storage::DBI::Replicationというのがあって、これを使うと利用側で接続先を意識することなくクエリを振り分けることができそうです。しかし、どうやら参照系は必ずスレーブへ振り分けてしまうようなので、トランザクションの中ではマスターを参照したいといった場合に対応できないんじゃないかと思いました。 そこで、明示的にスレーブの接続を取得する方法がないかなーと思ったんですが見当たらなかったので書いてみました。 実装するにあたり以下のClass::DBI用に書かれたコードを参考にしてみました。 http://d.hatena.ne.jp/tokuhirom/20060713/1152

    DBIx::Classでスレーブに接続する - libnitsuji.so
  • Catalyst::Manual::ActionsとCatalyst::Action系のモジュールの個人的な要約 - libnitsuji.so

    Catalyst::Manual::Actions - Catalyst Reusable Actions - metacpan.org DESCRIPTION 再利用可能なアクションについて。どう動くか。既存のアクションとあなたが書くアクションについて。アクションはメソッドの属性でメソッドコールの前後に機能する。共通に使用するアクションを記述する。 USING ACTIONS 簡単。よく使ってるディスパッチ用のアクション(LocalとかPrivateとか)と同じ感じだ。 sub Hello :Local :ActionClass('SayBefore') { $c->res->output( 'Hello '.$c->stash->{what} ); }この例ではHelloを実行する前にSayBeforeていうアクションを実行する。次のセクションで実装方法を示す。Catalyst::Ac

    Catalyst::Manual::ActionsとCatalyst::Action系のモジュールの個人的な要約 - libnitsuji.so
  • Shipwrightを学んだのでまとめとか - libnitsuji.so

    ShipwrightはPerlのモジュールです。CPANで公開されています。 Shipwright - Best Practical Builder - metacpan.org Shipwrightはアプリケーションのためのパッケージングツールです。依存しているソフトウェアおよびバージョンをリポジトリで管理します。たいていのPerlで書かれたアプリケーションはCPANモジュールに依存しているので、何らかの方法でそれをインストールする必要があります。思いつく方法としては以下のような方法があります。 CPANコマンドで地道にインストール アプリケーションのMakefile.PLでModule::Installを使って依存モジュールを自動インストールする rpmなどで自力でパッケージングする(やりかたしらないけど) 専用のPerlパッケージ(perl体含んだ)を作成する この中でお手軽なのは

    Shipwrightを学んだのでまとめとか - libnitsuji.so
    kamipo
    kamipo 2008/04/08
  • 問題はCatalyst::Plugin::FormValidator::Simple::AutoのYAMLのprofileのフォーマットにあるのではないか - libnitsuji.so

    Catalyst::Plugin::FormValidator::Simple::AutoでマルチカラムのUNIQUEチェックをする場合 - libnitsuji.soの続き。 いろいろ考えてるうちに問題はYAMLの書き方じゃなくてほかのところにある気がしてきました。 つまりハッシュをキーにするという考えがまずおかしいのではないかと。 そこでFormValidator::Simpleのprofileについて追ってみました。 Catalyst::Plugin::FormValidator::Simple::AutoのprofileのYAMLは、 # profiles.yml action1: param1: - NOT_BLANK - ASCII - [ 'LENGTH', 4, 10 ] param2: - NOT_BLANK のように、アクションとパラメータ名がハッシュのキーになって、各

    問題はCatalyst::Plugin::FormValidator::Simple::AutoのYAMLのprofileのフォーマットにあるのではないか - libnitsuji.so
  • 1