仕事をしていて一番困る言葉がある。「もうこし小さいチップになりませんかねえ」とか「すいませんが納期を半月程短くしていただけないでしょうか」とかでは無い。もちろんそういうのも大変困るのだが。
ある日仕事でロムライタが必要になった。長いこと使っていてなかったので欠品やら、ファームウェアのバージョン問題とかいろいろ不具合があったのだがなんとか使えるようにした。ところがある日。
「このケーブルはなんだ」
彼の指差す先には私が作ったクロスコネクタがくっついたシリアルケーブルがあった。
このロムライタはシリアルクロスケーブルでパソコンやワークステーションと接続するタイプのもので当然ながらマニュアルにはケーブルの結線図がついている。でたまたま職場にはクロスケーブルもコネクタもあいている物が無かったので私がそこらに転がっていた物をありあわせて作ったのだ。私はその旨を説明した。
「メーカー製のRS-232Cケーブルじゃ無いとだめじゃないか。」
いあ、ATの9pinシリアルにくっついている時点でRS-232Cじゃないんですけど,,と言うツッコミをこらえて。結線チェックはもちろんやっている事と、転送するデータにはチェックサムという仕組みが採用されていること、転送する方式自体にもパリティ付きの物を使っていること、これら二つのエラー検出によって転送さえ完了すればかなりの確率で転送したデータと元のデータの同一性は保たれることを語る。
「メーカー純正じゃ無いと保証が無いじゃないか、そんなもので絶対大丈夫といえるのか」
いあ、絶対なんて保証は私はしませんよ、パリティも偶数個のビットの誤りは検出できないし、チェックサムだってたまたま同じ結果が出るようなデータ化けを起こせば無力だ、ただ特にチェックサムの方はそんなデータ化けを起こす可能性は非常に少ない。大体純正のケーブルだろうが転送するデータの保証なんてしてない、保証なんてケーブルの断線などによる故障だけ。メーカーのエラーフリーケーブルだってこれから起こるエラーが絶対無いとは保証していない、エラーフリーというのは今までエラーが無かったという事実だけについて語られている。それだってエラーが起きたときはケーブルを交換してくれたとしてもエラーを起こしたデータそのものについて保証してくれるわけでは無い。大体ロムライタに転送するのに其処までの保証がいるんですか、どうせ焼いたROMは実験基板に使う分だけじゃないですか、その時にチェック出来ますよ。大量生産してコンシューマ向けに販売するんだったら別でしょうけど、そんときはロム焼くにしても専門の業者に任せるでしょうから、はなからこんなことはしません。だいたい、こんな実験室レベルのロムライタに何を求めてるんですか。
「お前が絶対を保証できないんだったら純正のにしておけ、いいな」
こいつ、聞く耳もっとらんな....
数日後、「おい、RS-232Cケーブル(まだ言ってる)は交換したのか」
ええ、交換しておきましたよ、家にあった奴を適当にみつくろってね。