大別するとバグには3種類のものがある。
たとえば、「敬意」と「敵意」を打ち間違えたりとか、「.(ピリオド)」と「,(カンマ)」を打ち間違えたりとか、である。単純なミス。でも、この単純なミスは、時折、インパクトを与えている。異常終了して某地方で銀行のATMを止める程度で済むものもあれば、異常終了して人工衛星が海に墜落する、というものまで、いろいろ発生している。
「プログラムは夜作られる(9〜5時の間には作られない)」という格言(?)がある。
……ということは、一万や二万語の命令を打ち込んでいると、寝不足の混乱した頭に操られる手は、C言語のIf文の中の等号を一つだけにしたりとか、ポインタ記号をどこかに置き忘れたりとか、文字数を指定して変数にコピーすべきところを忘れたり、とか「アンネロゼはハイネセンの地を離れなかったが」とか、間抜けたコトを書いてしまいかねない、ということでもある。今日の某OSセキュリティホールのいくつかは、確実に、コレ。
でも、発見は早期に可能で、修正も早期に可能、(データのリカバリーは少々難しいかも)。要するに、「文字の打ち間違い」の応用編だからである。しかし、問題は、次のもの。
さて。表ページの蔵書一覧所収「イズァローン伝説」著者の竹宮氏には申し訳ないが、「想定外の事態のバグ」を「イズァローンバグ」と名づけさせていただいた。
「イズァローンバグ」の最大被害は、某航空会社のオートパイロットのバグで墜落したというものである。
もちろん、オートパイロットのメーカーは「バグ」を認めようとはしなかった。ついでに言うと、航空会社は「操縦ミス」も認めようとしなかった。
「イズァローン伝説」という少女漫画は、実に秀逸なファンタジーである。
御伽噺満開で、ストーリー構成も、申し分ないといえよう。ただ、ひとつ問題があった。
ファンタジーな世界の住人は、当然のように、われわれとは異なる言語を話してくれている。
「星界」シリーズ(小説兼漫画化作品)は「くどい」ぐらい漢字にルビを振っているが、竹宮氏の「イズァローン伝説」では、概ね、ルビが適度に抑えられていて品が良い。ある語を読むまでは。
ファンタジーの世界でも酒はほどよく嗜まれているようである。杯を開けるときの掛け声も用意してある。
「乾杯!」……これだけでは寂しいと感じたのであろう。竹宮氏はルビを振る、架空の言語で。
「レ・ズー!」(・_・;)ハァ???
ちなみに、その心の叫びを真摯に受け止めて発揮したもののひとつが「銀のヴァルキュリアス」であるといえよう。
想定外のバグを「イズァローンバグ」と名づけた真の理由。じつは、偶然、蔵書一覧表の「イズァローン伝説」の欄がバグっていたからである。それこそ、想定外のバグで。
蔵書一覧表の出力プログラムは、「ビデオリスト」と統合、さらには「操作性向上」のため、仕様変更・プログラム修正を行っている最中であった。
しかし、セキュリティの観点から出力すべきでない書物については、ウェブには出力しない。
また、同じ表名で管理している書籍とビデオについては、書籍のみがウェブページに出力される。
要するに、イズァローン伝説と直前の書籍の間にビデオデータが入っていたため、「イズァローン伝説」のページのテーブルレイアウトが崩れたのである。
なぜならば、何の疑いもなく、表名の列数を数えて、そのままウェブページの列数を設定していたからである(つまりビデオや出力しない書物までカウントして列数設定していた、というわけ)。