何やってるんだろう、なんて思いながら、やっと治具が動いた。(ってか、一年半前に作り上げたエミュレータを、新しい環境で動かし直しただけ。)某社の某マシンのエミュレータ。仕様書なしで通信データだけを読んで、マシンの動作を完コピした。復活!でも、バテバテ。仕様書や文書が調っていないプログラムのメンテナンス、通信プロトコルをプログラムから読まなきゃならないような通信ソフトのメンテナンス、設計者が会社を辞めてしまって、どうにも修正できないプログラムの延命パッチ、などは得意といえば得意ですが・・・窓口会社を通していただく、ということで・・・(直接お金の話はしたくないので)。良かったぁ、って違うでしょ?これからやっと仕事が始まるってのに、もうこの時間。「製品」の動作確認するための「治具」が、こんなんでいいの?(トラップの作りが雑)、とは思うが、プロトコル上は完全に某社の某システムと同じ動作する。ある話で、フィッシングサイトなんかと同じ。例えていえば、可愛い女の子とチャットしているつもりが、実は無精髭生やしたオッサンだった、なんて感じでしょうか。論理のトレースバグを潰しにかかって、一番厄介なのは表面的に起きている現象と原因との乖離、なんだろうな。一つ前のページ、原因は自作関数の戻り値の検証不足。接続できることを試したかったから、つい先を急いだ。エラー処理系は手抜き。その結果エラー・リターンと、正常動作のカウント0の戻り値が同じになってしまい、原因を見つけるのが遅れた。開いたファイルは必ず閉じる。(COBOL系の人はこれをやらない。言語処理系が自動的に閉じてくれるから、閉じない習慣があるらしい。自動ドアに慣れていると、自分でドアを閉じないのと同じか。)C++なのに、閉じていなかった。これも、先を急いでいたから。ここで、やっちまった。自分の意識の中でWrapperの戻り値をシステムの戻り値だと勝手に決め付けてしまっていた。丁寧に、ステップごとに辿れば、この類のバグは必ず潰せるんだけれども、思い込みで注目点がズレていると、原因部分へのアプローチが遅れる。ものすごく時間がかかった。基本的に、私はモノグサだから、面倒なことはやりたくない。すると、一番厄介なところ、自分で「完成品」と思っている箇所を無意識に避けて、勝手に論理をすり替えて、「この現象の原因は、ここにあるはずだ」と思い込んでしまう。思ったけれども、ps(プロセス状態取得)が誤動作していると、勝手に決めつけて、そこばかりを調べようとしていた。これで数時間ロスした。怖いのは、論理のすり替え。論理をすり替える人に論理的な説明をしても、全く意味がない。すり替えた先にはなんの問題もないんだもの。相手がコンピュータで良かったと、つくづく思う。相手が人で、こちらは論理的に説明しているつもりが、寄り切られると、最後は自分自身を捻じ曲げるしかなくなる。拒絶、次に思い込みと決め付け、そしてマウンティング。それが続くと、自分の側が原型を留めなくなる。どこぞの国との交渉も、「交渉」はできても「議論」にはならないだろうなぁ。ニュースを聞いていて、体から力が抜けた。こちらの主張を理解してもらう、なんて無理じゃないかなぁ。聞く耳を持たずに一方的な主張しかして来ていないと思う。そもそも、戦略管理物資が不正に流れていることの指摘は、アメリカ側から来たんじゃないのかなぁ。そのアメリカに、某国がどういう説明をしたのか、とても興味がある。アメリカが把握していた事実に合致する説明を、したんだろうか、それとも、何か都合のいい「作文」で説明したんだろうか。一度作文しちゃうとそれが一人歩きするから、もはや「事実」など霞んでしまう。あれは作文でした、なんていう撤回は、これまで一度もないと思う。その作文に基づい国民が大騒ぎする。直近ではレーダー照射がいい例で。関係改善なんて、もう無理じゃない?コンピュータ相手の仕事で良かったと、つくづく思う。純粋なロジック以外のことは、一切合切考えないようにしようとは思うんだけれども、脳ミソは一つしかないから、難しいです。orz反省箇所多し:自分への戒めで、晒しておこう。発端は、なんか知らんけど、nohupとrbenvの相性が悪い、かな、と思った。追記しますこのメッセージが画面に溢れる。filesこの繰り返し。1秒間に10回はシェルを起動、実質的なマシンフリーズ。