第52話 次なる嫌がらせ
新しいプロジェクトが始まった。
研究所から例によって画像表示用のチップが届き、ついでに何かのプログラムがついてきた。チップを制御するためのドライバらしい。但し書きがついている。
「このプログラムは完璧なるメンバーが揃う研究所が作った完璧なプログラムです。決して中身を見てはいけません。ブラックボックスとして扱うように」
おいおい。呆れた。ブラックボックスうんぬんは好いが、必要な領域に使うメモリ、割込み、その他の情報がついていないようなアセンブラのコードなんて危なくて使えないぞ。
これまでありとあらゆる失敗を出してきた研究所の連中が何が完璧なのか?
Hさんが笑いながら教えてくれた。前回研究所が出したチップは嫌がらせのためにマニュアルがついていなかった。マニュアルが欲しければ土下座をしろ、というアレだ。
そこでカッとなったHさんはチップを徹底的に解析して自分でマニュアルを作った。研究所長の目を盗んでこっそりと裏で動き、設計者たちから回路情報を少しづつ聞き出して来たのだ。(いったいどこの企業ドラマだ?)
そしてその過程で無数のバグを見つけて報告した。
このチップはモニタ制御用である。ところが解像度の組み合わせでうまく動かないものがある。モニタ制御用チップとしては致命的であると言ってもよい。社外消費用の製品だったら、まず売れはしない欠陥商品である。
なにせ似たような商品はいくらでもある。特にピクセルワークス社やピクセルワークス社やピクセルワークス社である。
そしてピクセルワークスと研究所作成のチップは回路図がそっくりと同じだというのは回路図を覗いたN君の感想であった。
ピクセルワークス社の方がこの分野では老舗である。まあしかし同じ画像信号を処理するのだからその回路が似るのは当然であるが、なにせ研究所の連中は以前にTTL規格表の回路を何も考えずに自分の回路に組みこんで大失敗をしているので、コピーの切り貼りで回路を作るのはお家芸なのかもしれない。
このHさんの報告が研究所の所長を激怒させたらしい。膨れ上がったエゴの塊である研究所長に取っては、自分の所が間違っていると言われるのはどうしても我慢できないのだ。
そこで今度は間違いを見つけられないように、自分たちが作ったドライバソフトだけを使ってもらおうと考えたのだ。もちろんドライバAPIの使用説明はついていない。ここでも地道なイヤガラセだ。
絶対に中を見るなだって?
もちろん、見た。好奇心ではなく、あくまでも職業意識からである。得体の知れないプログラムを組み込んだ製品を大事なお客様に提供できるものか。
ケケケケケケケケケケ。(他人には見せられない笑い方)
見てからこれは見るのではなかったと後悔した。
こんな酷いプログラムを見るのは初めてだ。小学生でもこんなものは作らないだろう。何よりも致命的なのは、バスという通信線にノイズが一つでも乗ると、プログラムが暴走する作りになっていることだ。
アセンブラ言語を扱う上での鉄則の一つは、PUSHという命令とPOPという命令の数が合ってないといけないというのがある。これが合っていないとプログラムは絶対に暴走する。
この2つは絶対に絶対に絶対に揃っている必要がある。なのにそれが合っていない。
そしてバスという通信線には必ずノイズが乗るものだ。
こんなものを組み込んだりすれば製品にはならない。
厄介なことにバスにノイズがいつ乗るのかは完全にランダムだ。だから試験はパスしてお客さまの家庭に届き、そこで暴走するという可能性が大きい。それも数万操作につき一回というようにデバッグが非常に困難なタイプのバグだ。
一度嵌ったら抜け出せない迷路。この状況はプログラマにとっては悪夢と言ってもよい。
だがその場合はいったい誰の責任になる?
ファーム部隊の責任だ。
ドライバに関する詳細な報告書を作り、上に上げる。それからドライバに回避ルーチンを組み込む。
もちろん偉大なる研究所長の絶対命令だから、完璧なる研究所が作る完璧なプログラムを使わないわけにはいかない。
だから、この回避ルーチンはあくまでも試験運用のための一時的な処置だ。一時的な処置だから重要ではなく、そのために切替えスイッチを元に戻すのを忘れてしまうのも不思議はない。
よし。言い訳は完璧だ。
ケケケケケケケケケケ。
どのみち研究所の連中が自分たちの作った完璧なるプログラムとやらが確実に製品に組み込まれているのかを確認するはずもない。そこまでの職業意識がある連中ではないのだ。
しばらくして、不満たらたらの完璧なる研究所の連中が、完璧な修正を施した完璧なるドライバとやらを再度寄越して来た。
もちろん、製品に組み込むつもりはさらさらないが、とりあえずそれを使って動かしてみた。
画面を切替える。画面はまず横に縮み、それから縦に縮み、再び横に伸びると縦に変形し、さらに中心に縮んで点になるとそれが広がって横に伸び、それから最後に縦が合致して、ようやく次の画面に切り替わった。
その間なんと3秒。
どこの馬鹿がこんなものを作るんだ?
チャネルの切り替えのたびに、今のを見せるのか。いや、と意地悪く思った。これは研究所の作った通りに組み込んだものです。だから悪いのは研究所の連中です。そう言い訳する自分の姿が浮かんだ。
問題外。自分の職業意識が邪魔をする。それに何か問題があれば、原因が何であってもファームが悪いことにされる。管理職連中はN課長を覗いてひどいアホ揃いであり、そして私は昔からアホには本能的に憎まれるという運命を背負っている。
そこで問題のドライバのアクセス経路に罠をしかけ、調べてみた。
結果は何と一つのレジスタに最大で7回もアクセスしている。全部で合計23回アクセスとなる。1レジスタアクセスには最低で100msかかるので、それだけで2.3秒が消える計算となる。なるほど遅いわけだ。
実験段階ではこういう結果でも許されるが、製品では絶対に許されない。なるほどこれが『完璧なる』研究所の『完璧なる』ドライバか。どうも私が考える『完璧』と研究所の考える『完璧』は、完璧に異なるようだ。
通常はテレビの画面切り替えの最大は1秒だ。それを越えるとユーザーは故障を疑う。最近のテレビは有名どころのものでも平気で3秒待たせるものが多いが、もちろんこれは製品としては失格である。
工夫を加えて、レジスタへのアクセスを蓄積して一度に書き込む形にした。さらにアクセス速度を調整し、可能な限り速くアクセスできるようにする。もちろんどれもテストルーチンの中でだ。完璧なるドライバとやらは直す気にもならない。
唯一の失敗は、昼ギツネ課長にこのことを話してしまったことだ。
「うん、やはりね。研究所にお伺いを立てないといけないと思うんだ」
事なかれ主義の課長が言う。そんなことしたら、またもやあの馬鹿所長が激怒して次はどんな嫌がらせ始めるか判らないだろ。
私がどれだけ人に憎まれようがちっとも気にしない課長にとって、そんなことはどうでも良いらしい。
課長は話した。
しばらくは何も起きなかった。
だが、それで事が済むはずは無かった。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます