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月 
 2008年2月 
アイコンの説明
code:Haemophilus influenzae
ここに書かれていることは無保証です。同じことを行って問題が発生しても、 龍義は責任をとりません。

 3/1
Other
家で英語キーボード、実家で HHK の英語版、仕事場では ThinkPad での日本語
キーボードを使っている。どれも、ctrl が A の左にくるようにはいじってあるの
だけど、それでも急に変えると、最初は間違ってしまう。特に、@とか”とか;は
必ずと言って良いほど。全部 HHK にしても良いのだけど、そうすると他人の PC を
触ることになった場合、とてもストレスが溜まるものになってしまう。ある意味、
現況は頭の切り替えに良いのかもしれないけど。

 3/2
Other
DoCoMo が iモードID というのを使うようになるらしい。なんだか、中途半端な
uid はどうなるの?という感じである。始まる1ヶ月前に、急に言うな、と思って
しまうけど、Disney Mobile が出てきたり、新しいことが始まると、技術者は
それに対応してソフトウェアなんかを修正しないといけないから、仕事にあり
つけるぶん、ありがたいのかもしれないけど。

 3/3
Network
メリタというコーヒー関係のものを作っている会社に問い合わせをしてみた。
返事の内容的には、80点ぐらいだったのだけど、メリタ(株)の株の次が1字の
機種依存文字で送ってきた。それだけで、サポート失格、と思ってしまった。
サポートするんだったら、ちゃんと勉強ぐらいして欲しいものである。

 3/4
WWW Linux
Apache 1.3 + php5 + Linux 2.6 が動かない、と騒いでいる人が居て。ざっくり
見てみたけど、インストールはうまくいっているみたい。php.ini が指定の場所に
無かったのでコピーして、それでも動かないので httpd.conf のチェック。

LoadModule php5_module        libexec/libphp5.so
AddHandler php5-script .php
AddType application/x-httpd-php .php

となっていた。AddHandler を消したら、あっさりと動く。彼の1日は、私の10分で
解決してしまった。ま、世の中そんなもんだけど。

 3/5
Network
Dovecot 1.0.11 が出た。mail_extra_groups 設定でセキュリティ上の問題が出た
らしい。その他にもいくつかの細かい修正があったようだ。先週 1.1rc1 が出た
けど、rc が取れるのは先になりそう。

 3/6
Network
Dovecot 1.0.12 が出た。dotlock_use_excl=no を mail_privileged_group と
使うと access denied のエラーが出るらしい。この変更のみみたい。とりあえず、
Dovecot のページを変更しておいた。

 3/7
Other
どうやら10日の月曜日に停電があるらしい。この web サーバ等は停止になるの
だけど、朝、実家に寄って停電前にシャットダウンして、仕事から帰ってきて、
また電源を入れる、というのも面倒だなと。リモートで電源を落として、仕事が
終わって帰ってきたら、電源を入れる、という流れかなぁ。今、Yahoo の ADSL も
あるので、そこのサーバを1日だけ使ってみるのも手だけど、DNS 周りを変更したり
するのが面倒そう。その前に、データを引っ張るのが面倒だけど。さて、どうした
ものか。

 3/8
Network WWW
相変わらず、WX-320K から gmail への接続がうまくいかない。この問題自体、
google のせいな気がするので、google が修正をするものかな、と思っていた
けど、Willcom のバージョンアップ情報をみると、少しづつ gmail との接続性の
改善ファームが出てきているようである。WX-320K 用のものはまだ出てないけど。
早くなんとかして欲しいなぁ。

 3/9
Network
Dovecot 1.0.13 と Dovecot 1.1.rc3 が出たので、Dovecot のページの更新。
新しいセキュリティホールが見つかったらしい。状況が限られているようだけど、
更新した方が良さそうである。

 3/10
Other LAN-iCN2
今日の停電のことをすっかり忘れていた。リモートから Yahoo トリオモデムの
NAT の変更をしようとしたが、lynx ではできず。結局、DNS の付け替えをして
代替サーバに置き換えることはやめて、停電前に電源 off にするだけにした。
半年振りぐらいの電源 off なので、LAN-iCN が起動するか少しドキドキだった
けど、問題なく起動。問題なく、復旧。停電は体に悪い。

 3/11
Other
Solaris10 sparc の環境で開発をやる必要が。で、中を見ると、gcc が入って
いない。仕方なく、SunFreeware から gcc とか lib-gcc のパッケージを取って
きて、コピーしようと思ったら、scp が入ってない。仕方なく ftp でファイルの
転送。さらにダウンロードしたファイルをインストールしようと思ったら。gunzip
が入っていない。そこからかよ…。
ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/gzip-1.3.5.10-sol10-sparc-local
のファイルを取ってきて、ftp で転送して。さて、パッケージのインストールって
どうやるんだっけ、と少し悩んで。

# pkgadd -d gzip-1.3.5.10-sol10-sparc-local

これで、gunzip がやっと動いた。まだまだ、先は長い。久しぶりに素の Solaris と
格闘。

 3/12
Other
昨日の続き。gcc, libgcc, libiconv を入れて、gcc を実行してみた。

[tatsuyoshi@samaria]% gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.3.2

なんとか動いているみたいである。適当なソースを書いて、コンパイルをしてみた。

[tatsuyoshi@samaria]% gcc test.c
In file included from test.c:1:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:36:27: iso/stdio_iso.h: No such file or directory
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:105:27: iso/stdio_c99.h: No such file or directory
In file included from test.c:1:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:210: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:246: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:247: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:256: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:258: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:282: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:284: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:295: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:296: error: parse error before "FILE"

ヘッダがない。どうやら、SUNWhea パッケージを入れていないようである。OS の
CD から入れないといけないのか…。面倒臭くなってきた。実機の場所に行くか。

 3/13
Other
結局、昨日の Solaris 機は、Solaris10 のインストールからやり直すことにした。
その方が早そうだし。パッケージをがっぽり突っ込んで、SunFreeware から gcc
なんかを取ってきて、構築完了。tar に z オプションがなかったり、ifconfig の
オプションに悩まされながらも、なんとか使っている。久しぶりに Solaris 触ると
ちょっと戸惑うな。

 3/14
WWW Linux
Apache 1.3.41 + mod_ssl 2.8.31-1.3.41 で make がこける話。問題の場所は、
src/modules/ssl の部分。ここで flex を呼び出しているのだけど、 flex の
バージョンが新しいとダメみたい。試しに、古いバージョンをいくつか落として
きて、やってみることにした。

[toyota@dstar]$ /home/toyota/src/flex/flex-2.5.4/flex -Pssl_expr_yy -s -B ssl_expr_scan.l
[toyota@dstar]$ /home/toyota/src/flex/flex-2.5.10/flex -Pssl_expr_yy -s -B ssl_expr_scan.l
[toyota@dstar]$ /home/toyota/src/flex/flex-2.5.21/flex -Pssl_expr_yy -s -B ssl_expr_scan.l
[toyota@dstar]$ /home/toyota/src/flex/flex-2.5.27/flex -Pssl_expr_yy -s -B ssl_expr_scan.l
[toyota@dstar]$ /home/toyota/src/flex/flex-2.5.33/flex -Pssl_expr_yy -s -B ssl_expr_scan.l
[toyota@dstar]$ /home/toyota/src/flex/flex-2.5.34/flex -Pssl_expr_yy -s -B ssl_expr_scan.l
ssl_expr_scan.l:62: bad character: /
ssl_expr_scan.l:62: bad character: *
ssl_expr_scan.l:62: bad character: `
ssl_expr_scan.l:62: bad character: `
ssl_expr_scan.l:62: unknown error processing section 1
ssl_expr_scan.l:62: unknown error processing section 1
ssl_expr_scan.l:62: unknown error processing section 1
ssl_expr_scan.l:62: unknown error processing section 1
ssl_expr_scan.l:62: unknown error processing section 1
ssl_expr_scan.l:63: unknown error processing section 1
ssl_expr_scan.l:63: unknown error processing section 1
ssl_expr_scan.l:63: unknown error processing section 1
ssl_expr_scan.l:63: unknown error processing section 1
ssl_expr_scan.l:63: bad character: .
ssl_expr_scan.l:63: bad character: '
ssl_expr_scan.l:63: bad character: '
ssl_expr_scan.l:64: bad character: -
ssl_expr_scan.l:64: bad character: -
ssl_expr_scan.l:64: unknown error processing section 1
ssl_expr_scan.l:64: bad character: *
ssl_expr_scan.l:64: bad character: /
[toyota@dstar]$ /home/toyota/src/flex/flex-2.5.35/flex -Pssl_expr_yy -s -B ssl_expr_scan.l

手元の Solaris9(sparc) では 2.5.33 のパッケージの flex でもエラーが出るの
だけど、Linux の場合は 2.5.34 の問題みたい。flex 自体は、2.5.31 以前では
セキュリティの問題があるので、2.5.4a か、2.5.31 以降を使うべき、みたいな
ようなのだけど。Solaris でも検証してみようかな。面倒だけど。

 3/15
Other
昨日の続き。昨日は Linux でテストしたけど、今日は Solaris9 で行う。flex の
各バージョンをダウンロードして、コンパイルしようとすると。

[toyota@samaria]% tar xvfz flex-2.5.35.tar.gz
[toyota@samaria]% cd flex-2.5.35
[toyota@samaria]% ./configure
〜snip〜
checking for flex... flex
checking for yywrap in -lfl... yes
checking lex output file root... configure: error: cannot find output from flex; giving up

flex のコンパイルに flex を使っているとか、良くわからない。これを lex に
変えてみる。

[toyota@samaria]% ./configure LEX=/usr/ccs/bin/lex
〜snip〜
checking for gm4... no
checking for gnum4... no
checking for m4... /usr/ccs/bin/m4
checking for GNU m4... no
configure: error: GNU M4 1.4 is required

GNU の m4 が欲しいらしい。m4 のコンパイル。

[toyota@samaria]% wget http://ftp.gnu.org/gnu/m4/m4-1.4.10.tar.gz
[toyota@samaria]% tar xvfz m4-1.4.10.tar.gz
[toyota@samaria]% cd m4-1.4.10
[toyota@samaria]% ./configure --help
[toyota@samaria]% ./configure
[toyota@samaria]% make
[toyota@samaria]% su -
[root@samaria]# /usr/local/bin/make install

flex のコンパイルに戻る。

[toyota@samaria]% ./configure LEX=/usr/ccs/bin/lex
[toyota@samaria]% make

問題なく、コンパイルできるようになった。続きは、明日。

 3/16
WWW
とりあえず、昨日作った flex で Apache 1.3.41 + mod_ssl 2.8.31-1.3.41 の
flex 部分を叩いてみる。環境は昨日の続きなので Solaris 9(sparc)。

[toyota@samaria]% cd src/apache/apache_1.3.41/src/modules/ssl
[toyota@samaria]% /export/home/toyota/src/flex/flex-2.5.35/flex -Pssl_expr_yy -s -B ssl_expr_scan.l

エラーが出ない。ちょっと、疑問になったので、パッケージの 2.5.33 でやって
みることにした。

[toyota@samaria]% where flex
/usr/local/bin/flex
[toyota@samaria]% /usr/local/bin/flex -Pssl_expr_yy -s -B ssl_expr_scan.l

あ。エラーが出なくなった。この前は、わざわざ flex-2.5.4a を入れてコンパイル
したのに、なんでエラーが出なくなったのだろう。ちょっと不思議だ。色々と
確認したけど、やっぱり再現せず。パッケージで flex を入れた後、rehash を
しなかったとか、それだけの問題だったのかなぁ。

 3/17
WWW
昨日の件、再再現するように環境を戻してみた。

[toyota@samaria]% flex -Pssl_expr_yy -s -B ssl_expr_scan.l
flex: fatal internal error, exec failed

このエラー flex のバージョン依存ではなく、m4 がインストールされていないと
起きることがわかった。ただ、flex 2.5.4 の場合は、m4 を使っていないらしく、
m4 がなくても、このエラーが発生しない、という結論が出た。なんだか、どうでも
良いことにすごい時間を使ったな。原因がわかってスッキリとした気分だけど。

 3/18
Network Other
とある cgi で、メールアドレスが登録できないから見てくれ、と言われる。人の
作ったプログラム見るの、あんまり好きじゃないけど。かと言って、自分の作った
プログラムも見づらかったりするけど。そんな話は置いて、登録できない人の
メールアドレスは name@example.mobi のようなメールアドレスで、TLD が mobi
である。この4文字が問題なんでしょう、と見てみたら、やはりそんなコードに
なっていた。今まで、問題なかったのは .mobi とか .info, .name みたいな、
4文字以上のドメインでの登録がたまたまなかったからみたい。正規表現の部分を
ちょっといじって解決。調べてみたら、今は .museum と .travel の6文字の
ドメインが最長みたい。面倒なんで、TLD の文字数制限は外したけど。

 3/19
Other
久しぶりに FreeBSD なんか触ってみた。で、ls の結果をカラーで見たい、なんて
言われて調べてみると、FreeBSD の場合は -G オプションを付ければ色付きで
表示されるようになった。ログイン時に alias で -G を追加するようにして、
解決。なのだが、その設定を何気なく Linux に持っていってしまって、ls の
表示の結果にグループが表示されなくなってしまい、何が起きたのか最初さっぱり
わからなかった。OS の違いって、今でも大きい。

 3/20
Other
今日も FreeBSD 。他人が作った環境なんで、不満だらけなんだけど、ログインの
shell が /bin/sh というはどうかと。共有アカウントなので、個人的に使いたい
tcsh にしたら文句言われそうなんで、bash に変えようと。そういえば、FreeBSD
には /etc/shells なんてファイルがあって、制限があるのだった、と思い出して
見てみると、bash はなくて、/usr/local/bin/bash2 になっていた。一応、bash も
確認してみると、/usr/local/bin に発見。詳細を見てみた。

[toyota@ilum]% ls -la /usr/local/bin/bash /usr/local/bin/bash2
-rwxr-xr-x  2 root  wheel  545148 Jan  4  2005 /usr/local/bin/bash
-rwxr-xr-x  2 root  wheel  545148 Jan  4  2005 /usr/local/bin/bash2

あ、ハードリンクで同じものみたい。動作は違うかもしれないけど。とりあえず、
気にせずにログインシェルを bash2 にしてみた。なんか、個人的には sh という
2文字で終わってないのは、気持ち悪い気もするけど。

 3/21
WWW Linux
Apache 1.3.41 + mod_ssl 2.8.31 の話。Port 番号を指定しても、その番号が
反映されない。ポート番号周りの httpd.conf は以下のような感じ。

Port 80
<IfDefine SSL>
Listen 443
</IfDefine>

な感じ。source からインストールしたからこんな感じにしたのだけど。このとき
https でのアクセスはできて、http でのアクセスができない。どうしたもんかな、
と、この Listen を消してみたらhttp でのアクセスができるようになった。という
ことで、Apache のページで調べてみた。

ポート番号を指定している Listen や BindAddress がなければ、主サーバ内 
(<VirtualHost> セクション外) に記述することによって、サーバが listen する
ポートの番号を指定できます。Listen 若しくは BindAddress において :number と
いった指定がされていれば、Port はサーバが listen するポートには影響しません。

ということらしい。つまり、Listen が1つでもあると、それが優先される。無いと
Port が有効になるみたいである。なんだかややこしい。

 3/22
Other Linux
perl のスクリプトを別のサーバで実行したら、
Malformed UTF-8 character なんたら
とエラーを吐いた。で、スクリプトのエラー以外とは関係ない部分を削除して、
以下のようになった。

[toyota@dstar]$ cat test1
た。
[toyota@dstar]$ cat test.pl
#!/usr/bin/perl
use Jcode;
my $file = "test1";
open(TMP, $file);
$buf = <TMP>;
$buf = Jcode->new($buf)->h2z->jis;

これで実行すると。

[toyota@dstar]$ ./test.pl
Malformed UTF-8 character (overflow at 0xca03a232, byte 0x5a, after start byte 
0xbf) in substitution (s///) at /usr/lib/perl5/site_perl/5.8.0/i386-linux-threa
d-multi/Jcode/_Classic.pm line 393, <MAILTEMP> line 1.
Malformed UTF-8 character (overflow at 0xca03a232, byte 0x5a, after start byte 
0xbf) in substitution (s///) at /usr/lib/perl5/site_perl/5.8.0/i386-linux-threa
d-multi/Jcode/_Classic.pm line 393, <MAILTEMP> line 1.
Malformed UTF-8 character (overflow at 0xca03a232, byte 0x5a, after start byte 
0xbf) in substitution (s///) at /usr/lib/perl5/site_perl/5.8.0/i386-linux-threa
d-multi/Jcode/_Classic.pm line 393, <MAILTEMP> line 1.

が出る。長いので改行を入れたけど。調べてみたら、これは Perl 5.8.0 + 環境
変数 LANG が en_US.UTF-8 のときに発生する問題のようである。とりあえず、
LANG を変更して対応したけど、なんかもっと良い方法はないものか。

 3/23
Other Linux
昨日の続き。なんとか、Perl のスクリプト内で解決できないものかと。ダメもとで
ENV で書き換えてみた。

[toyota@dstar]$ cat test.pl
#!/usr/bin/perl
$ENV{'LANG'} = "C";
use Jcode;
my $file = "test1";
open(TMP, $file);
$buf = <TMP>;
$buf = Jcode->new($buf)->h2z->jis;

結果は変わらず。仕方なく man とかを眺めていたら、man perllocale で setlocale
なんてあったのでやってみた。

[toyota@dstar]$ cat test.pl
#!/usr/bin/perl
use POSIX qw(locale_h);
setlocale(LANG, "C");
use Jcode;
my $file = "test1";
open(TMP, $file);
$buf = <TMP>;
$buf = Jcode->new($buf)->h2z->jis;

これも、結果は変わらず。man perllocale では。

The locale-determining environment variables (see "ENVIRONMENT")
must be correctly set up at the time the application is started,
either by yourself or by whoever set up your system account.

とあるので、ダメなのかもしれない。仕方ない、呼び出し shell を書くか。

 3/24
Other
久々に Visual Studio なんて触ってみた。さっぱり概要が掴めない。これでも
数年前は Visual Studio で開発してたことがあったのに。すっかり Windows じゃ
ない人間になってしまっているので、ちょっと頭を GUI ベースに戻さないと。

 3/25
Other
Visual Studio でアプリケーションを作成してみた。早速、実行すると、

MSVCR80.dll が見つからなかったため、このアプリケーションを開始できませんでした。
アプリケーションをインストールし直すとこの問題は解決される場合があります。

と。コンパイルした PC で、何故こんなメッセージが出るんだ、と。そんな感じで
今日も色々とハマる。Windows はもう勘弁して欲しい。

 3/26
WWW Linux
Apache で cgi の動き。Status 302 を返すときは、

#!/bin/sh
echo Location: http://www.tatsuyoshi.net/index.html
echo

のように Location ヘッダと空行を入れれば、Apache が 302 を返してくれる。
おまけに自動的に Content-Type: なんかを付けてくれるし、ボディ部分も勝手に
作ってくれて表示される。これはこれで便利なのだけど、あえて

#!/bin/sh
echo Status: 302 move
echo Location: http://www.tatsuyoshi.net/index.html
echo

とすると、全く違った動作になる。Content-Type: は付けてくれないし、ボディも
空のものになる。逆に言うと、ボディ部分が手動で書き換えられるのだけど、
Status があると無いとでは色々と動きがちがうので、モジュール関係でちょっと
問題が出て、特別な処理が必要になった。えらい面倒。

 3/27
Other
なんだか、最近仕事場で使わせてもらっている ThinkPad がうまく休止状態を
してくれない。それが PC を起動しなおした後の最初の1回は問題ないのだけど、
2回目からうまくいかないくなる。この状態で色々と実験してみた。試しに、
サスペンドをしたが、同じく駄目。いつもはここであきらめて、電源を落とすの
だけど、Skype を落としたり、Poderosa を落としたりと、色々やってみたけど、
現象が変わらず。ふと、いつも起動しっぱなしの Firefox を落とすと、なんと
うまく休止状態になった。休止状態にしたい理由の1つが Firefox をそのままの
状態で保存したいからなのに。困ったもんである。

 3/28
WWW
Apache 2.x のモジュールを作成するときに special.mk というファイルが必要に
なるのだけど、このファイルが source からインストールした場合と rpm で入れた
場合とではファイルの場所が違う。configure のときに prefix でデフォルトの
インストールディレクトリを変更した場合も /usr/local/apache といった場所では
ない場所にインストールされる。special.mk の場所を httpd のオプションか何かで
知ることはできないものかと思って、色々と試してみたけど、ダメだった。結局、
find コマンドなんかを使ったのだけど、うまく知る方法はないもんなのかなぁ。

 3/29
Other Linux
Linux のソフトウェアなんだけど、速度が遅いとの事で、改善が必要になった。
ファイルの書き込みを行うところで、何度も fwrite している部分があったので、
これをまとめると早くなるか、実験してみた。まずは、元の形。

[toyota@dstar]$ cat test.c
#include<stdio.h>
int main(){
  int i,j;
  FILE *fp;

  fp = fopen("test", "a");
  for(i=0;i<16777215;i++){
    for(j=0;j<20;j++){
      fwrite("a",1,1,fp);
      fwrite("\t",1,1,fp);
    }
    fwrite("\n",1,1,fp);
  }
  close(fp);
}
[toyota@dstar]$ time ./a.out 

real    1m15.182s
user    1m12.680s
sys     0m1.660s

遅いので、一度文字列に突っ込んでみて、速度を計ってみた。

[toyota@dstar]$ cat test.c
#include<stdio.h>
int main(){
  int i,j;
  FILE *fp;
  char test[42];

  fp = fopen("test", "a");
  for(i=0;i<16777215;i++){
    test[0] = 0;
    for(j=0;j<20;j++){
      sprintf(test,"%sa",test);
      sprintf(test,"%s\t",test);
    }
    sprintf(test,"%s\n",test);
    fwrite(test,41,1,fp);
  }
  close(fp);
}
[toyota@dstar]$ time ./a.out 

real    3m46.924s
user    3m44.340s
sys     0m1.790s

余計に遅くなった。ファイルの書き込みのキャッシュの影響なんでしょうか。
文字列に入れずに、直接書いてみた。

[toyota@dstar]$ cat test.c
#include<stdio.h>
int main(){
  int i,j;
  FILE *fp;

  fp = fopen("test", "a");
  for(i=0;i<16777215;i++){
    fwrite("a\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\ta\t\n",41,1,fp);
  }
  close(fp);
}
[toyota@dstar]$ time ./a.out 

real    0m17.294s
user    0m2.810s
sys     0m1.690s

とんでもなく早くなった。やっぱり、1回で済ませられることは、まとめた方が
良い、ということみたい。

 3/30
WWW
ここのところ、User-Agent が

PHP version tracker (http://www.nexen.net/phpversion/bot.php)

な ROBOT がちょくちょく来る。送信元は、ほとんどが tabarnak.nexen.net と
modemcable098.51-82-70.mc.videotron.ca からで、ちょっと気持ちが悪いので、
この nexen.net について調べてみた。www.nexen.net はフランスにあるサーバの
ようで、アクセスしてみると、この ROBOT の統計データなんかがあって、取得した
データをちゃんと公開しているみたい。思ったより悪いところじゃないのかも。

 3/31
WWW
DoCoMo の携帯電話から i-mode ID が付くようになった。今日から既に適用されて
いるのは良いけど、詳細発表も今日、というのはいかがなものか。で、端末から
やってみたら、ちゃんと取れた。

GET /test.html?guid=ON HTTP/1.0
Host: www.tatsuyoshi.net
User-Agent: DoCoMo/1.0/P506iC/c20/TB/W30H14
If-Modified-Since: Mon, 31 Mar 2008 08:06:24 GMT
X-DCMGUID: xxxxxxx

な、感じ。DoCoMo はヘッダが短くて特徴があったのに、ヘッダに付くとは。
21st projects Tatsuyoshi Networks Prompt Works
by Tatsuyoshi since 2003