Googleを支える技術
Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)
- 作者: 西田圭介
- 出版社/メーカー: 技術評論社
- 発売日: 2008/03/28
- メディア: 単行本(ソフトカバー)
- 購入: 47人 クリック: 1,166回
- この商品を含むブログ (374件) を見る
現在読書中。
今週中には読み終わるかな?
googleの技術の概要がうまくまとまっています。
特に印象に残ったのは分散コンピューティングの箇所。
おそらくこれからの技術のトレンドは「セキュリティ」「分散/並列コンピューティング」「ラピッドデベロッピング」でしょうか。
ラピッドデベロッピングに関しては「ruby on rails」とか。
で「分散コンピューティング」なのですが、この本で書かれていた技術MapReduceのオープンソース版Hadoop(http://hadoop.apache.org/)に興味をもったので、これから勉強していきたいと思います。
■
時間の計算をするSQL文をDBI(DBD::Pg)を使って実行しようとしたときにエラーになってハマりました。
my $v_time = "'2008-04-14 16:00:00'"; my $v_interval = "'-2 day'"; my $query = "SELECT TIMESTAMP ? + ?"; my $db_retref = $dbh->selectall_arrayref($query, undef, $v_time, $v_interval);
結果
selectall_arrayref failed: ERROR: syntax error at or near "$1" LINE 1: SELECT TIMESTAMP $1 + $2
結論としてはキャストをちゃんとすればOKのようです。(以下動くソース)
my $v_time = "'2008-04-14 16:00:00'"; my $v_interval = "'-2 day'"; my $query = "SELECT CAST(? AS TIMESTAMP) + CAST(? AS INTERVAL)"; my $db_retref = $dbh->selectall_arrayref($query, undef, $v_time, $v_interval);
参考文献
http://www.enterprisedb.com/docs/jp/8.3/server/typeconv-oper.html
デジタルトキワ荘
復活してました。
http://www.gamecreators.net/
早速ユーザ名'ふなけん'で登録しました。
msnマネーのクッキー(cookie)削除
Microsoft Moneyを利用していてたまにmsnマネーに入れないときがあります。
原因はクッキーなのですが、個別に消す方法をなんとか見つけたのでメモ。
C:\Users\????\AppData\Roaming\Microsoft\Windows\Cookiesフォルダの????@msaa.money.msn.co[2].txtを消せばおk
※????はログインユーザ名
Windows2000メモ
最近win2kが調子悪いと思っていたら、Userハンドルの上限10,000を振り切っていたようだ。
google talkとmsnメッセンジャー等の常駐アプリを削除したら8,000くらいになった。
Windows XPだと65,545までokっぽい。乗り換えるか?
※ちなみにUserハンドルの確認方法はタスクマネージャ>パフォーマンスで確認できます。
※2あと各プロセスごとに使用しているUserページを調べるにはタスクマネージャ>プロセス>[メニューの]表示>列の選択でおk
Apache2+fastcgi動作テスト
site-enabledの修正
# vi /etc/apache2/sites-enabled/default --- DocumentRoot /var/www/ <Directory /var/www/> Options ExecCGI AllowOverride None Order allow,deny allow from all RedirectMatch ^/$ /index.fcgi </Directory> ---
index.fcgiの作成
# vi /var/www/index.fcgi --- #!/usr/bin/perl -w use FCGI; use strict; my $count = 0; my $handling_request = 0; my $exit_requested = 0; my $request = FCGI::Request(); sub sig_handler { $exit_requested = 1; exit(0) if !$handling_request; } $SIG{USR1} = \&sig_handler; $SIG{TERM} = \&sig_handler; $SIG{PIPE} = 'IGNORE'; while ($handling_request = ($request->Accept() >= 0)) { &do_request; $handling_request = 0; last if $exit_requested; } $request->Finish(); exit(0); sub do_request() { print("Content-type: text/html\r\n\r\n", ++$count); $request->Finish(); } ---
パーミッションの設定
# chmod 755 /var/www/index.fcgi
Apache2再起動
# /etc/init.d/apache2 restart
ブラウザで確認
最初に"1"が表示され、F5でリロードするたびに数字がインクリメントされれば成功
はまりポイント:
最初index.fcgiを
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "test";
としてテストしていたが、
[error] [client xxx.xxx.xxx.xxx] Premature end of script headers: index.fcgi [notice] mod_fcgid: process /var/www/index.fcgi(9515) exit(server exited), terminated by calling exit(), return code: 0
などのエラーログがでてしまって原因調査に半日以上つぶれたorz
fcgidで動かす場合特別な作法で記述しないといけないっぽい
Apache2にfastcgiを入れる
# apt-get install libapache2-mod-fcgid libfcgi-perl
/etc/apache2/mods-available/fcgid.conf を編集
# vi /etc/apache2/mods-available/fcgid.conf --- <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi SocketPath /var/lib/apache2/fcgid/sock IPCCommTimeout 300 # <- この行を追加 IPCConnectTimeout 60 </IfModule> ---
以下のコマンドでモジュールを有効化:
# a2enmod fcgid # a2enmod rewrite
参考文献
http://www.gfd-dennou.org/arch/davis/gfdnavi/doc/install/gfdnavi-with-apache2-fastcgi.htm