地球が一周したくらいで騒ぐのもなんですが、明けましておめでとうございます。
お米を切らしてしまいました。お店はまだやってないので、買うことも出来ません。年末にストックしておくべきでした。
年始ってことで、カレンダーでも(何故)
六曜の算出には旧暦が必要なわけですが、旧暦計算にはとても時間がかかります。一年間(365日)分の旧暦算出に、jperl(Win) + Athlon XP 1600+ で約11秒。300年(約11万日)分算出するのに50分以上かかりました。まあ、予め算出しておけば次回以降はそれを使うだけですから、計算を省ける分高速化に繋がるでしょう。
せっかく計算したんだからPostgreSQLに突っ込んでおくのもいいかも。
今のところ、出力形式をHTMLにしているのですが、例によってタグの山が生成されるおかげでファイルサイズがバカでかくなっています。1ファイルが100KB以上になる上に、テーブル要素が12個(1年分)ですから、レンダリングにもそれなりに時間がかかります。かといって月ごとの出力だと、今度はファイル数が増える(単純計算で12倍)わけで、それはそれで困ります。
いっそのこと、年別と月別、両方作ってしまおうかと。
無洗米が欲しいんですが、無洗米だけ売り切れのようです。ついてないなぁ。
処理高速化と各種モジュール追加。って年明け早々何やってますか。
200年分以上(1873年から2100年)のカレンダーが出来たんですが、一つ一つがかなりでかいので、表示に時間がかかります。とりあえず、今年の分だけ。旧暦、六曜、日の六十干支は、精度未確認です。間違ってるかもしれませんので悪しからずご了承ください。
重量版を全部公開すると、ロボットが全部さらっていってトラフィックが大変なことになりそうなので、公開しません。ZIP圧縮しても3MBもあるし。
春分日、秋分日の算出方法が間違っていたので修正しました。簡易計算ではダメということで計算方法を変更。太陽黄経から二十四節気を割り出し、そこから春分、秋分を取り出すことにしました。
太陽黄経の計算にはそれなりに時間がかかるため、二十四節気の算出結果もテーブル化しておきました。
日の干支と二十四節気を見なければならないようです。面倒ですね。こいつもテーブル化してしまいましょうかね。
<noframes>このページをご覧いただくにはフレーム対応のブラウザが必要です。</noframes>
んなこと言われてもねぇ。lynxだし…
<noframes>フレーム・サポートブラウザで見て下さい。</noframes>
イヤです。
<noscript>JavaScriptに対応していません。</noscript>
余計なお世話です。
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)
メモ。
DateTime::Util::Astro::Sunをインストールするために、足りない非標準モジュールをインストールしていました。20個以上インストールしたような気がしますが、よく覚えてません。途中で嫌になって数えるのをやめました。GMP(非perl)なんかもインストールしましたよ?
いつものように飛んでくるPatra *1 からの熱烈なラブレター *2 が、今日は珍しく飛んできません。不思議に思ってログを見たところ、ログサイズが全て0。…ありえない。最低でも「スキャン不要」くらいのメッセージは残すはずなのに…プログラムが落ちていればcronがメールを飛ばすはずなのに…
いろいろ調べていくうちに、昨日の作業が影響していることが判明。昨日インストールしたうちのモジュールの名前が、自分の作ったモジュールの名前とダブっていたのが原因のようです。いつかバッティングするだろうとは思いながらも放置していたモジュールなんですが、とうとうぶつかってしまいました。さすがにDateTimeはまずかったか… よく今まで大丈夫だったなぁ、と妙に感心したのでした。<感心してないで直せ
DTDを読み間違いしていることが発覚しました。+(ELEMENT)
の解釈が間違っています。何を今更気付いてやがる、って感じです。これは
ELEMENT
が直接含まれるのではなく、子孫代々に渡って含まれるという意味です。
さっそくソース修正…したいところですが、大変だこりゃ。一年半前の自分が書いたソースを見てて、書いたやつを呪い殺してやりたくなりました。