メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年5月1日木曜日

[その他] XX言語プログラマ

これまた、スラッシュドットの記事読んだ。

自分は何言語プログラマなんだろう・・・。

対外的にはJavaプログラマになるんだろうか・・。
うーむ。

社外の人と会うときは、めんどっちーんで、仕事ではJavaやっているということにしている。
そうすっと、Java以外知らない人的な扱いを結構されるんだよねー。

たとえば「Rubyという国産の言語があってですね、、」というところから説明されたりする。
いや、それ誰でも知ってるし・・みたいな。
私にとってJavaはもっと勉強しなきゃいけない言語のひとつなので、
たまにJavaの話題に付いて行けなかったりする。

一応、SpringFrameworkでiBATISでMySQL or Oracleな感じだけど、
実はうれしげにkawa触ってたりするし。。

バッチを作るなんてときは大抵Perlだし・・・。
Javaで困ったらJNIでCだし。。


うーむ。
自分は何言語プログラマなんだろ。
世の中、仕事でJavaやってます=Java以外知らないのが普通
なんだろうかね。
.

[その他] ひげ

スラッシュドットのひげの記事読んだ。

ひげがポイントらしい。

うむ。
ひげ。
.

2008年4月30日水曜日

[その他][Apache][mod_chxj] apr_memcache。。

うーぷす。

こちらの日記によると、


apr_memcache0.7.0リリースにはそもそも不具合があるので
 

だそうで・・・。
パッチあてようっと。

2008年4月28日月曜日

[mod_chxj] Apache モジュールのデバッグ方法

mod_chxjで使用しているApacheモジュールのデバッグ方法をメモです。
とりたてて珍しいことはしていません・・・。
なので、役に立たないかも。


gdbを使ったデバッグ
一番良く使うのがgdb。
使い方はgdbマニュアルに詳しい。(そりゃそうか。)

とりあえず、モジュールを-gでコンパイルしておきます(できたらApacheも)。
以下、私の環境(Debian etch壊)での手順です。


# gdb /usr/sbin/apache2
 

で起動して、、、

たとえば、chxj_chtml10_convert()の中身を追いたいなら、

(gdb) b chxj_chtml10_convert
 

とやる。多分シンボル名が解決できないけどいい?って聞かれるんで、'y'を入力。

で、apacheの起動。

(gdb) run -X -f /etc/apache2/apache2.conf
 

で起動っす。-Xはつけないと意味不明になると思う。。

起動できたら、ブラウザ等からアクセス。
chxj_chtml10_convert()に処理が入ると止まるので、
's'なり'n'なりで1ステップづつ見ていったりする。

gdbのマニュアルを見ればもっと詳細に書かれているす。



fprintfでのデバッグ
あんまり利用しないが、
プログラムにfprintf(stderr,....)な感じでデバッグ文を埋め込んでおき、
apacheを-Xで起動すると、/var/log/apache2/error.log(Debianの場合)に
埋め込んでおいたデバッグ文が出力されます。

gdbで起動しておけば、標準エラー出力に出力されるので、もっと便利かも。


ap_log_rerrorや、ap_log_errorを使ったデバッグ文。
これもプログラム中に埋め込んでおき、/var/log/apache2/error.logにデバッグ文を出力
させて確認するパターン。
mod_chxjでは、DBGや、SERR、などマクロにして使っています。


ApacheのDEBUG_POOLオプションについて
mod_chxjにおいては特に意味を成さないと思っていますんで利用してません。
Apache内部での処理がDEBUG_POOLオプションをつけた場合とつけない場合で、
結構違うみたいなんで。。


valgrind
たまに実行してみる程度。
今のところ、特に役に立った記憶は無いです。
phpモジュールのエラーはやたらと出るけど・・・。


な感じ。取り立ててあたらしいことなしでした。

.