logo
 2003年9月 
 2003年10月 
 2003年11月 
 2003年12月 
 2004年1月  2004年7月 
 2004年2月  2004年8月 
 2004年3月  2004年9月 
 2004年4月  2004年10月 
 2004年5月  2004年11月 
 2004年6月  2004年12月 
 2005年1月  2005年7月 
 2005年2月  2005年8月 
 2005年3月  2005年9月 
 2005年4月  2005年10月 
 2005年5月  2005年11月 
 2005年6月  2005年12月 
 2006年1月  2006年7月 
 2006年2月  2006年8月 
 2006年3月  2006年9月 
 2006年4月  2006年10月 
 2006年5月  2006年11月 
 2006年6月  2006年12月 
 2007年1月  2007年7月 
 2007年2月  2007年8月 
 2007年3月  2007年9月 
 2007年4月  2007年10月 
 2007年5月  2007年11月 
 2007年6月  2007年12月 
 2008年1月 
アイコンの説明
code:Haemophilus influenzae
ここに書かれていることは無保証です。同じことを行って問題が発生しても、 龍義は責任をとりません。

 2/1
Other
この html の上の過去月の表示を、1つ追加したけど、だいぶ横長になってしまい、
狭い画面の場合は折り返したりして汚く表示されるので、文字サイズを小さく
してみた。ついでに、いくつかいじってみたりして。でも、ここの文章は pre
タグのままだけど。

 2/2
Other
実家に帰って、dc5100 用のアイコンを作ってきたので、アイコンのページを更新
した。icon のページって、ですます調なので、何だか違和感を感じながら書く。
それにしても、結構増えたなぁ。

 2/3
WWW
2年前に作った Perl の CGI をいじった。なんだか、セッション管理をしている
ので、思ったよりも複雑で、どんな構造にしたか全然覚えてない。html の元を
読み込んで、セッション情報とか、必要なものを差し込んだりしているのだけど、
コメントがあまり無いので、何をやっているのかすぐにわからない。やっぱり、
コメントって大切なんだ、と思った。

 2/4
Other
PDF の文書を作る必要が出たので、何か無料で変換できるものはないかな、と
探していたら、OpenOffice.org に辿り着いた。かなり昔に OpenOffice を使った
ときは、日本語の表示が滅茶苦茶になって、良い印象がなかったのだけど、もう
そんなこともないかな、と思って使ってみることにした。使った感想は、完璧
ではないけど、使えるようになった、という感じ。さっそく PDF 出力してみた
けど、特に問題なし。これは意外と良いかもしれない。

 2/5
WWW
https に使っている ssl のキーの有効期限を調べる必要があった。なんとなく、
openssl コマンドを使えばできる、ということはわかっていたけど、実際にどんな
オプションなのか、わからない。色々調べて、何か出てきた。どうやら、秘密鍵に
有効期限情報はないようである。よく考えたら、確かにそんな気もしてきた。

[toyota@dstar]% openssl rsa -text -in server.key
Private-Key: (1024 bit)
modulus:
    〜snip〜
publicExponent: 65537 (0x10001)
privateExponent:
    〜snip〜
prime1:
    〜snip〜
prime2:
    〜snip〜
exponent1:
    〜snip〜
exponent2:
    〜snip〜
coefficient:
    〜snip〜
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
    〜snip〜
-----END RSA PRIVATE KEY-----

公開鍵の方を見てみた。

[toyota@dstar]% openssl x509 -text -in server.crt
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
〜snip〜
        Validity
            Not Before: Jan 28 10:12:24 2006 GMT
            Not After : Feb 18 15:28:16 2008 GMT
〜snip〜

この時間って誰が決めたんだろう。0 時とかじゃないのを見ると、頼んだ CA の
コマンドを発行した時間なのかなぁ。

 2/6
Electric
朝、携帯電話を目覚まし時計代わりにして、起きている。今日もいつものように
鳴ったのだけど、1秒もしないうちに電池切れの音が。昨日は、そこそこ電池が
あったように思ったのだけど。電池の寿命なのか、室内なのに5度近くまで温度が
下がっている部屋が問題なのか。リチウムイオン電池の温度特性を調べてみた。
http://www.baysun.net/lithium/lithium10.html
というページで、放電温度特性というグラフがあった。見ると、確かに低温だと
性能が落ちるようなのだけど、零度のグラフを見ると、20度とそんなに大して
変わらないようである。ということは、電池の寿命ということみたい。そろそろ
実家に置いてある予備機の電池と取り替えようかな。

 2/7
Network
10年以上前から使っているメールアドレスがある。とあるプロバイダのメール
アドレスなのだけど、プロバイダとしてはもう使っておらず(まだ ISDN の契約
だし)、完全にメールアドレスのためで、年額3千いくらか払っている。いくつか
持っているドメインの連絡先がこれになっているのと、いくつかの転送メールが
このアドレスに届いているので、依存性で使っているだけである。と言っても、
届くメールの 95% 以上は SPAM で、そこを読むときは、旧式のメーラーを使って
いるので、少々うんざりしていた。ドメインの設定とか、転送メールの設定を
変えれば良いのだけど、面倒だし、Google で外の POP3 にアクセスできるみたい
なので、Google 経由にして読むことにした。SPAM が無くなって、非常に快適。
振り分けのため、10年以上前から使っているメーラーを終わらすのは、ちょっと
抵抗があったが、この際仕方ない。

 2/8
Electric
車のバッテリー。先月あがってしまったので、結局先週末に新しいのを買った。
5日あけて、乗ってみたけど、特に問題なくエンジンがかかる。どこかでリーク
しているとかは、ないみたい。とりあえず、一安心。

 2/9
WWW
突然、Google の検索結果が10件になってしまった。いつもは設定で100件にして
いるのだけど、その設定がきかなくなった感じ。再度、設定を確認してみたけど、
やっぱり設定は100件になっていて、いつも使っている Firefox でも、IE でも
同じ。毎回、100件と選ぶのは面倒だし、10件の結果じゃ、使い物にならないし。
困ったものである。

 2/10
WWW Linux
Apache 1.3.41 のコンパイルでエラーが出た。下の感じ。

[toyota@dstar]% make
===> src
make[1]: Entering directory `/home/toyota/src/apache/apache_1.3.41'
make[2]: Entering directory `/home/toyota/src/apache/apache_1.3.41/src'
Makefile:8: *** missing separator.  Stop.
make[2]: Leaving directory `/home/toyota/src/apache/apache_1.3.41/src'
make[1]: *** [build-std] Error 2
make[1]: Leaving directory `/home/toyota/src/apache/apache_1.3.41'
make: *** [build] Error 2

日本語だと、以下のような感じ。

[toyota@dstar]% make
===> src
make[1]: 入ります ディレクトリ `/home/toyota/src/apache/apache_1.3.41'
make[2]: 入ります ディレクトリ `/home/toyota/src/apache/apache_1.3.41/src'
Makefile:8: *** 分離記号を欠いています.  中止。
make[2]: 出ます ディレクトリ `/home/toyota/src/apache/apache_1.3.41/src'
make[1]: *** [build-std] エラー 2
make[1]: 出ます ディレクトリ `/home/toyota/src/apache/apache_1.3.41'
make: *** [build] エラー 2

1.3.39 でも同様に起きた。src/Makefile を見てみたら。

  modules/standard/libstandard.a

という行が問題のようである。この部分、正しくコンパイルできる PC だと、

MODULES= ¥
  modules/standard/libstandard.a

MODULES= が入っている。ま、この行を入れたら、問題なくコンパイルできたけど、
そもそもの問題は何か?長くなりそうなので、続きは明日。

 2/11
WWW Linux
昨日の続き。configure の結果を見ていると、エラーが出ていた。

[toyota@dstar]% ./configure
Configuring for Apache, Version 1.3.41
 + Warning: Configuring Apache with default settings.
 + This is probably not what you really want.
 + Please read the README.configure and INSTALL files
 + first or at least run './configure --help' for
 + a compact summary of available options.
 + using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
Creating Makefile in src
 + configured for Linux platform
 + setting C compiler to gcc
 + setting C pre-processor to gcc -E
 + using "tr [a-z] [A-Z]" to uppercase
 + checking for system header files
 + adding selected modules
awk: htconf.24504.4:21: Unexpected token
 + using system Expat
 + checking sizeof various data types
 + doing sanity check on compiler and options
Creating Makefile in src/support
Creating Makefile in src/regex
Creating Makefile in src/os/unix
Creating Makefile in src/ap
Creating Makefile in src/main
Creating Makefile in src/modules/standard

awk が問題のようである。原因は、なんとなくわかっていて、

[toyota@dstar]% where awk
/home/toyota/bin/awk
/bin/awk
/usr/bin/awk

この /home/toyota/bin/awk が問題なのである。この /home/toyota/bin/awk は
busybox のものでテスト的に使っているもの。この awk の名前を変更することで
エラーは無くなる。が、そもそも busybox の awk は何故エラーを起こすのか?
src/Configure を見てみた。エラーが出ている場所は、2104 行目。

echo 'awk -f $awkfile >>Makefile <$tmpfile

の部分、$awkfile の内容が問題みたいである。この中身は。

    BEGIN {
        split (" modules/standard", tmp, " ")
        for ( key in tmp ) {
            autodirs[tmp[key]] = 1
        }
     }
    /^Module/ { modules[n++] = $3 }
    /^%Module/ { modules[n++] = $3 }
    END {
        print "MODULES= ¥¥"
        for (i = 0; i < n; ++i) {
            split (modules[i], pp, "/")
            dir = pp[1] "/" pp[2] 
            inthere = 0
            for ( tdir in autodirs ) {
                if (tdir == dir) 
                    inthere = 1
            }
            if (inthere == 1)
                continue
            else
                printf ("  %s ¥¥¥n", modules[i])
        }
    }

この21行目でエラーが出る。試しに、これを /bin/awk で実行すると、ちゃんと
動く。21行目周りは。

            if (inthere == 1)
                continue
            else
                printf ("  %s ¥¥¥n", modules[i])

これを、書き換えてみた。

            if (inthere == 1) {
                continue
            } else {
                printf ("  %s ¥¥¥n", modules[i])
            }

ときちんと括ると、busybox の awk でもエラーなく実行できるようになった。
この辺の細かい点が busybox のコマンドでは弱いところ。

 2/12
Network Linux
rsync の -z オプションの効能を知るために、ちょっと100Mのファイルを作って
みた。rsync 前に、とりあえず、実験。2つのファイルを作成。

dd if=/dev/urandom of=rand100M bs=1024 count=102400
dd if=/dev/zero of=zero100M bs=1024 count=102400

この2つのファイルを圧縮してみる。

[toyota@dstar]% ls -l
total 102504
-rw-r--r--    1 toyota   toyota   104857600 Feb 12 17:05 rand100M
[toyota@dstar]% gzip rand100M ; ls -l ; gunzip rand100M.gz
total 102524
-rw-r--r--    1 toyota   toyota   104874213 Feb 12 17:05 rand100M.gz
[toyota@dstar]% gzip -9 rand100M ; ls -l ; gunzip rand100M.gz
total 102524
-rw-r--r--    1 toyota   toyota   104874213 Feb 12 17:05 rand100M.gz
[toyota@dstar]% bzip2 rand100M ; ls -l ; bunzip2 rand100M.bz2
total 102960
-rw-r--r--    1 toyota   toyota   105320373 Feb 12 17:05 rand100M.bz2
[toyota@dstar]% bzip2 -9 rand100M ; ls -l ; bunzip2 rand100M.bz2
total 102960
-rw-r--r--    1 toyota   toyota   105320373 Feb 12 17:05 rand100M.bz2

全然歯が立たない。これが 0 埋めのファイルだと。

[toyota@dstar]% ls -l
total 102504
-rw-r--r--    1 toyota   toyota   104857600 Feb 12 17:32 zero100M
[toyota@dstar]% gzip zero100M ; ls -l ; gunzip zero100M.gz
total 104
-rw-r--r--    1 toyota   toyota     101800 Feb 12 17:32 zero100M.gz
[toyota@dstar]% gzip -9 zero100M ; ls -l ; gunzip zero100M.gz
total 104
-rw-r--r--    1 toyota   toyota     101800 Feb 12 17:32 zero100M.gz
[toyota@dstar]% bzip2 zero100M ; ls -l ; bunzip2 zero100M.bz2
total 4
-rw-r--r--    1 toyota   toyota        113 Feb 12 17:32 zero100M.bz2
[toyota@dstar]% bzip2 -9 zero100M ; ls -l ; bunzip2 zero100M.bz2
total 4
-rw-r--r--    1 toyota   toyota        113 Feb 12 17:32 zero100M.bz2

驚きのサイズになる。というか、gzip/bzip2 の圧縮率オプションって、あまり
関係ないように見える。これを、実際に rsync でコピーするのは、明日にする。

 2/13
Network Linux
昨日のファイルを rsync でコピーしてみる。とりあえず、ディレクトリ付きに
して。

[toyota@dstar]% mkdir sync1 sync2
[toyota@dstar]% mv rand100M ./sync1 ; mv zero100M ./sync2

これで、別 PC から取ってくる。2台間は 100Base な環境。

[toyota@kashyyyk]% time rsync -at 192.168.2.73::HOME/sync1 ./

real    0m9.054s
user    0m0.550s
sys     0m0.730s
[toyota@kashyyyk]% rm -rf sync1
[toyota@kashyyyk]% time rsync -atz 192.168.2.73::HOME/sync1 ./

real    0m31.313s
user    0m0.700s
sys     0m0.810s

ランダムデータの場合は、滅茶苦茶遅くなっただけである。データを圧縮/伸張
することで、余分に時間がかかったようである。

[toyota@kashyyyk]% time rsync -at 192.168.2.73::HOME/sync2 ./

real    0m9.310s
user    0m0.440s
sys     0m0.730s
[toyota@kashyyyk]% rm -rf sync2
[toyota@kashyyyk]% time rsync -atz 192.168.2.73::HOME/sync2 ./

real    0m6.661s
user    0m0.800s
sys     0m0.200s

ゼロデータの場合は、圧縮するとデータが小さくなるので、その分通信時間が
短くなる、ということで、速くなった。この辺りは、使っている PC の CPU の
早さなんかも関係しているので、難しいところなのだろうけど、圧縮してサイズが
小さくなるようなデータの場合は、やはり z オプションを付けたほうが良さそう
である。

 2/14
Network
久々に Skype をバージョンをあげてみた。3.6 のベータ版のときには無かった
エモーティコンがあったので、skype のエモーティコンのページを更新してみた。
myspace を追加したたけだけど。

 2/15
Other
トイデジカメを色々見ていたら、TOMY の Xiaostyle というデジカメに行き着いた。
初めて聞いたデジカメなのだけど、写りが非常に安定していなく、その性能の
悪さから逆に人気で、LOMO のようなデジカメとしてオークションなんかで高く
取引されているらしい。何と言うか、グリグリと画像をいじれる今となっては、
ほとんど遊びの領域なんだろうけど、世の中性能だけじゃないんだな、と感じ
させられた。

 2/16
Other
今年の何月からか、自動車の後部座席でもシートベルトをするように義務化される
らしい。捕まっても減点はないとのことだけど。で、ちょっと前の4ナンバー車の
後部座席なんかにはシートベルトがついてなかったなぁ、なんて思って自動車屋に
行ってその辺りどうなるのか聞いてみたら、法制度のこと自体知らなかった。
駄目だ、なんて思って帰ってきた土曜日。4ナンバー車でも、ちゃんと後部座席に
シートベルトが付いたのはいつのことか、また来週別の自動車屋に行って聞いて
みよう。

 2/17
WWW
Google の検索結果の設定の件、いつのまにか戻っていた。さらに、Willcom の
PHS からの gmail へのアクセスも、いつのまにかうまくいくようになったし。
それにしても、なんだかここ最近の Google って信頼度が低いな、なんて思うのは
私だけだろうか。

 2/18
Linux
なんだか、簡単な Linux のテスト機が必要になって。knoppix を使おうと思ったの
だけど、GUI なんて使わないし、もう少し開発系とか通信系のソフトウェアが
入っている Live CD Linux がないものか、調べてみた。が、意外とないもんで
ある。X なんて入っているから、デカくなるのにな、なんて思いながら、思いつく
SLAX とか Berry Linux とか CD に焼いて使ってみたけど、vi の場所に納得が
いかなかったり、開発系のものの量とか、色々不満があって、結局 knoppix に
戻ってしまった。knoppix って意外と使いやすいことがわかった感じ。

 2/19
Linux
昨日の knoppix 5.1.1 の環境に Apache 1.3.41 + mod_ssl 2.8.31 を入れようと
思ったら、エラーだらけ。まず、openssl の開発環境がない、さらに yylex(flex)
や、bison なんかがないと言われ。flex も新しいバージョンだとエラーが出たり
して、Apache ごときを動かすのに1時間以上かかってしまった。やっぱり、使い
なれた環境が一番だ。

 2/20
Linux
file コマンドで出力される

[toyota@dstar]% file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Lin
ux 2.2.5, dynamically linked (uses shared libs), stripped

この GNU/Linux 2.2.5 は、ファイルのどこから拾うのか。/usr/lib/rpm/magic
なんかを眺めていたけど、どうもピンとくるものがない。仕方なく、 file の
source を取ってきた。source を見てみたら、どうやら src/readelf.c の中で
判断していて、/bin/ls の場合は、

[toyota@dstar]% od -x -N 384 /bin/ls
0000000 457f 464c 0101 0001 0000 0000 0000 0000
0000020 0002 0003 0001 0000 9900 0804 0034 0000
0000040 0824 0001 0000 0000 0034 0020 0008 0028
0000060 001a 0019 0006 0000 0034 0000 8034 0804
0000100 8034 0804 0100 0000 0100 0000 0005 0000
0000120 0004 0000 0003 0000 0134 0000 8134 0804
0000140 8134 0804 0013 0000 0013 0000 0004 0000
0000160 0001 0000 0001 0000 0000 0000 8000 0804
0000200 8000 0804 03c0 0001 03c0 0001 0005 0000
0000220 1000 0000 0001 0000 03c0 0001 93c0 0805
0000240 93c0 0805 0370 0000 06e8 0000 0006 0000
0000260 1000 0000 0002 0000 04d4 0001 94d4 0805
0000300 94d4 0805 00d8 0000 00d8 0000 0006 0000
0000320 0004 0000 0004 0000 0148 0000 8148 0804
0000340 8148 0804 0020 0000 0020 0000 0004 0000
0000360 0004 0000 e550 6474 02e0 0001 82e0 0805
0000400 82e0 0805 002c 0000 002c 0000 0004 0000
0000420 0004 0000 e551 6474 0000 0000 0000 0000
0000440 0000 0000 0000 0000 0000 0000 0006 0000
0000460 0004 0000 6c2f 6269 6c2f 2d64 696c 756e
0000500 2e78 6f73 322e 0000 0004 0000 0010 0000
0000520 0001 0000 4e47 0055 0000 0000 0002 0000
0000540 0002 0000 0005 0000 0061 0000 0066 0000
0000560 0000 0000 003b 0000 003a 0000 0030 0000
0000600

緑の場所で Linux と判断、赤の場所から 2.2.5 を拾ってきている。もちろん、
オフセットとかあるだろうから、他のバイナリでは場所が変わると思うけど。

 2/21
Linux
昨日の出力、readelf コマンドだとどうやれば良いのか。ちょっとやってみた。
まず、ヘッダの確認をしてみる。

[toyota@dstar]% readelf -l /bin/ls

Elf file type is EXEC (Executable file)
Entry point 0x8049900
There are 8 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x08048034 0x08048034 0x00100 0x00100 R E 0x4
  INTERP         0x000134 0x08048134 0x08048134 0x00013 0x00013 R   0x1
      [Requesting program interpreter: /lib/ld-linux.so.2]
  LOAD           0x000000 0x08048000 0x08048000 0x103c0 0x103c0 R E 0x1000
  LOAD           0x0103c0 0x080593c0 0x080593c0 0x00370 0x006e8 RW  0x1000
  DYNAMIC        0x0104d4 0x080594d4 0x080594d4 0x000d8 0x000d8 RW  0x4
  NOTE           0x000148 0x08048148 0x08048148 0x00020 0x00020 R   0x4
  GNU_EH_FRAME   0x0102e0 0x080582e0 0x080582e0 0x0002c 0x0002c R   0x4
  STACK          0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version
_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame 
   03     .data .dynamic .ctors .dtors .jcr .got .bss 
   04     .dynamic 
   05     .note.ABI-tag 
   06     .eh_frame_hdr 
   07     

このセクション 02 に .gnu.version なんかがあるので、こいつを確認してみる。

[toyota@dstar]% readelf -x 2 /bin/ls

Hex dump of section '.note.ABI-tag':
  0x08048148 00554e47 00000001 00000010 00000004 ............GNU.
  0x08048158 00000005 00000002 00000002 00000000 ................

大当たりである。これで、od コマンドなんて使って探さずに済む。

 2/22
Linux
昨日の出力をさらに objdump でもやってみることにした。こうなってくると、
趣味の世界。

[toyota@dstar]% objdump -s /bin/ls | head -20

/bin/ls:     file format elf32-i386

Contents of section .interp:
 8048134 2f6c6962 2f6c642d 6c696e75 782e736f  /lib/ld-linux.so
 8048144 2e3200                               .2.             
Contents of section .note.ABI-tag:
 8048148 04000000 10000000 01000000 474e5500  ............GNU.
 8048158 00000000 02000000 02000000 05000000  ................
Contents of section .hash:
 8048168 61000000 66000000 00000000 3b000000  a...f.......;...
 8048178 3a000000 30000000 00000000 00000000  :...0...........
 8048188 00000000 54000000 3e000000 4f000000  ....T...>...O...
 8048198 00000000 20000000 47000000 60000000  .... ...G...`...
 80481a8 3c000000 00000000 2e000000 24000000  <...........$...
 80481b8 22000000 46000000 55000000 38000000  "...F...U...8...
 80481c8 00000000 2f000000 00000000 00000000  ..../...........
 80481d8 00000000 4d000000 44000000 00000000  ....M...D.......
 80481e8 00000000 58000000 0e000000 5b000000  ....X.......[...
 80481f8 5e000000 53000000 0b000000 59000000  ^...S.......Y...

.note.ABI-tag というところにあるみたいである。-s で全ての表示をするのは
効率が悪いので、セクションの指定をしてみる。

[toyota@dstar]% objdump --section=.note.ABI-tag -s /bin/ls

/bin/ls:     file format elf32-i386

Contents of section .note.ABI-tag:
 8048148 04000000 10000000 01000000 474e5500  ............GNU.
 8048158 00000000 02000000 02000000 05000000  ................

良い感じである。

 2/23
Network
Dovecot 1.1.rc1 が出ていた。そろそろ 1.1 にあげようかな。
There are no release critical bugs left and no known crash bugs.
って書いてあるし。とりあえず、Dovecot のページを更新しておいた。翻訳が
全然進んでいない気もするけど。

 2/24
Linux
某所の cgi を作る仕事をしようと、ログインしたのは良いが、ディスクの残り
容量が少ない。仕方なく、バックアップしようと思ったのだけど、そのサーバには
直接入れないので、データをどうやってもってこようか少し悩む。結局、http で
取ってくることにして、移動を行い、ブラウザからダウンロード。少しまとまったら
DVD-R に焼くという作業。そんなことをやっていたら、cgi を作る時間がなくなって
しまった。その前に、やる気もなくなったのだけど。バックアップってまとめて
やると、面倒である。

 2/25
Linux WWW
CentOS 5 な環境に Apache 2.0.52 なんかを入れる必要があって、入れてみたの
だけど。

$ ./configure --enable-ssl
$ make
〜snip〜
ssl_engine_pphrase.c: In function 'ssl_pphrase_Handle_CB':
ssl_engine_pphrase.c:683: error: 'PEM_F_DEF_CALLBACK' undeclared (first use in this function)
ssl_engine_pphrase.c:683: error: (Each undeclared identifier is reported only once
ssl_engine_pphrase.c:683: error: for each function it appears in.)

嫌な感じである。調べてみたら。
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/23493
というページが見つかった。どうやら、OpenSSL のバージョンが高すぎるようで
ある。ありがたく patch を使って解決。しかし、先は長い。

 2/26
Other
カナル型のイヤホンを買った。前に使っていた耳に掛けるやつが、ぽっきり折れて
しまったので、仕方なくなんだけど。で、audio-technica の ATH-CK52 という
ものを買ったのだけど、低音が全然出ない。東芝 gigabeat 付属のイヤホンの方が
ずっとまともな音が出る感じ。で、ちょっと調べてみたら、やっぱり低音があまり
出ないものらしい。エージングをすると、少しは出るようになるみたいなので、
さっそくやってみることにした。WaveGene というソフトでピンクノイズの音を
作って、mp3 に変換し、家に余っていたプレーヤで連続再生。さて、どうなるか。

 2/27
WWW
Apache のモジュールなんかをいじっているのだけど、情報が少なくて苦労して
いる。確かに、一般の人はモジュールなんか作る以前に、Apache を入れること
自体ないので、仕方がないのだけど、もう少しまとまった情報があったら助かる
のに、と思う。しばらく、Apache モジュールとの格闘。

 2/28
WWW
Apache のディレクティブで、virtualhost 内に指定できるものと、できないものを
どうやって判別すれば良いのか、という疑問に当たった。例えば、ServerRoot の
場合、Apache のページを参照すると、

コンテキスト:	サーバ設定ファイル

とあるので、virtualhost 内では指定できない。DocumentRoot の場合は、

コンテキスト:	サーバ設定ファイル, バーチャルホスト

なので、指定できる。この違いは source レベルだと、どのような違いがあるのか。

Apache 2.0.63 の server/core.c を見ると、

AP_INIT_TAKE1("DocumentRoot", set_document_root, NULL, RSRC_CONF,
  "Root directory of the document tree")
AP_INIT_TAKE1("ServerRoot", set_server_root, NULL, RSRC_CONF | EXEC_ON_READ,
  "Common directory of server-related files (logs, confs, etc.)"),

の宣言で、見た感じは RSRC_CONF と RSRC_CONF | EXEC_ON_READ の違いだけの
ように見える。同じように、Include の場合は、

コンテキスト:	サーバ設定ファイル, バーチャルホスト, ディレクトリ

とあるのだけど、server/core.c では、

AP_INIT_TAKE1("Include", include_config, NULL,
  (RSRC_CONF | ACCESS_CONF | EXEC_ON_READ),
  "Name of the config file to be included"),

となっている。良くわからなくなる。この ACCESS_CONF なんかを define して
いるのは、include/http_config.h で、以下のような感じになっている。

/**
 * @defgroup ConfigDirectives Allowed locations for configuration directives.
 *
 * The allowed locations for a configuration directive are the union of
 * those indicated by each set bit in the req_override mask.
 *
 * @{
 */
#define OR_NONE 0             /**< *.conf is not available anywhere in this override */
#define OR_LIMIT 1           /**< *.conf inside <Directory> or <Location>
                                and .htaccess when AllowOverride Limit */
#define OR_OPTIONS 2         /**< *.conf anywhere
                                and .htaccess when AllowOverride Options */
#define OR_FILEINFO 4        /**< *.conf anywhere
                                and .htaccess when AllowOverride FileInfo */
#define OR_AUTHCFG 8         /**< *.conf inside <Directory> or <Location>
                                and .htaccess when AllowOverride AuthConfig */
#define OR_INDEXES 16        /**< *.conf anywhere
                                and .htaccess when AllowOverride Indexes */
#define OR_UNSET 32          /**< unset a directive (in Allow) */
#define ACCESS_CONF 64       /**< *.conf inside <Directory> or <Location> */
#define RSRC_CONF 128        /**< *.conf outside <Directory> or <Location> */
#define EXEC_ON_READ 256     /**< force directive to execute a command 
                which would modify the configuration (like including another
                file, or IFModule */
/** this directive can be placed anywhere */
#define OR_ALL (OR_LIMIT|OR_OPTIONS|OR_FILEINFO|OR_AUTHCFG|OR_INDEXES)

この部分、virtualhost の記述がなくて、良くわからない。とりあえず、Include は
Directory と Location の中で使えるのはわかったけど。

 2/29
Other
今日は4年に1回しかないうるう年の日。去年は無かった日なので、仕事をして
いるとなんだか損をしたような気持ちになるのだけど、それはちょっと置いて、
コンピューターをやっていると少しドキドキした感じになる。何かしらのエラーが
起きるのでは、というように。実際のところ何も起きなかったけど、ミニミニ
2000年問題みたいな感じは、何もなく過ぎ去った。
21st projects Tatsuyoshi Networks Prompt Works
by Tatsuyoshi since 2003