トップ(最新) | <前

nDiki : CGI

CGI - Common Gateway Interface

CGIとはHTTPサーバなどの情報サーバから外部ゲートウェイプログラムへのインタフェースの標準のこと。

CGIに準拠しているプログラムをCGI プログラムと呼ぶ。

スポンサード リンク

CGI - Computer Generated Image

Computer Generated Image の略。

Related term

2002年10月21日 (月)

NaneyOrgWiki 改良 このエントリーを含むはてなブックマーク

WikiEngine開発にははいったけれども、稼働するのはずっと後になりそうなので、今使用している engine もまだまだ手を入れて遊びます。

@ DanglingLink の強調

WikiName と違って[[, ]]で区切るページ名は DanglingLink の時に「どこまでが名前かわからない」かなと思い、 CSS で破線をつけるようしてみる。

@ shared lock の導入

今までは CGI スクリプトの最初で必ず exclusive lock をかけるというバカ lock だった。 これだと WantedPages のような時間のかかる処理のあるページにアクセスがあると、他のページの read が軒並み sleep させられてしまう。

なので、書き込みのないアクセス時には shared lock で flock するように修正。 これで read vs read でのアクセスが待たされたくなったはず。 それでも時間のかかる shared lock なアクセスがあると write 系のアクセスはやっぱりしばらく待たされてしまうのだけれど、write 系は頻度が低いから……。

スポンサード リンク


[ 10月21日全て ]

2003年11月9日 (日)

[ WiKicker ] SpeedyCGI 対応するも…… このエントリーを含むはてなブックマーク

WiKicker の高速化のために SpeedyCGI 対応作業。

  • Singleton パターンの除去
  • リクエスト処理後にデータベースunlock処理を必ず実施するようにする
  • DATAハンドルの読み込みを最初にキャッシュ

等を行う。 手元では動くようになった。

で今度は www.naney.org 上でテストしてみたのだが、無念 SpeedyCGI 自体がうまく動かない (FreeBSD 4.4-RELEASE + perl 5.005_03)。 CGI で呼び出すと

 failed to open log file
 fopen: Permission denied

エラー。make test でもこけているテストがあったし(t/sh_bang、t/timeout)このサーバじゃ動かんのかな?

@ と思ったら動いた

CGI スクリプトの先頭に

 #!/home/.../bin/speedy -w -- -M30 -t300 -r30 -p/home/.../bin/speedy_backend

のように記述していたのだが path部分が長かったため sh-bang の限界を越えてしまっていたようだ。-p オプションで指定している speedy_backend のパスの方はデフォルトが Makefile.PL 実行時に適切に設定されているはずだから、実際には省略可。

ということで、

 #!/home/.../bin/speedy -w -- -M30 -t300 -r30

としてみたら動いた。 よっしゃ。 これでリクエスト毎のプログラムのローディングの必要がなくなるので、レスポンスの遅さが改善されるはず。 パラメータは

  • -M30 (MaxBackends: これ以上だとサーバによろしくない?)
  • -t300 (Timeout: デフォルトの 3600=1時間だと長いかな。不要なプロセスは早めに止めておきたい)
  • -r30 (MaxRuns: まだバグメモリリーク等があるかもしれないので30回呼ばれたらバックエンドを re-exec するように)

としておく。様子をみて微調整。 これからは、WiKicker を更新したら Wiki CGI スクリプトを touch する事を忘れないようにしなくては(SpeedyCGI にバックエンドを再起動させなおさせるため)。


[ 11月9日全て ]

2004年2月25日 (水)

[ 映画鑑賞 ] 20:30 ゼブラーマン このエントリーを含むはてなブックマーク

やまだ君と久しぶりに映画を観に川崎へ。 映画は去年の9月に座頭市を観て以来。

JR川崎駅で待ち合わせた後、映画の話などをしつつ夕食。 その後先にチケットを買って(全席指定だと思ってたら自由席だった)、DOS/Vパラダイス、DICE内のさくらやをぷらぷらした後、上映30分ぐらい前に劇場へ。

@ チネチッタ - チネグランデ

座席数は多いのだが、シートは一世代前。 最近のシネコンの高い背もたれのあるシートに馴れるとちと頭が疲れる。 決して悪いグレードではないのだけれどね。

客入りはレイトショーということもあってかなり少なめ。30人ぐらい? J列中央に座ったが前方には誰もいなかった。

@ ゼブラーマン

私とゼブラーマン

映画の方は中盤まではテンポが良く楽しめた。

後半だんだん真面目な展開になってくるのだが若干中途半端な感がある。 70年代特撮物のテイストでいきたいのか、それとも現代的なイメージでいきたいのが読み切れない。 中途半端にCGI(エンドロールを見て気になったのだがCG ではなくて CGIなんだな。Computer Generated Image)を多く使わないで、より特撮っぽい方が個人的にはよかったのになと思う。

コメントとして書くと辛口になってしまうが、男性諸氏はそれなりに楽しめる映画だと思う。女性の人にとってはあんまりかも。

教頭はムーが好き。

@ 渡部篤郎

やっぱ格好いい。

@ 他

今年は「××実写化」が多いなか、キューティーハニーの予告が流れていた。 この予告だと全然観る気しない。 やっぱり注目は「キャシャーン」、「サンダーバード」あたりかな。


image:ASIN:B000228XH8

ゼブラーマン プレミアムBOX - 白黒つけるぜ!! 浅野さん!!


[ 2月25日全て ]

2004年5月15日 (土)

[ WiKicker ] CGI.pm の依存度減らし このエントリーを含むはてなブックマーク

CGI::Link や start_html の呼び出しをやめて自前で処理したり。

CGI.pm では徹底的といえるほど AUTOLOAD を使うようになっていて、サブルーチンを最初に呼び出したときに _compile 中で eval により定義するようになっている。

使わないサブルーチンの構文解析等に時間がかからないというメリットがあるかわりに、_compile はそれなりに時間もかかるので自前でやれる部分は自分でやった方がちょっと速くなる。


[ 5月15日全て ]

2004年8月19日 (木)

Module::CoreList このエントリーを含むはてなブックマーク

Perl に標準バンドルされているモジュールが、どのバージョンで提供されるようになったかの情報をチェックすることのできるモジュール。

corelist というユーティリティが付属している。

@ チェックできるPerlバージョンの一覧

 corelist -v

 Modue::CoreList has info on the following perl versions:
 5.00307
 5.004
 5.00405
 5.005
 5.00503
 5.00504
 5.006
 5.006001
 5.006002
 5.007003
 5.008
 5.008001
 5.008002
 5.008003
 5.008004
 5.008005
 5.009
 5.009001

@ 各Perlにバンドルされている CGI モジュールのバージョン

 corelist -a CGI

 CGI  was first released with perl 5.004
   5.004      2.36
   5.00405    2.42
   5.005      2.42
   5.00503    2.46
   5.00504    2.46
   5.006      2.56
   5.006001   2.752
   5.006002   2.752
   5.007003   2.80
   5.008      2.81
   5.008001   3.00
   5.008002   3.00
   5.008003   3.01
   5.008004   3.04
   5.008005   3.05
   5.009      3.00
   5.009001   3.04

@ Perl 5.005_03 にバンドルされているモジュール

 perl -MModule::CoreList \
   -e 'print join("\n", map { "$_ $Module::CoreList::version{5.00503}{$_}" } sort keys %{$Module::CoreList::version{5.00503}})'

 AnyDBM_File
 AutoLoader
 AutoSplit 1.0303
 B
 B::Asmdata
 B::Assembler
 B::Bblock
 B::Bytecode
 B::C
 B::CC
 B::Debug
 B::Deparse 0.56
 B::Disassembler
 B::Lint
 B::Showlex
 B::Stackobj
 B::Terse
 B::Xref
 Benchmark
 CGI 2.46
 CGI::Apache 1.1
 CGI::Carp 1.13
 CGI::Cookie 1.06
 CGI::Fast 1.01
 CGI::Push 1.01
 CGI::Switch 0.06
 CPAN 1.48
 CPAN::FirstTime 1.36
 CPAN::Nox 1.00
 Carp
 Class::Struct
 Config
 Cwd 2.01
 DB_File 1.65
 Data::Dumper 2.101
 Devel::SelfStubber 1.01
 DirHandle
 Dumpvalue
 DynaLoader 1.03
 English
 Env
 Exporter
 ExtUtils::Command 1.01
 ExtUtils::Embed 1.2505
 ExtUtils::Install 1.28
 ExtUtils::Installed 0.02
 ExtUtils::Liblist 1.25
 ExtUtils::MM_OS2
 ExtUtils::MM_Unix 1.12602
 ExtUtils::MM_VMS
 ExtUtils::MM_Win32
 ExtUtils::MakeMaker 5.4302
 ExtUtils::Manifest 1.33
 ExtUtils::Mkbootstrap 1.14
 ExtUtils::Mksymlists 1.17
 ExtUtils::Packlist 0.03
 ExtUtils::XSSymSet 1.0
 ExtUtils::testlib 1.11
 Fatal 1.02
 Fcntl 1.03
 File::Basename 2.6
 File::CheckTree
 File::Compare 1.1001
 File::Copy 2.02
 File::DosGlob
 File::Find
 File::Path 1.0401
 File::Spec 0.6
 File::Spec::Mac 1.0
 File::Spec::OS2
 File::Spec::Unix
 File::Spec::VMS
 File::Spec::Win32
 File::stat
 FileCache
 FileHandle 2.00
 FindBin 1.42
 GDBM_File 1.00
 Getopt::Long 2.19
 Getopt::Std 1.01
 I18N::Collate
 IO
 IO::File 1.06021
 IO::Handle 1.1505
 IO::Pipe 1.0902
 IO::Seekable 1.06
 IO::Select 1.10
 IO::Socket 1.1603
 IPC::Msg 1.00
 IPC::Open2 1.01
 IPC::Open3 1.0103
 IPC::Semaphore 1.00
 IPC::SysV 1.03
 Math::BigFloat
 Math::BigInt
 Math::Complex 1.26
 Math::Trig 1
 NDBM_File 1.01
 Net::Ping 2.02
 Net::hostent
 Net::netent
 Net::protoent
 Net::servent
 O
 ODBM_File 1.00
 OS2::ExtAttr 0.01
 OS2::PrfDB 0.02
 OS2::Process 0.2
 OS2::REXX
 Opcode 1.04
 POSIX 1.02
 Pod::Functions
 Pod::Html 1.01
 Pod::Text 1.0203
 SDBM_File 1.00
 Safe 2.06
 Search::Dict
 SelectSaver
 SelfLoader 1.08
 Shell
 Socket 1.7
 Symbol 1.02
 Sys::Hostname
 Sys::Syslog
 Term::Cap
 Term::Complete
 Term::ReadLine
 Test 1.122
 Test::Harness 1.1602
 Text::Abbrev
 Text::ParseWords 3.1
 Text::Soundex
 Text::Tabs 96.121201
 Text::Wrap 98.112902
 Thread 1.0
 Thread::Queue
 Thread::Semaphore
 Thread::Signal
 Thread::Specific
 Tie::Array 1.00
 Tie::Handle
 Tie::Hash
 Tie::RefHash
 Tie::Scalar
 Tie::SubstrHash
 Time::Local
 Time::gmtime 1.01
 Time::localtime 1.01
 Time::tm
 UNIVERSAL
 User::grent
 User::pwent
 VMS::DCLsym 1.01
 VMS::Filespec
 VMS::Stdio 2.1
 attrs 1.0
 autouse 1.01
 base
 blib 1.00
 constant 1.00
 diagnostics
 fields 0.02
 integer
 less
 lib
 locale
 ops
 overload
 re 0.02
 sigtrap 1.02
 strict 1.01
 subs
 vars
 vmsish

[ 8月19日全て ]

2004年9月14日 (火)

XMLRPC::Lite + 自前の HTTP::Daemon サーバ このエントリーを含むはてなブックマーク

既に HTTP::Daemon で作成されているHTTPサーバで、XML-RPC インタフェースを提供したい。 前回のチェックで XMLRPC::Lite を使う事にした(RPC::XMLActivePerl 5.6.1 build638 でテストが通らない)。 このパッケージで用意されているサーバ向けモジュールは、主に単独CGI プログラムで使うモジュールと、自前で HTTP::Daemon をまわすサーバタイプ。

そのままでは使えないので、以下のように。

  1. XMLRPC::Transport::HTTP::CGI のサブクラスを作成し、handle をオーバライドする。中身は SOAP::Transport::HTTP::Server::handle を呼ぶだけ (SUPER::handle では駄目)。
  2. XML-RPC リクエストがきたら、上記インスタンスの request メソッドで HTTP::Request オブジェクトを渡す。
  3. handle を実行。
  4. response メソッドで HTTP::Response を受け取り、クライアントに送信。

handle メソッドで入出力をさせないようにするのがポイント


[ 9月14日全て ]

2004年12月15日 (水)

ノート PCApache Virtual Host このエントリーを含むはてなブックマーク

メインノート PC で動かしている Apache のバーチャルホスト設定を整理。 以前から WiKicker その他 CGI アプリケーションのテスト用にいくつかバーチャルホストを設定して利用していたのだが、ごちゃごちゃしてきた。

パーソナル用、仕事パーソナル用、各プロジェクト用を新設。 デフォルトと含めて5つのバーチャルホストを設定。 今まで設定していなかったアクセス制限(ローカルホストからかか認証ユーザからのアクセスのみ許可)もきちんとかけておく。 デフォルト以外のバーチャルホストには簡単にメモがおけるように、wiki をセットアップ。

パーソナル用には Another HTML-lint gateway や dwww などもセットアップ。 今後Webベースのツールはここにおいて利用するかな。

基本的に DHCP で割りあてた IP アドレスを点々とすPCホストなので、今のところ hosts に明示的にバーチャルホスト名を書かないと(それとユーザ・パスワードの設定をしないと)外部から利用できない。 基本的には自分専用なので問題ないのだけれど、ダイナミックDNSとかそのあたりの実験はこんどしてみたいところ。


[ 12月15日全て ]

2005年1月18日 (火)

ホームネットワークカメラ BL-C10 買っちゃった このエントリーを含むはてなブックマーク

rimage:http://www.naney.org/img/2005/U/U2005-01-18-0002.jpg

結局買っちゃった。 無駄遣いかなぁと思いつつ、どうせ最後には買っちゃう自分が目に見えていたので。

家に帰ってからちょっといじる。 最近周辺機器を買った時のパターンと同じく、(主にLinuxで使用・管理するので)付属のCD-ROMWindows BOX にインストールする事なくセットアップする方向で。

@ 接続

カメラ本体にLANケーブル、AC アダプタを接続。 製品出荷時はネットワークは自動設定になっている。

ここで通常「添付CD-ROMに入っている Windows 用のソフトを起動してMACアドレス一覧からカメラを選んで設定へ」という流れになる。

…… nmap でスキャン。192.168.x.253 に発見。 Firefox で接続できた。

後は基本的に Web ブラウザから設定できるので、説明書通り作業できる。

@ 設定

動画を見ることができたのを確認してから、ちょこちょこ設定をいじる。 ファームウェアバージョンアップを押したら、ファームウェアイメージをアップロードする画面に。 取消を押しても取り消せない……。 再起動しても、またこの画面だし。

あげときますか。 Panasonic のサイトから最新のファームウェアイメージをとってきて、BL-C10アップロードし更新。

これで通常の作業ができるようになった。 びっくりしたなぁ。

@ パン/チルト

じゅうたんの上においていじっていたのだが、下の方ばかり映っている。 あれ? 上方向には+10度しか動かないのか……。 誤算。 構造上の制約なのか、太陽・天井光源をうつさないようにする配慮なのか。悪用防止のためなのか?

設定の際には高めの位置にするか、少し角度をもたせて置いた方が良さそうだ。

@ 静止画の取得など

BL-C10 自体にFTPクライアント機能やメールクライアント機能があってサーバへのアップロードが可能だが、画像加工を一旦してからサーバに上げるなど柔軟にやりたいのでPCで静止画を取得したい。

Panasonic のネットワークカメラは「ネットワークカメラCGI利用説明書*1」が公開されている。上位機種向けの仕様書だが、基本はBL-C10でも同じと思われる(ズームなど無い機能をのぞいて)。 実際、対応するURLにリクエストすることで静止画の取得やカメラの制御などを行えた。

ということで 10分おきの www.naney.org へのアップロードは、BL-C10 から Wget して使う事に。 こちらは定点撮影にしたいので、BL-C10で設定できるプリセットの1つをライブカメラ用にして一旦これを呼び出してから、撮影するようにするとする。


[ 製品レポート ]

*1CGIというのは誤用だと思うが


[ 1月18日全て ]

2006年2月18日 (土)

Perl CGI プログラムのテストには WWW::Mechanize::CGI このエントリーを含むはてなブックマーク

CGI プログラムを書いていて、いつも困るのがリグレッションテスト

パッケージのビルド時に実行するテストスーツ (make check / make test 用テストプログラム群) に含めておきたいが、さすがにその場で Web サーバの下へセットアップするわけにもいかない。 ミニ Web サーバを同梱してテストスーツ内で起動する方法はちょっとおおがかかりだし、ポート番号の選択やらサーバの停止の問題もあって、かなり面倒。

結局、テストスーツの中で環境変数や標準入力など CGI リクエスト環境をセットアップして、CGI プログラムを実行するという王道(?)かつ泥臭いテストを書くことになったりする。

何かいいものはないかと探していたところ、WWW::Mechanize::CGI というものをみつけた。

LWP::UserAgent を継承した WWW::Mechanize モジュールは Web ブラウジングを容易にする有名どころのモジュールである。

WWW::Mechanize::CGI モジュールはさらにこれを拡張したモジュールで、HTTP リクエストを、仮想的に CGI プログラムやサブルーチンへの呼出しにしてくれる。 これを用いるとあたかも Web サーバ上の CGI プログラムにリクエストしレスポンスを受けとっているかのように、テストプログラムを書くことができる。

素晴しい。

さっそく WiKicker のテストを書き換えてみた:

 use Test::More tests => 2;
 use WiKicker::WikICGI::Controller;
 use WWW::Mechanize::CGI;
 use File::Temp qw(tempdir);
 use File::Spec;
 my $www_dir = tempdir(CLEANUP => 1);
 my $mech = WWW::Mechanize::CGI->new;
 $mech->cgi(sub {
              $ENV{PATH_INFO} = '' if $ENV{PATH_INFO} eq '/';
              WiKicker::WikiCGI::Controller->new->run});
 $mech->env($mech->env,
            SCRIPT_FILENAME => File::Spec
                                 ->catfile($www_dir . '/wiki'),
            SCRIPT_NAME => '/wiki');
 my $response = $mech->get('http://localhost/wiki');
 ok($response->is_success);
 like($response->content,
      qr|<title>WikiForum\[WiKicker\]: FrontPage</title>|);

WWW::Mechanize::CGI オブジェクトを new した後、cgi メソッドで CGI サブルーチンを指定するか、cgi_application メソッドで外部 CGI プログラムを指定する。 ここでは直接、CGI サブルーチン (WiKicker::WikiCGI::Controller->new->run を実行)を指定した。

なおここで WWW::Mechanize::CGI が使っている HTTP::Request::AsCGI 0.5 における PATH_INFO の扱いが Apache などとは違って、空でも必ず '/' が入るようになっている。 これだと WiKicker では困るので、サブルーチンのところで修正している。

後は必要ならば WWW::Mechanize::CGI::env で、追加の環境変数設定を行っておく。

セットアップが済めば通常の WWW::Mechanize と同様に get 等でリクエストを行いレスポンスを受けとることができるようになる。

いい。しばらく試してみて不具合がなさそうなら、定番のテストスタイルにしたい。

ちなみに Test::Harness 用の Test::WWW::Mechanize にあわせて、Test::WWW::Mechanize::CGI というものもある。 これらを用いるとさらにテストを書くのが楽になるが、依存するモジュールも多いので無理に使わないほうがいいかもしれない。


[ 2月18日全て ]

2006年3月2日 (木)

FreeBSDApache::Htpasswd このエントリーを含むはてなブックマーク

WiKicker認証ドライバの1つとして、まずは Apachehtpasswd パスワードファイル(AuthUserFile ディレクティブ用パスワードファイル)形式のものを作成することにする。 これなら htpasswd で作成することができるので、最悪最初の段階では WiKicker に登録・削除機能を入れないで済む。

Perl からこのパスワードファイルを扱うモジュールとしては Apache::Htpasswd や、Authen::Htpasswd がある。 CPAN にある CGI-Application-Plugin-Authentication は前者を、Catalyst-Plugin-Authentication-Store-Htpasswd では後者を使用している。

機能的にはほぼ同じか。 Authen::Htpasswd の方がユーザ名に対応するオブジェクトを取得するメソッドがあり便利といえば便利だが、まあなくても困らないだろう。

ということで今回は、依存モジュールの少ない Apache::Htpasswd を選択した。 Perl 5.005_03 にはない warnings プラグマが使われているが、Htpasswd.pm の

 use warnings;

1行を削除すれば問題無し。

FreeBSD 4.4-RELEASE #3 + Perl 5.005_03 + Apache-Htpasswd 1.7 だと、crypt 関連のテストケースが失敗する(not ok 17)のがちょっと気になるところ。 MD5 ベースのパスワードの読み書きは問題ないので、この環境ではこちらを使うことにしよう。


[ 3月2日全て ]

Related web page

[ぴ] - PATH_INFO に [ 等のメタ文字が含まれていると CGI::path_info がこける
PATH_INFO に [ 等のメタ文字が含まれていると <strong>CGI</strong>::path_info がこけるPATH_INFO でパラメータを渡している <strong>CGI</strong> スクリプトに Shift_JIS で「納」(2バイト目が [ ) とかを渡すとこけるのでなんですかねと調べていったら、どうも <strong>CGI</strong>.pm のバグらしいことがわかった。 テストコード #!/usr/bin/perl use <strong>CGI</strong>; use <strong>CGI</strong>::Carp qw(fatalsToBrowser); print <strong>CGI</strong>::header(); print <strong>CGI</strong>::path_info(); を設置し、〜/test.<strong>cgi</strong>/%5B にアクセスし
http://pmakino.jp/tdiary/20070702.html#p01
daily dayflower - speedycgi with Perl 5.8.6 のメモリリークをなおした
いや直して RT に投げたのはだいぶ昔なんですが,以前の日記で でも <strong>CGI</strong>::Speedy<strong>CGI</strong> は Perl 5.8.6 以降ではメモリリークする(RT#13521)罠。がーん。 daily dayflower - mod_speedy<strong>cgi</strong>2 on Apache 2.2 と書いてほおりっぱなしだったんでネガティブイメージが定着するとまずいかなと思い,一応アピール。上記のRT#13521にパッチを投げてあります。その他いろいろ RT に投げてるんで,手前みそながら <strong>CGI</strong>:
http://d.hatena.ne.jp/dayflower/20070216/1171620558
daily dayflower - SpeedyCGI のプロセスの癖
以前作ったモジュール(daily dayflower - Speedy<strong>CGI</strong> と module reload)でたまにモジュールファイルの変更を検知できないことがあったんですが,理由がわかりました。 Speedy<strong>CGI</strong> の挙動をおさらいすると, frontend が backend を探す。いればよし backend がいない場合 backend(0) を生成 backend(0) がスクリプトをコンパイル backend(0) が fork して backend(1) を生成 frontend が backend(1) と通信 backend(1) が実行フ
http://d.hatena.ne.jp/dayflower/20061227/1167212645
daily dayflower - mod_speedycgi2 on Apache 2.2
Speedy<strong>CGI</strong> を使ってみようと思って cpan install <strong>CGI</strong>::Speedy<strong>CGI</strong> したら,怒られました。のであれこれ調べてなんとか動くパッチを作ってみました。 原因は Apache 2.2 (APR-1.2) になって, APR_BRIGADE_FOREACH() というマクロが deprecated になった(参考) apr_filename_of_pathname という関数が apr_filepath_name_get になった(CHANGES-APR-1.2) という非互換性があるためでした。 でも <strong>CGI</strong>::Speedy<strong>CGI</strong> は Perl 5.8.6 以降で
http://d.hatena.ne.jp/dayflower/20061205/1165309213
synthereal.com -VFX/CGI Studio- ミニチュライズ:実写のミニチュア化
これらのミニチュア化されたムービーがどのようにできているのか、 その裏側を簡単にまとめた Making Of ムービーです。 Miniature Town とは、上の3つのミニチュア化したムービーをまとめた作品です。 この作品は、3月3日に SIGGRAPH Tokyo 主催で行われた CG Gong 2006 にて上映を行いました。 この Making of はその時に上映したものに若干手を加えたものです。 注:このムービーは音が
http://www.synthereal.com/jp/miniaturize.html
SVN::Web on FastCGI - Ogawa::Memoranda
半年くらい前からMovable TypeのPluginなどのsubversionリポジトリーを公開していたのだが、どうにも具合が良くなく、試行錯誤が続いていた。 Ogawa::Memoranda: SVN::Web導入 最初PerlベースのSVN::Webを<strong>CGI</strong>経由で動かしていたのだが、猛烈にパフォーマンスが悪く、私の借りているサーバーだと数秒待たされたりしていた。代わりにmod_perl環境にdeployしたりもしてみたのだが、Apache 1.3との組み合わ
http://as-is.net/blog/archives/001049.html
Perlモジュール/CGI::Application - Walrus,Digit.
を見ることができます。ただしバージョンはちょっと前のもので、<strong>cgi</strong>app_*メソッドやプラグイン機構などはなかった頃のものです。 Tips リンク 編集 出力時の文字コード自動変換・ヘッダ自動設定 リンク 編集 <strong>CGI</strong>::Application 3.31版では<strong>cgi</strong>_prerun、<strong>cgi</strong>_postrunなど、様々なタイミングで共通処理を組み込める仕組みがあります。 これを利用して、スクリプト中では(あまり)文字コードを意
http://digit.que.ne.jp/work/index.cgi?Perl%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%2FCGI%3A%3AApplication
ここギコ!: FastCGI化したmt-xmlrpc.cgiのテスト投稿
というか、Fast<strong>CGI</strong>化したのだからmt-xmlrpc.f<strong>cgi</strong>です...
http://kokogiko.net/m/archives/001346.html
lighttpd FastCGI は mod_perl Apache1.3 より1割ほど高速 :: Drk7jp
巷で超高速 Web サーバとして話題になっている lighttpd を試してみました。lighttpd に関する日本語ドキュメントは非常に少なく、ちょっと込み入った設定ファイルの記述方法とかの解析に手間取りました。 lighttpd のコンセプトは、「セキュアで省メモリで高速に動作し、柔軟性もある」なのですが、「lighttpd 公式サイトのベンチマーク結果」や「UnknownPlace. - Catalyst ベンチ」で簡単な
http://www.drk7.jp/MT/archives/000917.html
IBM Perl/CGI投票システムを作る - Japan
1 unless( defined( $q-&gt;param( $vparm ) )){ 2 # Display initial voting stuff here 3 # select a candidate 4 $ballotBox-&gt;printForm( $q ); 5 } else { 6 # if vote is tallied, do _not_ mail a ballot 7 if( $castBallot-&gt;voteIsTallied( $q ) ){ 8 print &quot;Your vote has already been recorded&quot; 9 } else { 10 # 11 # vote not tallied yet, check if we have a draft ballot on file 12 # and move the draftBallot into the castBallot object 13 # 14 if( $draftBallot-&gt;exactMatch( $q ) ){ 15 # cast ballot 16 print $q-&amp;gt
http://www-6.ibm.com/jp/developerworks/linux/050624/j_l-perlvote.html

■よく検索されるキーワード

torrent(142) expressions(72) 書き方(46) 竹内まりや(46) perl(42) 提案書(38) linux(38) windows(36) アジェンダ(34) x31(32) cvs(28) wiki(27) usb(26) ドラマ(22) 使い方(20) svn(20) アジェンダとは(20) centos(20) ganttproject(20) 設定(19) java(19) インストール(18) 秋葉原(18) debian(18) thinkpad(18) サンプル(18) 動画(17) ノート(15) 手帳(13) a6(13) truecrypt(13) tc-1(13) tortoisesvn(13) 無印(12) ssh(12) rcs(12) subversion(12) 冷蔵庫(12) nikon(12) allinanchor:*.torrent(12) firefox(11) ガントチャート(11) 画像(11) 日本語(11) 生年月日(11) apache(11) メール(11) ダイソー(10) 無料(10) 壁紙(10) リフィル(10) ubuntu(10) 作り方(10) dropbox(10) c#(9) xp(9) oracle(9) xampp(9) terastation(8) 方眼(8) マイク(8) ヨドバシカメラ(8) テンプレート(8) ほぼ日(8) cwrsync(8) google(8) ming(8) 評判(8) 影舞(8) madwifi(8) アカウント(8) window(8) usbメモリ(8) gantt(8) project(7) 三条まゆみ(7) hdd(7) 変換(7) カバー(7) 交換(7)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 2.41498s / load averages: 1.30, 1.20, 1.05
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)