日記

1月 1日 (木)

1. 新年

地球が一周したくらいで騒ぐのもなんですが、明けましておめでとうございます。

1月 3日 (土)

1. 迂闊なっ

お米を切らしてしまいました。お店はまだやってないので、買うことも出来ません。年末にストックしておくべきでした。

2. Calendar

年始ってことで、カレンダーでも(何故)

2.1. 六曜

六曜の算出には旧暦が必要なわけですが、旧暦計算にはとても時間がかかります。一年間(365日)分の旧暦算出に、jperl(Win) + Athlon XP 1600+ で約11秒。300年(約11万日)分算出するのに50分以上かかりました。まあ、予め算出しておけば次回以降はそれを使うだけですから、計算を省ける分高速化に繋がるでしょう。

せっかく計算したんだからPostgreSQLに突っ込んでおくのもいいかも。

2.2. サイズ

今のところ、出力形式をHTMLにしているのですが、例によってタグの山が生成されるおかげでファイルサイズがバカでかくなっています。1ファイルが100KB以上になる上に、テーブル要素が12個(1年分)ですから、レンダリングにもそれなりに時間がかかります。かといって月ごとの出力だと、今度はファイル数が増える(単純計算で12倍)わけで、それはそれで困ります。

いっそのこと、年別と月別、両方作ってしまおうかと。

1月 4日 (日)

1. 米

無洗米が欲しいんですが、無洗米だけ売り切れのようです。ついてないなぁ。

2. Calendar

処理高速化と各種モジュール追加。って年明け早々何やってますか。

200年分以上(1873年から2100年)のカレンダーが出来たんですが、一つ一つがかなりでかいので、表示に時間がかかります。とりあえず、今年の分だけ。旧暦、六曜、日の六十干支は、精度未確認です。間違ってるかもしれませんので悪しからずご了承ください。

重量版を全部公開すると、ロボットが全部さらっていってトラフィックが大変なことになりそうなので、公開しません。ZIP圧縮しても3MBもあるし。

1月 5日 (月)

1. Calendar

1.1. 二十四節気

春分日、秋分日の算出方法が間違っていたので修正しました。簡易計算ではダメということで計算方法を変更。太陽黄経から二十四節気を割り出し、そこから春分、秋分を取り出すことにしました。

太陽黄経の計算にはそれなりに時間がかかるため、二十四節気の算出結果もテーブル化しておきました。

1.2. 九星

日の干支と二十四節気を見なければならないようです。面倒ですね。こいつもテーブル化してしまいましょうかね。

2. 無意味な no*** 要素

<noframes>このページをご覧いただくにはフレーム対応のブラウザが必要です。</noframes>

んなこと言われてもねぇ。lynxだし…

<noframes>フレーム・サポートブラウザで見て下さい。</noframes>

イヤです。

<noscript>JavaScriptに対応していません。</noscript>

余計なお世話です。

1月 6日 (火)

1. Julian day

PostgreSQL 7.4 のユリウス日って、おかしくないですか?グレゴリオ暦で言うところの「正午」に切り替わるはずなんですが。

foo-> select to_char(timestamp'J2453011', 'YYYY-MM-DD HH24:MI:SS');
       to_char
---------------------
 2004-01-06 00:00:00
(1 row)
foo-> select to_char(timestamp'J2453011.5', 'YYYY-MM-DD HH24:MI:SS');
       to_char
---------------------
 2004-01-06 12:00:00
(1 row)

2. 腐女子の行く道、萌える道: 恋する英単語

メモ。

1月 7日 (水)

1. calendar

約20年分。通年と月別に分けたので、1ファイル20KB〜40KBに収まりました。

今後はモジュールを追加するだけで出力項目もファイルサイズも増えていく、と。

1月 8日 (木)

1. Solar longitude

DateTime::Util::Astro::Sunをインストールするために、足りない非標準モジュールをインストールしていました。20個以上インストールしたような気がしますが、よく覚えてません。途中で嫌になって数えるのをやめました。GMP(非perl)なんかもインストールしましたよ?

1月 9日 (金)

1. No mail

いつものように飛んでくるPatra *1 からの熱烈なラブレター *2 が、今日は珍しく飛んできません。不思議に思ってログを見たところ、ログサイズが全て0。…ありえない。最低でも「スキャン不要」くらいのメッセージは残すはずなのに…プログラムが落ちていればcronがメールを飛ばすはずなのに…

いろいろ調べていくうちに、昨日の作業が影響していることが判明。昨日インストールしたうちのモジュールの名前が、自分の作ったモジュールの名前とダブっていたのが原因のようです。いつかバッティングするだろうとは思いながらも放置していたモジュールなんですが、とうとうぶつかってしまいました。さすがにDateTimeはまずかったか… よく今まで大丈夫だったなぁ、と妙に感心したのでした。<感心してないで直せ

  • *1: リンク集自動更新プログラム
  • *2: エラー通知メール

2. HTML tiny reference

DTDを読み間違いしていることが発覚しました。+(ELEMENT)の解釈が間違っています。何を今更気付いてやがる、って感じです。これは ELEMENT直接含まれるのではなく、子孫代々に渡って含まれるという意味です。

さっそくソース修正…したいところですが、大変だこりゃ。一年半前の自分が書いたソースを見てて、書いたやつを呪い殺してやりたくなりました。

1月 10日 (土)

1. tcpdump

tcpdumpで遊んでました。面白いですね、これ。(遊ぶものじゃねー)

2. 循環リダイレクト

www.i-o.jp:80HEAD http://www.i-o.jp/notFoundError.htm HTTP/1.0を投げたら

HTTP/1.1 302 Found
 ...
Location: http://www.i-o.jp/notFoundError.htm
 ...

が返ってきました。勘弁してください。

3. HEAD

HEADを投げると無条件で404 Not Foundを返すってのはどうかと思います。Netscape Enterprise Server ...

4. RBA

RAGNAROK BATTLE ADVENTURE、ソロプレイでクリアできました。なるほど、VIT剣士にすればいいのですね。最終的にVIT81、HP4788で、驚異的な自然回復力にものを言わせての力押しでした。

1月 11日 (日)

1. メモ

1月 12日 (月)

1. パソコン再起動アダプター

メモ。

1月 13日 (火)

1. www.zdnet.co.jp:80

 GET / HTTP/1.0
HTTP/1.1 403 Forbidden
Date: ...
...
Content-Type: text/html

<META http-equiv="refresh" content="0;URL=http://www.itmedia.co.jp/">

…もうね、ア(略)

1月 15日 (木)

1. MySQL

1.1. MySQL 4.0.17 インストールメモ

shell# groupadd mysql
shell# useradd -g mysql -s /bin/false mysql
shell> tar -zxvf mysql-4.0.17.tar.gz
shell> cd mysql-4.0.17
shell> ./configure --prefix=/usr/local/mysql --with-charset=ujis
shell> make
shell# make install
shell# ./scripts/mysql_install_db
shell# chown -R root  /usr/local/mysql
shell# chown -R mysql /usr/local/mysql/var
shell# chgrp -R mysql /usr/local/mysql
shell# cp support-files/my-medium.cnf /etc/my.cnf
shell# /usr/local/mysql/bin/mysqld_safe --user=mysql &
shell# /usr/local/mysql/bin/mysqladmin create mydb
shell# /usr/local/mysql/bin/mysql mydb

ユーザ設定はハマりやすいですねー。繋がらないとか、繋がらないとか、繋がらないとか、…ホストを指定するのがポイントですかね。

grant usage on *.* to xxxx@localhost identified by 'zzzzzzzz';
grant all on mydb.* to xxxx@localhost;
flush privileges;
quit
shell> /usr/local/mysql/bin/mysql -u xxxx -p mydb
shell# /usr/local/mysql/bin/mysqladmin shutdown

インストールに関しては、本家とか日本MySQLユーザ会のサイトを見るよりも、tarball内のINSTALL_SOURCE(2153行目付近)を読んだほうがマシです。公式サイトのドキュメントはあまり役に立たないというか、読む気になれないですね。体系化されてない感じがします。

1.2. 使い道

インストールしてはあるものの、まるで使い道がなくて放置状態です。現状、PostgreSQLで間に合ってますから。RFCでもぶち込んでみましょうかね(何故)

2. BBS

投稿直後のリロード(二重投稿)対策って、どうやってるんでしょう。直前の投稿と、件名、投稿者名、内容、IPアドレスなんかを比較して判断するのでしょうか。単純に最終書き込み時刻だけを見るのは、実装は楽でいいのですが、ユーザ側の使い勝手は悪くなりそうです。IPアドレスくらいは見たほうがいいかもしれません。

1月 18日 (日)

1. Another HTML lint

メモ。Another HTML lintのディレクトリ構成や自身のHTMLはかなりアレなんで、なんとかしたいなぁ、と。

文法へのリンク
「文法」を動的に生成する意味がないので静的コンテンツ grammar/*.html とする。これに伴い、リンク修正。
文法リスト(三重管理になっている)
htmllint.html : 必要。マスターとする。
explain.html#unknown-doctype : 文書型宣言のみ残す。文法へのリンクは不要
tagslist.html : ファイルそのものが不要。
ナビゲーションはリスト
目次はテーブルじゃなくてリスト
colorsbk.html 不要
colors.html 代替スタイルシートで背景色切替。
ディレクトリ構成
CGIディレクトリにはCGIに不要なものを置かない。
/public_html
  /cgi-bin
    htmllint.cgi
    htmllint.env
    htmllintrc
  /htmllint
    *.css
    *.html
    /grammar
      *.html
    /image
      *.gif
/private_dir
  /htmllint
    /rule
      *.dtd
      *.ent
      *.rul
      parsedtd.pl
    /lib
      httpreq.pl
      htmllint.pm
      RFC2396.pm
    /logs
    /tmp

うまくいくかなぁ。

1月 19日 (月)

1. enqueue

  • 朝霧の巫女 (4)

1月 21日 (水)

1. 一致パターン参照変数

Perlの正規表現一致パターン参照変数($1 ,$2 , ...)って、1〜9までだと思ってたんですが、10以降もあるんですね。初めて知りました。

$n = 100;  # 1000でも10000でも。
$re = '(.)' x $n;
($a, $p) = ('', '');
for (1..$n) {
  $a .= $_ % 10;
  $p .= "\$$_;";
}
$a =~ m/$re/;
eval 'print "' . $p . '"';

いくらでも参照できそうですね。

1月 24日 (土)

1. pg

cygwin環境にPostgreSQL 7.4.1をインストールしました。PostgreSQL自体はいいのですが、PerlモジュールのDBD::Pgが動作しません。make testでエラーが出てしまいます。エラーを無視して強引にインストールしてみましたが、DBI->available_drivers;でDBD::Pgだけ取得できませんでした。ま、当然か。

おとなしくLinux上でやるか…

1月 25日 (日)

1. 買い物

アキバでお買い物。

帰りにデニーズでコーヒーを啜りながらまったりと本を読んでいたら、20時を過ぎてしまいました。シャーロック・ホームズはなかなか面白いですよ。

1.1. 帰ってから気付く

  • 電脳社会の日本語も買っておけば良かったな、と。
  • 買ってきたマウス、結構でかいな…

2. FEP

うちのIME2000、使えば使うほどバカになっていく。何を「学習」してるんだか。

3. wanted

去年買おうと思ったゲーム、THE地球防衛軍以外ことごとくハズレでした。実際に買ってプレイしたのはマクロスだけですが、ホイホイさんもWA alter code:Fも評判はよろしくないようで、買わなくて良かったと思いました。ハズレ年でしたねー。

今年はいいゲームに逢いたいなー、と。

中古品を漁る事になりそうですが。

あー、風ザナは未プレイ。

それからROもMUもFFもリネもリアルワールドに帰って来られなくなりそうなのでやりません。

1月 27日 (火)

1. Apache on cygwin

cygwin環境でApache1.3を稼動させてみたのですが、今ひとつ安定しません。GETの返答が遅かったり、POSTなんかは返ってすらこなかったり。なんでだろー。

つーわけで、cygwinはやめてApache 2.0.48(Win32)だけにしました。まあ、2つも必要ないですから。だったらインストールするなって。

1月 29日 (木)

1. XML Parser

Xercesって、結構細かいチェックもしてくれるものですね。ちゃんとDTD読んでるし。侮れません。

2. セキュリティ: IE に一見普通のファイルを実行可能な凶悪バグ

次から次へと、よくもまあ。OSと並んで、話題の尽きないブラウザですねー。

HTML,XMLパーサ、レンダラ共々作り直したほうがいいんじゃないかと。マジで。

3. 数学的帰納法と三段論法

数学的帰納法の説明が…(笑)