日々のつぶやき(00/04/12〜)

2000/04/27(Thu)

コーディング三昧。画像リストのコーディングを進める積もりだったが、上司のNさんが以外にツールバーの状態セーブ/ロードを気にしているみたいだったので、そちらの優先度を上げてコーディング。大したことはないだろうと思っていたら、これが意外に厄介で、最初書いた素直に書いたアルゴリズムでは何故かうまく行かない。調査した結果、原因は「用意したpublicメソッドが賢すぎて、ツールバー位置の補正をやってしまう」ことにあった。これが分かるのに結構時間がかかる。なるべく普通のWindowと同じようにアクセスして、この場合はドッキングすべきとか、しないでおくなんてのをクライアントに判断させなくてもすむように書いたのだが、それが完全に裏目に出た形。

結局新たに「ツールバー位置の補正をしない様にもできる」風にpublicメソッドを変更して対処。途中Toolbarの動作がぐちゃぐちゃになって、どう対処していいのか途方に暮れた。が、今までやったことを思い出しながら、少しずつ紐を解くように2時間ほどdebugしていったら、ApplicationモジュールがToolbarモジュールに渡すパラメータが変だった部分を発見。修正したらまともに動くようになった。一番心配していたのはToolbarモジュールにアルゴリズム上決定的な欠陥があって、ほとんど全部書き直さなくちゃいけないのかも…ということだったが、何とかそこまでならなくてほっとした。

他にもツールバーの状態セーブ/ロードではいろいろ問題が発覚したのだが、何とか解決した所で、今日は力尽きる。あとは「アプリケーションツールバー」と呼ばれているツールバーに関するコーディングが残っているんだけど、これが仕様が複雑で、考えただけで死ぬほど面倒臭いんだけど、まだ全然手が着いてない。どれくらい面倒かっていうと、
1)ツールバー上に配置されるボタンはアプリケーションが起動された時に動的に決定される。当然見栄えがよくなるように動的に配置位置を決定しなくちゃいけない。
2)ツールバー上に配置されるボタンを押された時に、データを「他のアプリケーション」に転送しなきゃいけないんだけど、そのアプリケーションはユーザがカスタイマズ出来なくてならない。
3)ツールバー上に配置されるボタン上に描画されるアイコンなども動的に決まる。Macintoshの普通のAPIを使ったらこんなことはできないので、ボタンコントロールの動作を全部書かなくちゃいけない

ああ、こんな仕様引き受けなければよかったと公開しても後の祭。う〜ん、どうしようか。

自宅に帰って、GradiusIV。コンテニューに続くコンティニューでようやく偶然細胞ステージを突破。皿にコンティニューにコンティニューを重ねて、8面ボスオンパレードまでは行ったけど、そこで今日は根性が尽きた。試しにGradiusIIIをやってみたら、こっちも超軟弱モードにしているにもかかわらず、4面の高速ステージでゲームオーバー。こっちは無限コンティニュー技が効かないんだよなぁ。←下手過ぎ。(^_^;

力が尽きたり、根性が尽きたり…。弱すぎだよな。<おれ

2000/04/26(Wed)

朝起きたら、PS2が届いていた。もう仕事なんてぇ…と思ったが、さすがに今休む訳にはいかないのでじっと我慢。でも会社でもどうもそわそわしちゃって…。(^_^;

さくさくとMac版のコーディング。やっぱりプログラミングやデバッグをしているのが一番楽しい。枠のロード/セーブをコーディング終了。その他中間形式のロード/セーブのデバッグで一日終る。

後どれだけ書かなくちゃいけないのかわからないが、Mac版で新たに書き下ろしたApplicationモジュールだけでもう35000行近くになっていた。他のモジュールもかなり手を入れているので、多分この1年間で50000行くらいは読んだり書いたり修正したりしたんだろう。だらだら怠けてやっている割にはずいぶん書いたものだ。ところが、Windows版のコードはApplicationモジュールだけで8万行以上ある。げ、このペースだとWindows版に追いつくには後1年以上かかるってことか?(^_^;

家に帰って早速PS2で遊ぶ。GradiusIV。したのパワーゲージがやけにちらつく。自機も小さくてちょっと操作しにくい。ま、でも遊んで楽しければいいのさ。Easyestにしているのに、6面細胞ステージを突破出来ず。あれ、どうやって突破するんだろう?

2000/04/25(Tue)

朝。何故だか「今日は木曜日だ」という感じがしてならない。ぼ〜として会社に行ったら定例ミーティングに大遅刻。(-_-;;部屋に入った瞬間に「これでミーティングの概要は終りです」と言われてしまう。もう生活自体がギャグになっているな。笑うしかない。ミーティングが終った後、意気消沈して、メールを読んだら、日曜日に注文したPS2が出荷したという連絡が入る。うまくすれば明日にでも着くかも?ミーティングに遅刻したことも忘れて浮かれまくり。

Windowsだったら右クリックメニューという奴のコーディングに挑戦してみた。が、サンプルと同じことをやっていると思うのだが、うまくいかない。PopUpMenuSelect()というAPIを使えばいいとInsideMacには書いてあるし、PASCALのサンプルもあるんだけど、どうしてもうまくいかない。いい加減行き詰まってSさんに相談してみると、「ああ、それはInsertMenu()を一旦発行しないと駄目なんだ」との返事。ざっと読んだ範囲ではそんな事は書いていなかったぞ。シクシク。

で、サンプルプログラムがうまくいったので、ターゲットプログラムに組み込んでみた。ついでにC++でPowerPlantを使っているのだからと思って、MenuHandleのラッパークラスのLMenuクラスを使って書き直してみた。ところが、これが全然うまく行かない。サブメニューが表示されなくなるわ、メニューの表示部分でOSごと死んでしまうやら散々だった。仕方がないので、結構面倒臭いんだけど、LMenuを使わずにMenuHandleで書き直す。それだけで、ぱったりアプリケーションが死ぬことがなくなった。ちきちょ〜、だからPowerPlantって腐っているって言うんだぁ(心の叫び)。

もう1つ、そのPopupMenuにはサイズ固定だが事前にはどんな画像になるか分からない画像をはめこむ必要がある。これ、Macの師匠Sさんとも相談したんだけど、この仕様を実現するためにはMenuManagerを再発明するくらいの根性が必要になるらしい。何とか説得して、この仕様をあきらめさせないといけないが…、どうやって説得しようか…?

取り合えずαレビューまで時間がないんで、レビューする時に目につくような部分を集中的にコーディングとデバッグ。これ、きっとGW中に出社してくれってことになるだろうな。まぁ、GW中は(最初の2日を除けば)出社してもいいと思っているので、きっと出社することになるんだろうな。

2000/04/24(Mon)

認識枠の追加などに関して、画像が縮小表示されることを忘れていた。おかげで画像を縮小表示すると、認識枠がとんでもない所に表示されたり、追加されたりする。この障害を対処するためには全部書き直さなきゃいけないのか?と憂鬱な気分になったが、2〜3つの関数の中で、最初にImage→Screenの座標系の変換をやって、結果をScreen→Imageの座標系に戻すことで回避出来ることを発見。なんて頭がいいんだろうって、本当に頭が良ければ、そんな事最初から見通して考えるべきなのである。(^_^;

ずっと前にそのうちやるからと後回しにしておいた、画像の回転によって引き起こされる認識枠の回転についてもコーディング。頭の中だけで考えていた時には結構面倒かも…と思っていたのだが、実際に図を書いて回転による座標変換のパターンを把握すると、コーディング自体は大したことがなかった。やれやれ。

「デスマーチ」という本を読んだ。なかなか身につまされるものがある。プログラマーだって人間だから、「生き残るのが大事」ってのはその通りだと思う。

Webで「自分と同程度のキャリアを持つ人の平均的な年収を教えます」という企画があって、コンパイル時間中に暇だったので洒落で自分のキャリアを入力してみたことがあった。あれから数週間経ったと思うのだが、忘れた頃にその返事が返ってきた。これが今の年収と比べてみると200万位上なんだ。(^_^;へぇ〜。

2000/04/23(Sat)

今日も休日出勤。2日連続で休日出勤している人も結構いるなぁと思っていたら、私と同じ部屋にいる人達は社内論文で休日出勤しているらしい。がんばってください。(^_^;

認識枠の手動追加・拡張縮小・移動を一気にコーディング。一気にといっても関係するデータ構造をいろいろいじらなきゃいけなかったので、その部分のコーディングが結構面倒だったし、描画する時の「大体こんなもんでいいだろう」的なパラメータを定義したり、下請け関数が足りなかったりなどと思ったよりも時間がかかった。

それでも、ドラッグ処理をWindow/Macを通じて初めてやったにも関らず、少なくとも手動追加は、書いて、コンパイルして、コンパイルエラーを取り除いて、再コンパイルしたら、ほとんど一発で動いてしまったので、ちょっと感動。「プログラムを動かしてみて決めるパラメータ」も動かしてみたら実にあっさり決まってしまったので、なおさら感動。1つだけ、「マウスカーソルは拡張・縮小の状態なのに、そこからドラッグすると認識枠追加になってしまう」という障害があって、原因が分からずにかなり悩んだ。結局原因はマウスカーソルの状態を決めるアルゴリズムと、特定の場所が拡張縮小をする場所なのかというアルゴリズムが別物だったのが原因。これ、どうすれば回避出来るのか最初途方に暮れたが、よく考えてみれば1つのロジックに合わせてしまえばいいだけだと分かったらあっさり解決してしまった。その2つの部分はかなり時間的に隔たって書いたので、そんな事もじっくり考えなきゃ分かんないんだよね。教訓:関連する部分は日を置かずに書くべし。

お昼休みにゲームショップに行ったら、PS2用GradiusIII & IVが売っていた。以前から目に入ってはいたんだが、やっぱり買ってしまった。と言う訳で、当然の流れでPS2をWebで予約。5日程度で着くらしい。わくわく、わくわく。

2000/04/22(Sat)

休日出勤。懸案になっていた認識範囲の操作に関するコーディングを行う。この部分はある程度までコーディングは進めていたんだけど、そんなの何ヶ月も前の話だから思いだすだけで時間がかかる。ざっと読んでみて大体思いだしたのだが、色々な部分、主にWindows版からそのまま持ってきた部分なんだけど、それらが不要になっていたり不適切になっていたので、ばっさり消すか、書き直してしまった。

結局Windows版から持ってきた関数はほとんど廃棄処分になった。まぁフレームワークがあれだけ違うんだから、持ってこれると思ったのがそもそも間違いだったといえよう。Mac版で新たに書いた部分でも書き直した部分はあるのだが、これは「この部分は独立した関数にすれば、別の部分で使えそう」というパターン。最初から全部を詳細に設計していればこんな事をしなくても済むんだろうけど、私の書く関数はせいぜい50行程度で、その内の10行程度を独立させようと考えるんだから、改変するのは簡単。

作業をしている途中で、描画関係の座標の取り方に問題がある部分があって、うまく認識枠の描画がされない。その部分の修正に手間取った結果、外見からみると著しい進捗がないままに終る。が、認識枠の描画関連のデバッグをしているうちに、下請け関数がかなり充実/信頼度upしたので、もう一日やるとかなり目に見える成果が出るだろう。今日書いた部分も以前書いた下請け関数が大活躍したし。明日も出社することになるだろうが、それなりに進捗しているという実感があったので、かなり気分が良かった。

2000/04/21(Fri)

大遅刻(^_^;で午後から出社。もっとも勤務体系がフレックス制度なので、遅刻でペナルティーってのはない。ただ、今日も資料づくりをやらなきゃいけないとなると気分がめげる。とにかく一連の会議や資料づくりは今日が〆切なので、気分がめげるのは今日の夕方までだと思うとちょっとほっとする。

木曜日までに書いた資料を社内掲示板に書きこんだら、何人かから修正意見などをもらったが、自分でも理不尽だなぁと思う言い訳をしたり、「だったら自分で書き直してくれ」みたいな切り札(^_^;をちらつかせて、最小限の変更だけで済ませてしまった。(^_^;;まあ、あの資料を使って取締役を前にしてプレゼンテーションするのは私じゃないから、後は実際にプレゼンテーションする人に口でごまかしてもらおう。

15時頃、実際にプレゼンテーションをするS部長が私の所にやってきて、「大丈夫か?」と聞いてきた。「大丈夫も何も、もう掲示板に上がっているじゃないですか?」と切り返したら、「まだ読んでいない」との返事。だったら読んでから大丈夫か聞いて欲しいよなと思ったし、いい加減こんなことに時間を取られて頭にきていたので、もうこの一連の会議資料づくりに時間を取られるのはゴメンだと思っていたので、ケンカ腰の対応に。

ところが、この所、出張やら研修やらで2週間私の仕事を把握していなかったNさんがもっとケンカ腰。(^_^;この2週間の間、必死になってMacの作業を進めてくれるだろうと思っていたのが、全然進捗がないことに愕然としたらしく、「会社の上層部に直談判する」とか言い出す。こっちもいい加減いらいらしていたので、Nさんの怒りに油を注いでみたりして。(^_^;

とりあえず、時間を切って修正意見を出してくれるように頼み、時間が来たら「皆さんどうもありがとうございました」と書き込んで追加の意見を封じ込めてしまった。で、会社にいると「やっぱりあそこを修正してくれよ」とか言われるかもしれない。いい加減そんな資料づくりに時間を取られるのはまっぴら御免なので、時間が切れたのを見計らって帰宅。これもフレックス制度のおかげでいつもより相当早く帰ったのだが、ペナルティーはない。

これでやっとMacのコーディングに戻れるかと思ったらほっとした。

2000/04/17〜20

会議関係の資料づくりだけじゃ嫌になるんだけど、結局資料づくりと会議に明け暮れる。この2週間こればっかり。正直いって楽しい仕事じゃないんで、いらいらがつのる。Mac版のスケジュールがずいぶん押しているので、こんな事をやっている場合じゃないと思うんだけど、会社の方針で「この作業は最優先」ということになっているからやらない訳にはいかないし…。いらいらいらいら…。

2000/04/13(Thu)

会議関係の資料作ってばかりじゃ嫌になるんで、資料作りの分担を決めて、当然自分に楽な役割を振って(^_^;、Macの作業に没頭。

K'さんがスキャナ回りのコードを書いてくれたんで、早速それをプログラムに組み込んだ。ところがスキャナから送られてくる画像を2値モードで取り込むと白黒反転して送られてくる。何でこんなことになるのかさっぱり分からないが、とりあえず白黒画像が送られてきたら、反転させれば回避出来るかも…と思って調査を開始。

スキャナから送られてくる画像データはPicHandleとして送られてくる。これ自体はWindowsで言ったらMetafileみたいなもんなので、簡単には白黒画像と判定出来ない。一旦メモリ上の仮想画面に描画するとPixMap(WindowsでいえばBMP)というデータ構造に変換出来るので、それで白黒判定が出来るんじゃないかと思った。で、やってみると白黒画像だろうがカラー画像だろうが、仮想画面を作る時に指定した色数になっちゃうし、仮想画面を作る時にその指定をしないと、今度は現在表示されている画面の色数になっちゃうんで、もともとの画像が白黒なのかという判定が出来ない。(;_;)完全な行き詰まり。

結局、いろいろやっているとどうもスキャナドライバのバグらしいので、その部分はK'さんに何とかしてもらうことになった。しっかりしてくれよ。>某Eのつくスキャナメーカー

更にコーディングを進めていったら、結局スキャナ側から送られてきたデータが白黒画像なのかを判定する必要性に迫られる。こりゃ、K'さんに読み込んだ画像が白黒なのか渡してもらうしかない。と言う訳でその相談をしようと思ったら…、そういえば社内論文を書くために今日は早めに帰ったんだっけ。で、その部分のコーディングは明日以降。どうせ明日はほとんど仕事にならんから、月曜日以降かな。

昨日の会議の続きが社内掲示板で続いている。で、その1つのスレッド。どうしてあんなに険悪になっちゃうのかなぁ。

その掲示板。Mobile関連で何か出来ませんかという分科会の中では、6人いるうち、私とMさんの書き込みがほとんどなんで、盛り上がりに欠けるし。まあ、一人はアメリカにいて、社内のノーツサーバーにアクセスするのがすごい遅いというハンディがある。一人は部長さんで別の会議に追いまくられている、残りの二人は社内論文を書くので手一杯っていう状況なんで仕方がないのは百も承知なんだけど、そんなこと言ったら私だってMac版の開発がいつ終るとも知れないデスマーチ状態なんで、大嫌いな長時間の会議を伴う、こんな事には正直関り合いたくないんだけどなぁ、などと書いてみる。

だって1〜2年後を目処に事業化することを考えなさいって言われても、それくらいのタイムスケールだと今抱えている仕事がある程度まとまるまでのタイムスパンとぶつかるから、自分じゃ関れないし、技術的にもそんなに進歩出来ると思えないから大ぼらも吹けないし、今のプロジェクトが一段落したら、別の会社に移ろうかどうしようか考えているんだから、そんな人間に「会社の数年後を考えてください」って言われても、「そんな事知らん」で終っちゃうんだよね。(^_^;;;

その分科会の掲示板。ノーツで作っているんだけれど、アメリカにいるメンバーがアクセスしにくいから、議論にそのメンバーが積極的に加われるように、発言内容をアメリカにいるメンバーにメールか何かで掲示板以外の方法で伝えてくれだって。それを言ってきた人は掲示板システムを直接いじれる訳じゃないから、立場上仕方がないし、私がその立場だったらそういうしかないだろうというのは百も承知なんだけどさ。それだったらML作って、MLの内容を適宜ノーツに反映させるほうがマシ。便利にしようという心意気は買うんだけど、結果があれじゃなぁ。ノーツにこだわるのってのが組織の硬直性を物語っている。

先週の土曜日から母親が自動車学校に行っている。既に4時間実技訓練したらしいのだが、まだ判子を1つしかもらえていないらしい。まあ年なんだし、ゆっくりやればいい。結構疲れるらしいけど、何より本人が結構面白がっているのが一番。

2000/04/12(Wed)

日曜日にアイデアまとめ〜
月曜日に会議があって〜(それとは別に火曜日の会議のための資料を作って)
火曜日に会議があって〜(それを受けて水曜日の会議のための資料を作って)
水曜日は一日会議〜
木曜日は資料をまとめ〜
金曜日は全社で会議〜(これがほぼ一日かかる)
友達よ、これが私の一週間の仕事です。テュラテュラテュラ…。

私は会議が嫌いなので、1時間以上も会議をやった非は殆ど集中力が切れてその日には仕事にならない。で、その結果全然本業のMacが進められん。いらいら。


2000/03 のぶつぶつ

2000/06 のぶつぶつ

日々のつぶやき 目次

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

目次ページ