2009年6月18日

EC-CUBEでPHPとSmartyと戯れた

EC-CUBEな案件で拡張的な話しがあったので、初めてPHPを触る事に。

1日2日触っていると、だいぶ要領が分かって来たのか、自分でクラスを作成できるようになった。

でも、ライブラリ関連の挙動が怪しく、、思うように動いてくれない....

EC-CUBEのソースは微妙だと思う....どうやら、PHP界隈では、CakePHPが良さそう、、、。
PerlではCatalyst, RubyではRails, PHPならCakePHPといった感じなのだろうか。

今度、少しCakePHPについて学習してみようかな

そうそう、PHPで驚いたのが、error_log って関数があって、そいつに文字列渡すと、ApacheとかのWebサーバのエラーログに出力される。

これって、言語レベルで実装されている事に驚く....。

2009年5月14日

Out Of Memory Killerと戦う

某クライアントさんからメモリ不足時のプログラムの挙動についてテストしろって内容があって、どのようにしてメモリ不足を起こすかと思って、以下のようにしてメモリを大量消費してみた。
perl -e 'my @Array; $#Array = 1000000000; sleep;'
しばらくすると、"Terminated!!" とか出て突然、落ちたから何事かと思って、隣の人に聞いたら、OOM Killerなる奴がいるらしく、そいつの仕業って事を知った。

ってか、Linuxにこんな機能があったなんて初めて知った。

なんどもやってたら、memcachedとかMySQLとか容赦なく殺されて逝ったwww
なぜか、apacheは死ななかったけど、、、たまたまかな??

MySQLが、必至に restart している挙動に、健気だなぁとか思った。

あと、top で、perlのプロセス見てたら、メモリ消費が "1.0g" とか出てて、ちゃんと1ギガ消費してたら、その通りに出るんだなぁとか、、、。。ってか、1.0gとかって初めて見たwww

OOM Killer:ITpro

2009年4月3日

ハッシュの値へのリファレンスを取得しました

my $hash_ref = { hogehoge => 1 };
my $scalar_ref = ¥($hash_ref->{hogehoge});
$hash_ref->{hogehoge} = 2;
print $$scalar_ref, "¥n";
初めは取れるのか?と思ってたのだが、意外とあっさり。

本当は、、
my $object = Class->new;
my $scalar_ref = ¥($object->hogehoge);
$object->hogehoge(2);
print $$scalar_ref, "¥n";
みたいに、アクセサーから取得したかったのだけど、どうやら、returnの時に値のコピーが発生しているようで、取得できなかった。。。

まぁ、なんで、こんな事がやりたかったかと言うと、DB上にファイルを保存する事になって、そのファイルの内容を取り出す関係で、極力、変数のコピーは避けたかったので、、、という説明じゃわからないね。まぁ、そんな感じの時に必要だったのよ。

簡単に説明すれば、DBIx::Class::InflateColumn::Fileしたかったの。

IO::Fileに、変数の参照渡して、スカラー変数をファイルみたいに、open したかった。

2009年1月23日

iAntiVirusが暴走する...

何かのひょうしに、iAntiVirus が、ひどい暴走して、、にっちもさっちもいかないのです。。とりあえず、最近は止めっぱなしだけど。。。困ったなぁ。。

まぁ、暴走というかエラー吐きまくりで、system.log が大変な事になるんだけど。。
どなたか、対処方法とか知ってたら教えてー
Jan 23 04:54:22 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:54:52: --- last message repeated 35242 times ---
Jan 23 04:54:22 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:55:22: --- last message repeated 40570 times ---
Jan 23 04:54:23 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:55:52: --- last message repeated 38227 times ---
Jan 23 04:54:23 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:56:22: --- last message repeated 42702 times ---
Jan 23 04:54:24 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:56:52: --- last message repeated 44623 times ---
Jan 23 04:54:25 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:57:22: --- last message repeated 47837 times ---
Jan 23 04:54:25 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:57:52: --- last message repeated 58602 times ---
Jan 23 04:54:26 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:58:22: --- last message repeated 60940 times ---
Jan 23 04:54:27 104 [0x0-0x1e01e].com.pctools.iAntiVirus[200]: iAntiVirus::kFSMonitorC error in worker thread @ IODataQueueDequeue, code = -536870181.
Jan 23 04:58:52: --- last message repeated 64267 times ---

2009年1月1日

WebDAV on lighttpd

困った...起動しない...
# /usr/local/etc/rc.d/lighttpd start
Starting lighttpd.
2009-01-01 04:12:30: (plugin.c.165) dlopen() failed for: /usr/local/lib/lighttpd/mod_webdav.so /usr/local/lib/lighttpd/mod_webdav.so: Undefined symbol "uuid_unparse"
2009-01-01 04:12:30: (server.c.610) loading plugins finally failed
ports でインストールした時に、
configure: WARNING: uuid/uuid.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: uuid/uuid.h: proceeding with the compiler's result
こんなのとか出てたから怪しいんだけど、、e2fsprogs-libuuid のインストールは、問題無い感じだった。。
# uname -v
FreeBSD 7.0-RELEASE-p7 #0: Sun Dec 21 08:31:52 UTC 2008
んー、、lighttpd-1.4.20 だと、webdavは、ダメなのかなぁ。。。