日記

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直接含まれるのではなく、子孫代々に渡って含まれるという意味です。

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