nDiki : 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 系は頻度が低いから……。
- Wiki考 (2002-09-20)
- Parse::RecDescent の precompile (2002-11-18)
- [ WiKicker ] touch (2003-05-14)
- [ WiKicker ] If-Modified-Since: 関連作業ほぼ済 (2003-09-19)
- word-break: break-all (2004-01-30)
2003年11月9日 (日)
■ [ WiKicker ] SpeedyCGI 対応するも……

WiKicker の高速化のために SpeedyCGI 対応作業。
等を行う。 手元では動くようになった。
で今度は 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 にバックエンドを再起動させなおさせるため)。
- [ Perl ] Log::Log4perlのはまりどころ (2004-03-02)
- [ WiKicker ] キャッシュまわりにバグ (2004-06-05)
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- サーバ高負荷状態につき DiKicker 機能修正とサーバ設定変更 (2006-03-03)
- [ Perl ] Memcached を使ってみる (2004-01-12)
2004年2月25日 (水)
■ [ 映画鑑賞 ] 20:30 ゼブラーマン

やまだ君と久しぶりに映画を観に川崎へ。 映画は去年の9月に座頭市を観て以来。
JR川崎駅で待ち合わせた後、映画の話などをしつつ夕食。 その後先にチケットを買って(全席指定だと思ってたら自由席だった)、DOS/Vパラダイス、DICE内のさくらやをぷらぷらした後、上映30分ぐらい前に劇場へ。
@ チネチッタ - チネグランデ
座席数は多いのだが、シートは一世代前。 最近のシネコンの高い背もたれのあるシートに馴れるとちと頭が疲れる。 決して悪いグレードではないのだけれどね。
客入りはレイトショーということもあってかなり少なめ。30人ぐらい? J列中央に座ったが前方には誰もいなかった。
@ ゼブラーマン
映画の方は中盤まではテンポが良く楽しめた。
後半だんだん真面目な展開になってくるのだが若干中途半端な感がある。 70年代特撮物のテイストでいきたいのか、それとも現代的なイメージでいきたいのが読み切れない。 中途半端にCGI(エンドロールを見て気になったのだがCG ではなくて CGIなんだな。Computer Generated Image)を多く使わないで、より特撮っぽい方が個人的にはよかったのになと思う。
コメントとして書くと辛口になってしまうが、男性諸氏はそれなりに楽しめる映画だと思う。女性の人にとってはあんまりかも。
教頭はムーが好き。
@ 渡部篤郎
やっぱ格好いい。
@ 他
今年は「××実写化」が多いなか、キューティーハニーの予告が流れていた。 この予告だと全然観る気しない。 やっぱり注目は「キャシャーン」、「サンダーバード」あたりかな。
ゼブラーマン プレミアムBOX - 白黒つけるぜ!! 浅野さん!!
- [ 映画鑑賞 ] M:i:III (2006-07-17)
- [ 映画鑑賞 ] 恋愛適齢期 - Something's Gotta Gi... (2004-03-23)
- [ 映画鑑賞 ] APPLESEED アップルシード (2004-05-16)
- [ 映画鑑賞 ] 太陽 (2006-09-15)
- [ 映画鑑賞 ] コンスタンティン (2005-05-03)
2004年5月15日 (土)
■ [ WiKicker ] CGI.pm の依存度減らし

CGI::Link や start_html の呼び出しをやめて自前で処理したり。
CGI.pm では徹底的といえるほど AUTOLOAD を使うようになっていて、サブルーチンを最初に呼び出したときに _compile 中で eval により定義するようになっている。
使わないサブルーチンの構文解析等に時間がかからないというメリットがあるかわりに、_compile はそれなりに時間もかかるので自前でやれる部分は自分でやった方がちょっと速くなる。
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
- [ WiKicker ] tDiaryテーマ互換モードの実装 (2003-12-29)
- FreeBSD と Apache::Htpasswd (2006-03-02)
- [ WiKicker ] SpeedyCGI 対応するも…… (2003-11-09)
- ノート PC で Apache Virtual Host (2004-12-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
- FreeBSD と Apache::Htpasswd (2006-03-02)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- Perl の constant プラグマで1度に複数の定数を定義できるのは... (2007-03-08)
2004年9月14日 (火)
■ XMLRPC::Lite + 自前の HTTP::Daemon サーバ

既に HTTP::Daemon で作成されているHTTPサーバで、XML-RPC インタフェースを提供したい。 前回のチェックで XMLRPC::Lite を使う事にした(RPC::XML は ActivePerl 5.6.1 build638 でテストが通らない)。 このパッケージで用意されているサーバ向けモジュールは、主に単独CGI プログラムで使うモジュールと、自前で HTTP::Daemon をまわすサーバタイプ。
そのままでは使えないので、以下のように。
- XMLRPC::Transport::HTTP::CGI のサブクラスを作成し、handle をオーバライドする。中身は SOAP::Transport::HTTP::Server::handle を呼ぶだけ (SUPER::handle では駄目)。
- XML-RPC リクエストがきたら、上記インスタンスの request メソッドで HTTP::Request オブジェクトを渡す。
- handle を実行。
- response メソッドで HTTP::Response を受け取り、クライアントに送信。
handle メソッドで入出力をさせないようにするのがポイント。
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
- www.naney.org に「友人・知人に紹介メール」ページを新設 (2000-12-27)
- HTTP::Daemonベースのプログラムのテスト (2004-11-26)
- RPC::XML のかわりに XMLRPC::Lite (2004-08-31)
- ソフトウェアかんばん「見えない化」 (2006-04-10)
2004年12月15日 (水)
■ ノート PC で Apache Virtual Host

メインノート PC で動かしている Apache のバーチャルホスト設定を整理。 以前から WiKicker その他 CGI アプリケーションのテスト用にいくつかバーチャルホストを設定して利用していたのだが、ごちゃごちゃしてきた。
パーソナル用、仕事パーソナル用、各プロジェクト用を新設。 デフォルトと含めて5つのバーチャルホストを設定。 今まで設定していなかったアクセス制限(ローカルホストからかか認証ユーザからのアクセスのみ許可)もきちんとかけておく。 デフォルト以外のバーチャルホストには簡単にメモがおけるように、wiki をセットアップ。
パーソナル用には Another HTML-lint gateway や dwww などもセットアップ。 今後Webベースのツールはここにおいて利用するかな。
基本的に DHCP で割りあてた IP アドレスを点々とすPCホストなので、今のところ hosts に明示的にバーチャルホスト名を書かないと(それとユーザ・パスワードの設定をしないと)外部から利用できない。 基本的には自分専用なので問題ないのだけれど、ダイナミックDNSとかそのあたりの実験はこんどしてみたいところ。
- Tor で hidden service (2005-02-13)
- FreeBSD と Apache::Htpasswd (2006-03-02)
- DHCP で IP アドレスを割り当てられているノート PC に Wind... (2006-03-08)
- ケータイ用にプライベート Wiki を設置 (2008-01-07)
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
2005年1月18日 (火)
■ ホームネットワークカメラ BL-C10 買っちゃった

結局買っちゃった。 無駄遣いかなぁと思いつつ、どうせ最後には買っちゃう自分が目に見えていたので。
家に帰ってからちょっといじる。 最近周辺機器を買った時のパターンと同じく、(主にLinuxで使用・管理するので)付属のCD-ROM を Windows 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つをライブカメラ用にして一旦これを呼び出してから、撮影するようにするとする。
[ 製品レポート ]
- ネットワークカメラが欲しい (2005-01-15)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- Flickr::UploadでLinuxから画像アップロード (2005-04-22)
- フォト イメージング エキスポ 2005 (2005-03-18)
- 128MB xDピクチャーカードのために我慢我慢 (2005-04-03)
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 というものもある。 これらを用いるとさらにテストを書くのが楽になるが、依存するモジュールも多いので無理に使わないほうがいいかもしれない。
- 他の Web サイトの情報を URI::Fetch でキャッシュ付き取得 (2005-10-29)
- Test::WWW::Mechanize で Web アプリケーションをテ... (2006-09-13)
- 一般ユーザで Apache 2.0 を起動する最小限の httpd.conf (2006-07-15)
- XAMPP で WiKicker を動かしてみた。PPM インストール OK。 (2007-02-09)
- [ WiKicker ] SpeedyCGI (2003-10-17)
2006年3月2日 (木)
■ FreeBSD と Apache::Htpasswd

WiKicker の認証ドライバの1つとして、まずは Apache の htpasswd パスワードファイル(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 ベースのパスワードの読み書きは問題ないので、この環境ではこちらを使うことにしよう。
- ノート PC で Apache Virtual Host (2004-12-15)
- [ WiKicker ] 「最近のアクセスログ」処理思案 (2004-01-17)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- Apache での PostgreSQL を使った認証 (1999-12-18)
- [ WiKicker ] SunOS 5.6 にインストール (2003-04-23)
Related web page
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
いや直して 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 - 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
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
これらのミニチュア化されたムービーがどのようにできているのか、 その裏側を簡単にまとめた Making Of ムービーです。 Miniature Town とは、上の3つのミニチュア化したムービーをまとめた作品です。 この作品は、3月3日に SIGGRAPH Tokyo 主催で行われた CG Gong 2006 にて上映を行いました。 この Making of はその時に上映したものに若干手を加えたものです。 注:このムービーは音がhttp://www.synthereal.com/jp/miniaturize.html
半年くらい前から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
を見ることができます。ただしバージョンはちょっと前のもので、<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
というか、Fast<strong>CGI</strong>化したのだからmt-xmlrpc.f<strong>cgi</strong>です...http://kokogiko.net/m/archives/001346.html
巷で超高速 Web サーバとして話題になっている lighttpd を試してみました。lighttpd に関する日本語ドキュメントは非常に少なく、ちょっと込み入った設定ファイルの記述方法とかの解析に手間取りました。 lighttpd のコンセプトは、「セキュアで省メモリで高速に動作し、柔軟性もある」なのですが、「lighttpd 公式サイトのベンチマーク結果」や「UnknownPlace. - Catalyst ベンチ」で簡単なhttp://www.drk7.jp/MT/archives/000917.html
1 unless( defined( $q->param( $vparm ) )){ 2 # Display initial voting stuff here 3 # select a candidate 4 $ballotBox->printForm( $q ); 5 } else { 6 # if vote is tallied, do _not_ mail a ballot 7 if( $castBallot->voteIsTallied( $q ) ){ 8 print "Your vote has already been recorded" 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->exactMatch( $q ) ){ 15 # cast ballot 16 print $q-&gthttp://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)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 方法 設定 サンプル ダウンロード セール 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 最新 MP3 動画 Torrent 解説 意味 用語集 参考文献 お薦め お勧め おすすめ 便利 Blog ブログ mixi 待受画面 修理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)




スポンサード リンク