012 2000/1/31 新世紀における表現手段

[ 前回 ] [ 次回 ] [ 戻る ]


2000年にはなりましたが、いろいろと不具合は起こっているようで。え?2000年問題はもう終わったって?いえいえ、そんなことは決してありません。個人的にはまずありえないと思っていた閏年関連の問題もあったみたいですし、気を引き締めるのはこれからではないでしょうか。(バックアップ先を2/29に指定できないソフトもあったようですし)
まあ、結局はプログラムする側のバグなわけですから、いくらチェックしてみても落ちるときは落ちる。最後はどれくらいの時間で不具合から復帰できるか、の方が問題かもしれません。

で、前置きはこれくらいにして。最近、2000年問題を解決したことについての話です。(重要でないものはこーゆー風になる)

**

hypermailというソフトがあって、メールの情報をHTML化してくれる(ついでにreferenceも調べてリンクを張ってくれる)というソフトがある。メーリングリストのHTML化には結構役立つツールで、majordomoとかと一緒に使うと結構検索(kakasiとかを併用)とかで楽ができる。
で、このソフト。2000年に入ってから処理が途中で止まってしまうようになった。性格には、2000年以降に作成されたファイルができて、それを読むようになってから起こっている。プロセスをみていると、どうやら無限ループ状態になっているらしい。ほとんど誰も使っていないので放っておいたのだが、ちょうど時間が空いたので調べてみることにした。
問題の入力ファイルは…まあ、確かにDate部分が2000年にはなってはいるが…。ちょっと1999に変えて試してみる。…おや、動いた。まあ、なんと言うかってことだが。これだけでは皆目見当がつかないので、ソースから追っていくことにする。しかし、C言語のリストを見るのも久しぶりだなあ。
該当する部分を調べていっても、Date関連部分はちゃんと動いている。別に問題があるのかなあ、と考えて、何気なく「 grep 19 *.[ch] 」。…は?
これ何?

#define CENTURY 1900

あからさまに怪しい^^; ひょっとして…。1900を2000に変更。…動くじゃん。
というわけで、あっけなく解決…してないな。2時間かかったことだし。しかも本当にちゃんと動いているのか確認していないという。まあ、いいか、全然重要なものじゃないから、その時はその時、としよう。

まあそれはそれとして、まだ残された問題がある。(分かると思うけど)それは…。

2100年問題


という重い問題を後世に残していくのであった。
(そんなにでかい問題じゃないだろ)