日々のつぶやき(90/01/01〜)

1999/01/30

この日はお休みだったのだが、やっぱり気になってマニュアルの校正を家でやる。(本当はこんなことやっちゃいけないんだけどね。)2回目に読み直して見ても、「この翻訳ちょっと変じゃない?」というところが続出して、手に負えない。ひ〜ん。

休日出勤。翻訳のあら探しをする。マニュアルに関してのチェック作業をしていたんだが、「引っ掛かる」表現が続出。取り合えずもう一度読み直すことだけは完了する。でもやっぱり自宅でやっていたんじゃ、あんまり能率が上がらないなぁ。

1999/01/29(Fri)

ひたすらOEMの翻訳作業のチェック。本当だったら昨日まででヘルプファイルに関しての作業を終えるはずだったのだが、あいにく間に合わなかった。意味が取れなさ過ぎる部分が多すぎて全然作業が進まない。今日一日かけてやっとヘルプファイルに関する作業が終った。やれやれ。

1999/01/28(Thu)

寒くなってきた時期の朝の日課になっている「猫と一緒に布団の中で、眠気が冷めるまで出勤前の気だるいひとときを過ごす」を行っていると、いきなり地震が襲ってきた。最初はちょっとぐらぐらしていただけなので「大したことがないだろう」と思っていたら、「どん」とかなりの揺れを感じて身の危険を憶える。慌てて布団から飛び出したのと同時に猫も布団から飛び出す。幸い強烈な揺れは一回だけだったのでさしたる被害はなかったがそれでいっぺんに目が覚めた。

会社に行くと地震の影響でエレベータが止まっている。おかげで8Fまで階段を上らなくちゃいけない。日ごろの運動不足も祟って、自分のパーティションに着く頃には肩で息をしているという情けない状態。Nさんに「さっきの地震で目が覚めた」といったらあきれられてしまう。しかし上には上がいるもので、10分ほど遅れて出社したOさんは地震のあったことに気がつかなかったらしい。(^_^;なんでも「窓ががたがたいっていたけど、強い風が吹いているんだと思った」とのこと。あれだけ強烈な地震でも気がつかないとは…。(^_^;

OEMの作業が結構破綻状態になっている。昨日今日とOEM提供先から送られてきたβバージョンのヘルプを評価しているのだが、前に評価した時に時間がなくてちゃんと突っ込まなかったせいか、読めば読むほどぼろぼろの出来なので嫌になってくる。で、このOEMで昨日見つけた「約束していた仕様と違う」という部分について、こっちとOEM提供先でもめる。(連絡は全部e-mailでなされている。)このOEM製品というのがラテン語圏用の多国語OCRソフトなんだけれど、約束した言語数より対応している言語が多くなっている。まあ普通に考えれば対応言語数が増えて文句はないんだろうけど、もう対外的なアナウンスをしたあとで(たとえ製品の性能アップだとしても)、そんな基本的な仕様変更は営業的には絶対に認められない。

こっちの営業は「今更スペック帰るなんて何事だ」。向こうは「もともと対応言語数は増やすことがあるかも知れないといっておいた」と言ってきて泥沼状態になりかけた。いったん「クライアントの言うことには逆らえないから」という理由でこっちの言い分が通ったが、「クライアントの言うこと」も何もそれは12月上旬に台湾まで言って合意したはずなので「お前それは話が違うだろ」と言いたくなったが、まあこっちの言い分が通るならそれ以上追求してもしょうがない。ところがその直後に、「他の作業メンバーとの調整が必要だ」とか言い出してきて、結局その問題に関しては今日は解決せず。まあ、私の担当は技術的な検査の範囲だけなので、この件に関してはどっちでもいいんだけれど、海外の(というかそのソフトハウスが特別いい加減なのかも知れないが)ソフトハウスの仕事のいい加減さをしみじみと感じた。

お昼休みに今日発売のSegaRally2をレーシングコントローラーとともに購入。うちの会社では初めて海外出張する人には5万円の支度金が出るのだが、臨時収入だと喜んだのも束の間、結局これがドリームキャスト関連で全部消えてしまったことになる。(^_^;まあ今買ってもゆっくり出来るわけがないのだが、やっぱり買える時に買っておかないとね。

バージョンアップはこのところ落ちついていたのだが、テーブル関係で重大な見落としがあって、中間レベルでのアルゴリズムレベルでの書き直しを余儀なくされる。開発の途中程度だったら別にどうということはないのだが、締め切りがすぐそこに迫っている段階で基本的なアルゴリズムの見直しを迫られるというのはかなり致命的な状況で、関係する所は相当書き直しをしなくてはいけない。かなりダークな気持ちになった。本当に締め切りまでにちゃんとしたプログラムを作れるんだろうか…。

かなり苦戦して、ちょっとデータ構造が汚くなったけれど、ちゃんと機能分離をしておいたおかげで、最終的には70行ほど書き換えただけで済んだ。機能分離を優先した結果、無駄な処理や重複した処理をしている所もあるが、アルゴリズムレベルで間違いが見つかったにしては今日一日で対処できたから被害は少なかったともいえる。でもこれからこの種の「アルゴリズムバグ」が続出しそうで恐い…。

帰宅してからセガラリーにのめり込む。文句なしに面白いと思う。やっぱりレーシングコントローラーは買って正解だったな。今日はあんまり出来ないけれど、OEMの制定が過ぎればがんがんできるようになる。それまではじっと我慢なのであった。(^_^;

1999/01/27(Wed)

作業は比較的順調なのだが、締め切りが迫っているからどんなことが起こるか分からないというプレッシャーで胃が痛い…ということが感じられる位に敏感だったらもっと出世できるんだろうけど。(^_^;

OEM先から提供されたマニュアルをサポートスタッフのKさんに渡したら、「こんなマニュアルだったらつけないほうがいい」とまで酷評される。(^_^;マニュアルに問題があるのは私も承知しているんだけれど、今のところこの前送られてきたマニュアルの評価までしていないし、大体その前のβバージョンのマニュアルは「日本語にするだけで精一杯」というような出来だった。そんな訳で、その時の校正には全体の構成にはあまり気を使っていなかった。しかし、あらためて指摘されて見ると確かにこんなマニュアルじゃサポートが悲鳴を上げるのも当然だよなという気がする。でも、現段階でマニュアルを全部書き直している時間的余裕もない(というか本体に関する部分ですら間に合うかあやしい)ので、Nさんはこの場をどうするんだろうと思っていたら、営業のTさんとKさんとの直接の電話対談でとりあえずその場を収拾。これはその場だけの収拾策なんだと思うんだけど、ただでさえ手一杯の現状でこれ以上面倒なことが起こっても対処の仕様がないしなぁ。KさんとTさんの直接の電話でのやり取りを横で聞いていてすごくはらはらした。

やっぱり締め切り前に仕様(内部データの使い回し方)の食い違いが表面化。今日は縦書き設定をした時に各種のパラメータにどのような意味の値が入ってくるかで担当者間で認識が違うことが発覚する。この時期に及んでこんな重大な障害が発覚するとは…絶句。もっともそれに関して変更しなくちゃいけない部分は、どんなに仕様に関する勘違いがあったとしても、ちゃんときれいに書き直しておいたおかげで私の担当する部分に関する限りせいぜい100行程度書き直せばすむ。これ、書き直しをする前だったら何千行もスパゲッティープログラムを書き直さなくちゃいけなかったはずで、それを考えるとぞ〜とした。本当に全部書き直しておいてよかった…。

検査チームからではなく、開発チームからバグレポートを受けとる。「これ、仕様だよなぁ、でもこれ仕様を変えたほうがいいよなぁ。」と一応レポートを返しておくが、よくよく読んで見たら、いつの間にか小人さんがその仕様を変えたコードを組み込んでくれていたらしくて、実質的な作業は、あるフラグ(関数に与えるBOOL値の引数)を変えるだけで済んだ。(^_^;小人さんありがとうって、引数の値を与え間違えた私が悪くて実は単なるバグなんだけど(^_^;、そんな事はおくびに出さずにそのバグレポートに応対した。ふ、解決すればどうでもいいのさ。←精一杯の負け惜しみ。(^_^;

1999/01/26(Tue)

とりあえず、今度のバージョンアップに関して私の担当する部分はそれほどひどいバグがないみたいなのでとりあえず今日はOEMのチェック作業に集中。今いじっているOEMのβに対するレポートの締め切りが2/1。で、バージョンアップ作業の締め切りがぎりぎり2月中旬。結構きついなぁ。

とりあえずOEM作業のチェック作業、特にヘルプファイルの翻訳作業についてのチェックを中心に進めていくが、やっぱり自分で作っているものじゃないから、やっているうちに疲れてしまって、早めに家に帰る。

1999/01/25(Mon)

ネタ切れというか、家に帰ってから疲れてしまって日記を書く気になれなかった。

1999/01/24(Sun)

サルのようにドリームキャストをやっていると、母親筋のおばさんがやってきて説教された。どうやら状況から見て母親からの要請らしい。何の説教に関しては…。(^_^;

1999/01/23(Sat)

朝起きるなり(といっても起きたのはほとんどお昼頃だけど)、「いい若い者がこんなにいい天気に家の中でゴロゴロしているなんてねぇ」とか嫌味を言われて悔しかったので、とりあえず外出。久しぶりにパソコンショップとかを回ることができたのはいいが、田舎なので一通り周って見た所でそれほど時間が潰せる訳でもないし、他に行く所もない。もっともパソコンショップ周りついでにOASYSを買いに行くという仕事がはいっていたんだけど…。一緒に買うはずだったWord Perfectは地元のショップでは見つからなかった。いや、正確には見つかったんだけど古いバージョンだったので購入を見送り。せっかくWord Perfectをいじってみるいい機会だと思ったのだけれどなぁ。

結局行く所もなくなって足はふらふらと会社に向かう。メールとかニュースとかを読んでいると某プロジェクトのリーダーのSさんがやってくる。「なんで会社にいるの?」と聞かれたので「いやぁ、家を追い出されて行く所がなくて…」と答えたら「お前、他にスキーとか遊ぶことがあるだろう?」とからかわれる。(^_^;でも他の場所で遊んだら、お金かかるじゃん。別にスキーに言って楽しい訳じゃないし。(^_^;

夕方になってから、意を決してドリームキャストを購入。サルのようになって遊ぶ。

1999/01/22(Fri)

お昼休みに近くの電器店に行ったら、ドリームキャストの在庫があったので買おうかとっても悩む。今買ってもろくにやる時間がないのは目に見えているんだけれど、今度這いつ入手できるか分からんからなぁ…。

比較的作業の進捗が破綻していないIさんからバグレポートが上がってくる。デバッグして見ると親モジュールから渡されたBITMAPINFOHEADERの数値が変だということに気がつく。で、そのBITMAPINFOHEADERを作ったのはIさんの担当したモジュールだったので、バグレポートをそのままIさんに突っ返した。(^_^;

とりあえず今のところはそれ以上深刻な障害がないようなので、OEM提供先から送られてきたプログラムというか、実質翻訳がメインの作業なんだが、そのチェック作業をする。今日はプログラムの動作に関してのチェック作業を行ったが、一般保護エラーで落ちたりすることがないのが救い。でも肝心の翻訳のほうは結構ぼろぼろのところが残っているなぁ。これ、あと1ヶ月でなんとか出来るんだろうか?

1999/01/21(Thu)

昨日コーディングした所のデバッグ。結構とほほなミスが沢山あって手間取ったが、数時間ほどでちゃんと動くようになった。うっかりしていたのがfopen()を使って、ファイルを追加出力モード("ab")で開いた時の動作。fseek(fp, 0, SEEK_SET)とやった時にファイルの先頭にポインタが移るんだと思っていたけど、実はfopen()した時の先頭位置に戻るんだって言うのは実は知らなかった。(^_^;まあ、いつもは読み込み専用("rb")か、書き込み専用("wb")で開くし、まれに読み込み書きこみ用("r+")で開くことがほんのちょっぴりあるだけで、そういえば今まで追加出力モードでは開いたことがなかった。(^_^;

デバッグが終ってやれやれと思ったら、今度の台湾出張についてNさんから、今度の出張はTさんと私の二人だけで行くことになりそうだとのこと。性格が温和なNさんとHさんは行く可能性が少なくなったとのこと。Nさんも心配そうな顔をしていたけれど、私も出生に行ったさきで何を言いだすか結構不安。(^_^;

残った時間はOEM先から提供されたβの評価をする。やっぱり人の作ったものを評価するよりは自分で作っている方が楽しいなぁ。おまけに作っている人達が海外にいるので「これ一体どうなってるの?」とすぐに聞けないから結構もどかしかったりする。

これもちょっと前の話だが、カンボジアのポルポト政権に関して信濃毎日新聞に「虐殺行為に関して裁判をすべきだ」という社説が乗った。基本的には私もちゃんとした調査をやってこの虐殺行為に関して後世に「何が起こったのか」をきちんと伝えることは大切だと思うけど、結局はカンボジアの国内問題なので裁判を起こすべきかなんてのは結局カンボジアの人達が決めることじゃないかなぁと思うんだど。「して欲しい」ならともかく「すべきだ」なんてのは、結局大国のエゴに過ぎないと思う。

今国会の社民党の衆議院代表質問の録画を見ているけれど、席ががらがらだなぁ。なんか居眠りをしているとしか見えないような議員もいるし。あれが大学の授業じゃ単位を取れるか怪しいものだぞ。(^_^;法務大臣の方言問題に関して土井議員が質問した時にも当の本人、ず〜と目をつぶっているだけなんだもんな。自分のことを言われている時くらい目を開けて聞いたらどうなんだ?こんな大人が国の指導者じゃ子供が先生のいうことを聞かなくなっていっても仕方ないよな、なんて思ったりもする。もっとも私自身は人の話なんて全然聞かない性格なんだけどね。(^_^;

大学時代の友達が新しいマシンを自分で組み立てたらしい。で、そのベンチマークがどうのこうのとメーリングリストで盛り上がっていたので、私が会社で使っているマシンのベンチマークを取って見る。まあさすがに最新のマシンと比べれば敵わないなと思っていたが、ベンチマークの結果はPentium 200Mhzマシン2台合わせてもPentium 400Mhzマシンのベンチマークに届かない。(^_^;手持ちのもう一台(Pentium 90Mhz)のベンチマークも合わせてやっと届く程度。でもこの次のマシンの更新の時にはMacマシンになるんだよなぁ。あと数年はWindowsマシンはこのマシンで我慢しないといけないんだ。(シクシク)

1999/01/20(Wed)

この頃は、「何者かに追いまくられている」とか「試験前夜の一夜づけが間に合わず、ひたすらおろおろする」とか「単位が足りなくて卒業できなくなった」とか、とにかく何かに追っかけられている、もしくは締め切りが迫っているのにどうしようもないというようなろくでもない状況の夢をよく見る。現実が締め切り間際なのだから、せめて夢の中では「美形のお姉様方に囲まれてウハウハ(^_^;」とか「プライベートビーチでのんびりしている」とかいった現実離れした夢でも見られれば、気分転換にもなるだろうに。

出社してからひたすらデバッグ…と言いたい所なのだが、検査から上がってきている障害レポートのうち、一応コーディングが済んでいる所に関する障害は全部対処して、新規の障害報告はない。実は、コーディング作業が終っていない部分で障害報告が連発されていて、こっちはコーディングが全然間に合っていないんだよぅ、勘弁してくれよ〜という感じなのだが、こんなのコーディングが間に合わなかった私のほうが一方的に悪いだけなので、これは単なる泣き言。

コーディング・デバッグが間に合わなくて検査スタッフに多大な迷惑をかけていることは十分承知しているし、プログラマーの私がのシンプルデバッグさえしていないプログラムの検査をさせられるんじゃ、検査スタッフの心中を考えると言葉にならない。自分でも検査に耐えられるだけの質ではないモジュールが含まれていることは自覚しているので、その点ではひどく罪悪感を感じている。それでも結構ひょうひょうと検査に付き合ってくれている検査スタッフのTさんは「やっぱり大人なのかなぁ」と感じてしまう。私が出したモジュールの完成度で台湾のメーカーが私に「βバージョンだよ」とかいって提出したら「手前、何考えてるんじゃ!バカヤロウ」で喧嘩になることは必須。やっぱり検査をする人って性格が穏やかじゃないと駄目だな、と痛感する。

泣き言を言っていても締め切り(制定日と普通は言う。要するにこの日までにプログラムを完成させて、検査も通らないと発売延期になるというぎりぎりの日)が刻一刻と近づいているので、仕様変更になったExcelのブック形式出力部分を必死になってコーディング。私の頭の記憶容量はそんなに大きくないので(はっきりいえば3日経てば忘れている)、データ構造とかを思い出しながら何とかコーディングが終る。この部分の親モジュールとのI/Fの仕様は既存のI/F最大限再利用できるように、また作業量が極小で済むように、という方針で作ったので、内部の実装としてはかなり汚いのだが、まあ、親モジュールからみるとそれほど無理のないI/Fをしているので、機会があればI/Fの実装部分は書き換えてしまおう。

結局この日は仕様変更に伴うコーディングで終わり。デバッグは明日だな。

本当はN社のOEM作業を重点的に進めないといけないのだが、そっちのほうはあまり進捗せず。やっぱり自分で仕様書を書いたり、コーディングしたり、デバッグしたりのほうが(いくら精神的にまいっていても)楽しいもんね。(^_^;

1999/01/19(Tue)

ひたすらデバッグ。WRITE形式のファイルに追加出力すると、ワードバットが死んでしまう。で、もう一度読ませようとしても「このファイルは既にオープンされている可能性があります。」とか文句を垂れて、リブートしないともう一度読みこもうとしてくれない。「どこがおかしいんだろう」とダンプリストとにらめっこしながら、変な所を直して見て、実はそこはおかしな所じゃなくて、ワードパッドが死んでしまう。で、リブートをしてもう一度やり直し…、なんてやっていたので能率が全然上がらない。一体どんな仕組みでリブートしないとファイルがオープンできないなんてことになっているんだろう?

小さなWRITE形式のファイルに対して、小さな文書を追加しても問題が起こらないので、もうダンプリストを見るだけで嫌になってくる。(^_^;結局、文字情報データ(フォントの大きさなどの情報が入っている)並びに穴が出来て、「何にも情報がない文字情報データが並びの中に入り込んでしまう」という障害に対処。なぜか知らないが、意味もなくある変数がインクリメントされていたのが原因。う〜む、このコードを書いた時にはきっと宇宙人に精神を乗っとられていたに違いない。ついでに追加出力した時に段落情報ブロック開始位置がずれる場合があることが分かったので、これも対処。しかし、WRITE形式のファイルなんて、ワードパットでもMS-Wordでも出力できない形式なんだから、いい加減RTFにまとめちゃったほうがいいと思うのだが、機能ダウンさせるという訳にもいかないからなぁ。

RTF出力で罫線の一部が切れてしまうという障害は自分で見つけた。表の一番下の罫線がどうしても消えてしまう。RTFのソースを見ても、ちゃんと表の下罫線を引くように設定しているので、これはMS-Wordのバグかな?と思いつつ色々試して見ると、表が入っているレイアウト枠が小さすぎて、一番下の罫線を表示できないだけだと分かる。更に調べて見ると、レイアウト枠の大きさの計算をする時に外枠の罫線の幅を考慮するのを忘れていたので、その分一番下の罫線が表示されなくなってしまったらしい。罫線の幅を考慮してレイアウト枠の大きさを決定するようにしたら、今度はちゃんと表示されるようになった。

やれやれ、こんな状態で制定に間に合うんだろうか。すげ〜不安。

1999/01/18(Mon)

ひたすらデバッグ…のはずなんだが、未だに仕様段階でうろうろしている部分がある。なるべく実装が簡単な仕様にして、少しでも時間を稼がないと…。

1999/01/17(Sun)

この日も気合いが抜けて、布団から起き上がれない。一日中寝ていた。何かに追いかけられたりとか、試験に間に合わないとかという夢を見る。締め切りまぎわだからかなぁ。

1999/01/16(Sat)

気合いが抜けて、布団から起き上がれない。一日中寝ていた。

1999/01/15(Fri)

世の中は休日らしいが、今の私には関係がない。とりあえず休日出勤。

昨日デバッグしたRTF出力のコードが正しいか確認する。昨日気がつかなかったバグがいくつかあったが、単純な勘違いバグ(レイアウト枠のX座標とY座標とを逆に出力していたのと、スタブコードを消し忘れていた)以外は問題がないようだ。やれやれ。

html出力プログラムをデバッグして見るが、こっちはIさんの書いたBMPファイル→JPEGファイルへの変換プログラムが変換途中で死んでしまうので、とりあえず保留。一応Iさんが指示した通りのパラメータを渡しているつもりなのだが、それ以上突っ込んでもそんなに成果が得られないだろうと思い、サンプルプログラムを書いて、それでも死んでしまうことを確かめてあとはIさんに下駄を預ける。(このサンプルプログラムの変な所を教えてね、とメールを書いておいた。)

HTMLファイルへの追加出力でどつぼ。HTMLファイルに追加出力するには、<BODY>が書いてある所から書き出せばいいのだけれど、<BODY>の場所を探し出すルーチンがうまく動かない。基本戦略は、<BODY>のあるところを見つけて、ファイルをそこでぶっちぎって、そこから追加出力すればいいんだけれど、どうしても<BODY>のある所を見つけ出す関数が正しい数値を返さない。ポインタ関連の計算を何度もやっているので、絶対そのあたりが怪しいと思っていたんだけれど、色々調べてもどうもポインタの計算は合っている。おかしいと思ってある程度watchで確かめて見たんだけど、やはりポインタの値は正しいようだ。う〜む、一体どうして?

原因は単純だった。ファイルをアスキーモードで開いていたんである。これじゃ、<BODY>の物理的な位置と読み込んだ時の位置がずれるのは当然。ち、最近はUNIXにかぶれているから、すっかりバイナリーモードでファイルを開くなんてのを忘れていたぜ。(負け惜しみ)(^_^;

それはそうと、本当はデバッグなんかとうに終らせて、今日はExcelの事の関して色々やらなくちゃいけなかったはずなのだ。ところがその作業は結局今日は全然出来なかった。これは明日も出勤かな…。でも日曜日には絶対休むぞ。(さもなければ体が持たない…)

3億円でメジャーリーグ初の70号ホームランボールを買った人がいると聞いて、世の中には無駄に金を持っている奴がいるものだなぁと思ったのだが、結局その3億円で買った奴の年収が400万弱なんだそうな。私に言わせればたった1つのボールに一生を棒に振っちゃうのか?と思うけど、ファン心理からすればそうじゃないんだろうな。

1999/01/14(Thu)

メタファイル出力部分で、唯一残っているマジックナンバーの解読作業。目的はRTFファイルの中にビットマップイメージを埋めこむというだけなのになんでこんなに苦労しなくちゃいけないんだろうか?やっぱり頭が悪いんだろうな。(-_-;でも、
010009000003BF28000000009E2800000000050000000b0200000000 050000000c020602300105000000090200000000 050000000102ffffff00 0400000007010100 9E280000430f2000cc000000060230010000000006023001 000000002800000030010000060200000100010000000000 F0500000843D0000843D00000000000000000000FFFFFF00 000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000 (以下延々とピクセルデータが続く)
なんて意味不明の数字を並べられたら(というか並べるプログラムをデバッグしているんだけど)、誰だってげんなりすると思う。(^_^;さすがにめげそうになったが、こつこつと仕様書を片手にそれぞれの数値の意味を探っていくとエインディアンがおかしかったりするところが見つかる。ただしそれを直しても正常にビットマップファイルをRTFファイルに埋めこむことはできなかった。

結局、ガンだったのは前任者の書いたマジックナンバー。最後の最後まで意味が分からずにそのまま書いていたのだが、調べていくとどうも間違っているらしい。しかし、間違っているということがわかるまでが大変だった。上記のような単なる数値並びを手で解析して、データの間違っている所を見つけて行く作業はさすがに堪えた。グラフィックなんて大嫌いだ。(^_^;それでも何とかマジックナンバーの意味を解析して、その部分を書き直したら、何とか動いてくれた。どうやら今まで書き直したところの影響で、そのマジックナンバーじゃ駄目だったらしい。本当にこんなつらい解析作業は大学時代にゲームプログラムをアセンブラレベルで解析した以来なんじゃないかな。

とにかくなんとかRTFファイルにビットマップイメージを埋めこむことができて一安心。まだまだ課題は残っているが、ひとつでかい山を超えたかな?という感じだった。

今日は会社の新年会の日。そういう訳で17時頃に仕事を切り上げて、新年会の会場に向かう。しかしあまり体調が良くないうえに残っている仕事が気になってあまりはしゃぐ気にもなれない。私にしては珍しく一次会でさっさと帰宅した。

1999/01/13(Wed)

RTF出力のイメージ処理部分のデバッグ。基本的にメタファイルを適当な書式で出力してあげれば何とかなるはずなんだけど、そのメタファイルの形式ってのが私はさっぱり分からないので(^_^;、なるべく前任者のコードをそのままにしておいたのだが、前任者が書いた時とは状況が違っているようで、そのまんまでは全然動かない。(^_^;

メタファイルの仕様書を見てもよく意味がつかめない所があるし、前任者の書いたソースには意味不明のマジックナンバーが「これでもか」という具合にちりばめられていたので、そのマジックナンバーの解読だけで一日終ってしまうというか、一日かけてもマジックナンバーの解読が終らなかった。残るマジックナンバーは一つだけなんだけれど、どうしてもそのマジックナンバーの意味が分からない…。当然その部分のデバッグは終了せず。(;_;)

1999/01/12(Tue)

Excel出力のデバッグ。ドキュメントに書かれていない部分の解析を本格的に始める。ドキュメントに書かれていないから、実際にExcelファイルを作って見て、あちこちをちょこっといじってはどこが変わったか調べるという地味な作業の繰り返しだ。この切羽詰まった時期にこんなことはやりたくないんだが、どうやらその部分がちゃんとしていないとどうにもこうにも行かないということが昨日の作業で分かったので、仕方がない。(-_-;

変わった所を見つけて、パターンを見つけて、そのパターンで実際にファイルを作って見てちゃんと読めるか確かめる。今日一日かけて、読む分には影響のない部分と影響のある部分(4ヶ所)を分離した。ところがどうしても一ヶ所だけ変化のパターンがつかめない部分があった。ふ〜む、どうしたらいいんだろう。(;_;)適当な値を入れてExcelに読ませるとExcelが一般保護エラーで死んでしまうし。まあ、プロトタイプを作る時にきちんと確かめなかった私が悪いんだけど、ある程度大きなファイルを作ってもあの時にはちゃんと読めたんだよぉ。(シクシク)

パターンはつかめなかったんだけど、ある程度大雑把な値を入れておけばいいということが分かったので、適当な値を入れておいたら何とかプロトタイプではあるもののExcelで読めるようになった。やれやれ。ところが今日はそれだけで疲れてしまって、プロトタイプにその変更点を組み込む気になれなかった。時間もないんだから今日のうちにやっちゃったほうがよかったんだけど、さすがにねぇ。

1999/01/11(Mon)

土曜日に返却したエラーレポートが「きちんと直っていない」ということで何枚か返ってきてしまった。どうやらビルドに失敗していたらしい。がっかり。

Excel形式で大きめの表を出力すると、Excelで読めない.xls形式のファイルが出来るというバグを追求。この部分はもう何ヶ月も前に書いた部分だから、結構「赤の自分」が書いたプログラムになっている。それでもまあ思い出しながらデバッグをした。調べて見るとどうやらある境界値を超えると、ドキュメントに記載されていない部分(ファイルの先頭と末尾の意味不明のブロック)が変更になっているらしかった。色々調べて見たのだが、境界値を超えた時のブロックの変化のパターンがつかめない。あせって色々試して見るがことごとく駄目。Excelがどうしてもブック形式として認めてくれない。う〜む。(-_-;

試しにドキュメントに書かれていない部分を削って出力させて見たら、今度はある程度ブック形式として認めてくれたようで、ちょっと読んでくれるんだけどあっという間にExcelが死んでしまう。ブック形式で駄目なら、ワークシート形式ではどうだ?と思ってやってみると、今度はExcelが死ぬことはなくなったが、罫線データがどうやってもシートに反映できない。MSDNのExcelファイルの仕様書とダンプリストをとっかえひっかえ穴のあくほど眺めたが、どうみても仕様書のとおりに書いてある。さすがはMicrosoft。自分たちで作ったファイル形式なのに、自分で読めない出やんの。(^_^;いつもだったら笑ってすませるんだけど、この時期にこんなとんでもない障害を抱えることになってパニックである。まだまだ解決しなくちゃいけない障害はたっぷりあるのにぃ。(;_;)

ちなみに読ませるとExcelが死んでしまうファイルを1-2-3で読ませて見たらあっさりと読んでくれた。一体何なんだろうね。(;_;)

大学時代の友人のSさんから「結婚がほぼ決まったので、結婚式に出席してほしい」というメールをもらう。よきかな、よきかな。おめでとうございます。>Sさん。

1999/01/10(Sun)

会社に行こうと思っていたのだが、紹興酒の飲み過ぎで頭ががんがんする。今年の目標は「節酒」だったはずなんだけどなぁ。(^_^;そういう訳で一日ぐったりしていた。

1999/01/09(Sat)

進捗会議。一通りのコーディングが終っているので、安心して会議に望んだが「Excelに追加出力できるようにしてほしい」という要望があって頭を抱える。実はExcelのバイナリー形式は内部的には各種の形式があるので、追加出力といっても一筋縄では行かない。こんなの今からやっていたんでは絶対に間に合うわけがないので、何とか仕様を小さくしてもらう。

SF大会実行委員会の新年会。最近会合に出席していなかったので、初めて見る委員会のメンバーもかなりいる。真面目にスタッフの仕事をしないとなぁ。新年会は四川料理。辛いものはからきし苦手なのだが、今日の料理は辛くても美味しかった。ビールがスーパードライだったので、紹興酒をせっせと飲んでいたのだが、ついつい飲み過ぎてしまう。

1999/01/08(Fri)

進捗状況についての会議が今日あることになっている。一応コーディングは終っていているものの、デバッグが全然進んでいないんでちょっとというか、かなり心苦しい。(^_^;実際にはコーディングが終っていたといってもかなり抜けている所が多いとは自覚しているし、本当に何とかコーディングが終ったというだけでシンプルデバッグさえ終っていない部分がかなりある、というか今までの仕事の感じからいえばほとんど書きっぱなしという感じが強い。そういう意味では激しく自己嫌悪を感じることしきり。

まあ、そんな自己嫌悪はともかく、一通りコーディングを終らせているかいないかというのはマイルストーンという意味で大切だから、バグだらけでまともに動かないにしても基本設計だけは終っているか、いないのかというのはかなりでかい。一通りのコーディングさえ終っていないんじゃ、これからどれだけかかるか分からないものね。まあ、色々問題とかやり残している所はあるんだけど、その部分は工数がかなり計算できる部分だからそれほど心配はしていなかった。(やっていない所が1つあったけどそれはプロトタイプは出来ていたから、確実に工数が計算できる部分だったから、それほど心配しなくてもいい。)

ところが、仕事を見直してみたらとんでもなく抜けている部分があって、基本設計さえも全然出来ていない所があって愕然とする。慌ててがりがり書きはじめるが、全然間に合いそうも無い。憂鬱な気持ちになって会議の開始時間を迎えるが、NさんがK部長に捕まっていて会議にならない。これ幸いと必死でコーディング。

結局会議は明日に延期。何とか一通りのコーディングを終了する。やれやれ。、

1999/01/07(Thu)

日記の更新をサボっていたので、今日までの日記は比較的短め。今さらながら皆さん明けましておめでとうございます。今年もよろしくお願いいたします。<(_ _)>

プログラムのデバッグ。といってもちゃんとしたデバッグを始めたのがやっと今日になってからという具合。本当にこんな具合で間に合うんだろうか、と非常に心配になる。少しいじってみただけでもぼろぼろ不具合が出てきてしまって悲しくなってくるほどだ。

今日出てきたバグ。RTF出力を一太郎に読ませた時に発生するバグ。MS-Wordで読ませるとちゃんと読めるのだが、一太郎に読ませた時には文字が重なり合ってしまいまともに読めなくなるという障害。これは前に解決した問題だったのだが、書き直したおかげですっかりその処理を組み込むのを忘れていた。これは段落の区切りの前に\sectdというキーワードを付加することであっさり解決。もっともこれは忘れていた方がどうかしている。(^_^;

RTFでテーブルを2つ続けて出力するとそのテーブルが繋がってしまうバグ。これは、{\pard}というキーワードを2つのテーブルに挟むことで解決。ただし、ワードプロで出力させた時には、この症状がどうしても直らない。色々試してみたが今のところこれといった解決策が見つからない。これは本当に解決できるのかちょっと現状では自信が無い。一体何故ワードプロってあんなにRTFファイルの解釈がいい加減なんだろう?

細かい所ではもっとバグを取った。実はこれだけバグがある段階で検査にモジュールを送ったのは初めてで、簡単なチェックしかしていなかったものの、まさかこんなにひどいとは思っていなかったので、正直言って自分で自分が嫌になってきた。(-_-;なんでこんなにひどいバグに気がつかなかったんだろう?とにかく落ち込むのは後にして、今は全力で見落とし部分を見つけていくしかない。落ち込むのは後にするにしても、これ、書き直しをする前だったらどれだけ時間がかかるか分かんなかったから、よしとするか…。←人間、下を見たらきりがないんだっての。しかし、こんな状態じゃコーディングが終ったともいえないよな。ああ、情けない、情けない。

1999/01/06(Wed)

一通りコーディングが終ったので、色々なモジュールのデバッグを始める。自分のマシン上では直してあって、そんな症状が起こらないのに、サーバーに修正を反映していなかったので、別の人のマシンで起こる不具合が自分のマシンで起こらないということが頻発する。実は今日はニューバージョンのニュースリリースの画面写真を撮るはずだったので、ウソでもいいから、ある程度動かさないとまずかったのだが、なかなかうまく動かない。結構つらいものがあった。

1999/01/05(Tue)

仕事始め。早速去年から取り掛かっているRTF出力プログラムの最後。画像を表示させる所をコーディングする。今までグラフィックイメージなんてのに関するプログラムはそんなに興味が無かったのでやったことがない。(^_^;基本的に物をバイト単位で考えるクセが付いているらしくて、「何ビットずらしながらコピーして…」なんてのが面倒臭くてかなわない。(^_^;おまけに画面の左端のビットがバイト単位での最上位ビットになるか最下位ビットになるかを間違えてコーディングしたおかげで、その部分は作り直しになってしまった。(^_^;

1999/01/04(Mon)

お休みの最終日。でも結局気持ち悪くて一日寝ていた。結局この休みって、「一日飲む」「その次の日に寝ている」という繰り返しだったような。(^_^;

1999/01/03(Sun)

前日飲み過ぎた。家族は親戚と色々やっているんだけれども、とにかくそんな事を気にかけている余裕の無いくらいとにかく気持ちが悪くて、一日中寝ていた。

1999/01/02(Sat)

高校時代のサークルの飲み会。すごく気分良く飲めた。

1999/01/01(Fri)

前の日に飲み過ぎた。一日中寝てた。(^_^;「朝まで生テレビ」を途中まで見ていたけどあんまり印象に残った発言は無かったような気がする。


1998/12 後半のぶつぶつ

1999/02 のつぶやき

日々のつぶやき 目次

作者(vyama_at_janis_dot_or_dot_jp)への感想・意見など。
spamよけのため、_at_や_dot_は適宜@や.に入れ替えてください。

目次ページ