日々のつぶやき(97/10/15〜)

1997/10/31(Fri)

アスキーがインターネット接続サービスから全面撤退。まあ、儲からないんだろうなぁ。

台湾のソフトハウスから「日本語化するからうちの会社で売ってくれないか?」という申し出があったので、そのソフトハウスが作っているゲームを試してみる。当然マニュアルとか説明も中国語なのでゲームのルールはよく分からない。(^_^;漢文をちゃんとやっていれば少しは読めるようになったのだろうか?ともかくパッケージを開けてみると、DOS用とWindows95が1つのCD-ROMに収まっているようだ。DOSバージョンを試してみたら、コンベンショナルメモリが580K以上必要だという。(-_-;)XMSも使っているはずなのになんでそんなにコンベンショナルメモリーが必要なのか理解に苦しむ。おまけに最小で40Mbyte,最大80MByteもHDを消費する。一体どんなゲームなんだ?(^_^;

で、動かしてみると、詳しくは良く分からないのだけど、どうやら「桃太郎電鉄」のようなゲームらしい。BGMが情けなくて、アマチュアバンド並みに下手くそなバンドのボーカル入り生演奏みたいなのをちらっと流すだけ。スタジオ内の雑音まで入っていて、ちゃんとしたレコーディングはやっていないんじゃないのかという感じだった。

出てくるキャラクターは「こいつ、どこかで見たことがあるぞ」というものばっかりで、出てくる女の子は「同級生」とかに出てきそうなキャラクターだったし(「同級生」はplayしていないので良く知らんけど)、これは版権をクリアーするだけで大変そうだ。(^_^;で、5分ほどいじっていたらいきなりエラーで終了。(^_^;;;これは日本語化する以前の問題だな。(^_^;

Windows95版を試してみたが、これも起動せず。これじゃあ、評価対象外。(^_^;

でも、もしこれが台湾で結構売れたというなら、日本のゲームを台湾に持って行ったらバカ売れするだろうと思った。もっとも貨幣価値が違うから、バカ儲けということにはならないだろうけど。(^_^;でも日本のゲーマーから見た台湾ゲームの評価の内容が、アメリカのゲーマーから見た日本ゲームの評価になるような気もする。まあ、私にとってはアメリカのゲームってDeepすぎてなかなか馴染みにくい所があるのだけど。(^_^;

1997/10/30(Thu)

おいおい、あっという間に2日飛ばしちゃったぜ。(^_^;で、実は木曜日になってから日記を書いていたりする。(^_^;実は金曜日の日記まで書いていたりするんだよな。(^_^;

OEM先がこっちで提供するプログラムを二次配布するためのカスタマイズ項目の部分に作業の抜けがあって火曜日に納品したものはちゃら、結局今日改めて納入する事になった。しまったぁ、という感じ。一応無事納品できてほっとする。けど、すぐにでも納品しなけりゃいけない所ってまだ結構残っているんだよな。(^_^;

1997/10/29(Wed)

2月に1度とか、半年に1度とか不定期だが、「コンピュータが嫌になる日」がやってくる。いつもはなんとも思わないし、逆にやっていると楽しかったりするのだが、こんな日はもう、見るのも嫌。何故かは分からないが、とにかく嫌になるのだ。キーボードから、ディスプレイから、もう見るのも嫌。電源ボタンに触るのも嫌だったりする。

実は昨日、いい気になって飲みすぎたせいだと思うのだけど、年休めちゃめちゃ余っているものな、昨日、制定したばかりだもんな。ということで、一回休み。スチャラカ社員の面目躍如。(^_^;あ〜ん、明日の上司の顔が恐いよ〜。(^_^;

ということで、この日は実はコンピュータには全く触らず、本を読んだり猫をからかったりして一日過ごした。

1997/10/28(Tue)

世界的に株価の大暴落。私は某証券会社に300億ほど投資しているが、某大手証券会社から電話がかかってきた。どうやら失敗して少し足が出たようだ。「バカヤロウ、殺されたいのか?」と詰め寄ったら損失補填をするからどこに振り込んだらいいか教えてくれという。腹が立ったが、まあ埋め合わせをしてくれるなら、許してやるか。ということで、振り込み先「山の家」を教えておいた。国税局が嗅ぎつけなければいいけど。(^_^;

とある社内チームから「お前も全体に(1/10000程)貢献したんだし」というお情けで、とあるホテルでの夕食会に招待される。ラッキ〜。(^_^私には不似合いなフランス料理だったけど、とってもおいしかった。ありがとうございます。<(_ _)>でも、この夕食会、考えてみると私が参加できる位なんだから、仙人さんも参加していいはずなんだけど(^_^、仙人さんの分もしっかり食べてきました。おいしかったぁ。

で、同席したTさんの話がおかしくておかしくて腹を抱えて笑った。Sさんとの掛け合い漫才のような会話はもう絶品。余技で話が楽しいとか、歌がうまいとか、踊りがうまいとか、ゲームがうまいとか、余技のある人はいいよなぁ。あ、私の場合は本業を何とかする方が先か。(^_^;

1997/10/27(Mon)

Arachnophiliaというなんだか最近updateが頻繁に行われているHTMLエディタがある。Free Positionなんかでよくその情報を見るのだが、私の試した環境では 文字化けする事があって、あまり使えないなと感じた。でも日本語も大丈夫と(どこかに)書いてあった記憶があるので、何か設定が必要なのだろう。そう言えばこのソフトはCareWareという立場を取っていて、「お金以外の別のものが欲しい」というソフトだ。具体的には、(例によって超訳すると)1週間、もしくは1日でもいいから、ぶつくさ人に文句を言うのを止めてくれ、というのが使用条件。(いい加減な訳なので、ちゃんと読みたい人はリンクをたどって原文を読む事。)ということはこのソフトを使うには、このページの更新をしばらく休まないといけないらしい。このページって、結局不満やら泣き言なんかを書いているだけのページだもの。(^_^;とりあえずこのソフトを使うのは日本語表示がまともにできるのを確認するまでパスだな。

でもきっとこのソフトウェアを書いている人ってのは、よっぽどの善人なんだと思う。なんかの宗教理念でも入っているのか?とも思ったけど、一応さっきのCareWareのページではそれを否定しているし、「ぶ〜ぶ〜文句ばっかり言っていないで、自分のやるべき事をやって、後は笑っているような日があってもいいじゃないか」という思想は「世の中、それだけで全てが解決するほど甘くはない」と思いつつも、私の場合には1日くらいなら実践可能だとも思えるし、1日くらいそんな日があっても悪くないな。

Javaについて。確かにJavaで何でもかんでもできる訳じゃないのは事実。仮想マシンだからそんなに速くないというのも当たっている。でも「Write Once, Run Anywhere」という設計思想は「美しい」と思うし、その点で1つの言語の枠に収まらない可能性を持っていると感じる。昔、機種の違いをDOSとかWindowsとかのOSがある程度吸収してくれたように、今度はOSの違いをJavaが吸収してくれるのではないかという期待がこれだけJavaがもてはやされる一因ではないかと思う。だからJavaにWindowsのAPIを呼び出せるようなI/Fを入れるのは私は「美しくない」と思うし、大体そんなにWindows APIを呼びたければ最初から別の言語C/C++なりVisual Basicなりで書くって。(^_^;まあ、仕事でJavaを使って書くというのはパッケージプログラマーの立場からすると、今の所Windows95を入れた = Javaが動く(JDKとか入れてない人もいる)という訳じゃないから、あり得ないと思うけど…。なんだ、Java擁護派なのに、結局そうなるのか。(^_^;

1997/10/26(Sun)

サッカーのワールドカップ予選、日本負けちゃった。攻めてはいるんだけど、なかなか点が取れない。あっという間にゲームオーバー。これで悲願のワールドカップ出場は、ほぼその次の大会までお預けと見た。「もうちょっとだったのに、惜しかったね、仕方がないよね」と思うけど、逆に「Jリーグはアジア予選も突破できる力もないのに、あんなに大騒ぎして金を取っていたのか?」と毒づいてしまう。ワールドカップ開催国に立候補なんかしなけりゃ、初出場が開催国特権でという大恥をさらす心配をしなくても良かったのに。(^_^;

ただ、ロスタイムが短すぎたのがちょっと不満。45分を過ぎたらあれだけケガで倒れた選手がいたのにほとんどロスタイム無しだったもの。まあ、アメリカンフットボールのように、きっちり時計に関するルールがあればいいんだろうけど、サッカーの場合には試合の終了を宣言するのは結局審判の胸先三寸な訳で、もうちょっと何とかならないだろうか。

1997/10/25(Sat)

私の大学時代の先輩にハンドルを「yahho」にしている人がいる。有名な検索エンジン「yahoo」とはあまり関係がないらしい。で、ふと気になってgooで「yahho」で検索したら出るわ出るわ、5000件近くヒットした。アメリカのある検索エンジン(どれだったか忘れた)で検索しても3000件近くヒットすると聞いた。あの先輩がこんなに有名人だとは思わなかった。(^_^;今度会ったらサインでも貰おうかな。まあyahhoという検索エンジンも過去に実在したんだけどね。(^_^;

数理研究会という、なんだかものものしい名前が付いているが、趣味で数学の勉強会をやろうという趣旨の会に参加する。まあお前も大学時代に数学をやっていたんだったらちっとは参加してみろ、とけしかけられて参加した。まあ、変人の集まりだな。(^_^;実は半年くらい前から活動していたんだけど、なかなか時間が取れずに今回初参加という事になった。今の所、参加人数は私を含めて6人。とりあえず発起人が物理をやっていた人で、量子力学に興味があると言う事もあって、とりあえず分かりやすい所からフーリエ級数から始めて、ちゃんと偏微分方程式の基礎を勉強しようという趣旨らしい。私はフーリエ変換の辺りとかは、実は全然勉強していないので大丈夫だろうかと心配になる。

勉強会の形式はセミナー形式でKさんがテキストの省略されている部分までちゃんと証明を付けていって、 リスナーが時々に応じて突っ込みを入れていくというオーソドックスなもの。ちなみに数学のテキストなり論文だと、「これは自明」とか書いてあって「まあそんなものだろう」と思っているとちゃんと証明するにはとてつもない努力が必要だったりする事が良くある(著者が証明するのが面倒臭くって「自明」という言葉で済ませているのではないかと勘繰りたくなる部分も結構ある)し、道楽でやっているのだし、そもそもフルタイムで数学のことを考えている訳じゃないから、半年で30ページくらいしか進まないというのもうなずける。フルタイム勉強に使える数学科の学生だったら1日10ページ以上のペースで勉強しないと間に合わないんだけどね。(^_^;

ただ、大学で数学をやっていたといっても専門が微妙にずれるから半分素人と同じだ。(^_^;でも久しぶりに数学をやって頭が痛くなった。ただし不愉快な頭の痛さではないのがクールだ。

この会に私と同じく初参加のS大の大学生(物理学科の3年)が2人加わってきた。彼らは物理の人なので数学での議論の展開に相当戸惑ったようだ。まあ数学だと、「あれをやっちゃいけない、これをやっちゃったらこうなる」とか色々文句を言うのだが、物理の世界ではそこら辺はさっと流すみたいだし。でもLebesgue測度も分からないとちょっと議論についていくのが難しいかもしれない。

1997/10/24(Fri)

Gateway2000がキャンセル製品などをオークションに出しているらしい。120Mhzとか150Mhzの型落ち製品だけど、3〜6万円ということで、Gateway2000のWWWページにはアクセスが集中しているらしい。行ってみたけど、全然入れなかった。(^_^;聞く所によると既に価格が15万程度まで上がっているらしい。買うつもりのない人が意図的に値を釣り上げているとしか思えないね。で、これだけ出すんだったら、もうちょっと頑張れば、15''モニター、Pentium MMX 166Mhz、512Kbyteキャッシュ、16Mhzメモリ、2.1Gbyte HDDの基本スペックで17万ほどで手に入る。Pentium100以上、メモリ16M以上、HD2Gbyt以上のマシン、Linuxでサポートされているビデオカードが入っているマシンが5万円以下で手に入るんだったら即買いなんだけどなぁ。そんなマシンってメーカーには余っていないかなぁ。余っていて捨てるくらいだったら買いたいんだけどなぁ。こっちは未だにDX2をPentium83に乗せ変えたマシンでLinuxを動かしている位なんだから。(^_^;

「戦え!リロード戦士」だけど、やっぱり変な事を考えると、バカ受けて速攻で作ってしまう人がいた。(^_^;(まあ、基本的には難しくないプログラムだと思うけど)で、早速ダウンロードして何故そんなに早くできるのか調べてみる。なるほど、Internet Explorerオブジェクトの使い方がこんな所にあったのか。Office97に載っているWebrowser.hlpというファイルにこのオブジェクトの使い方が載っていた。教えてくれたM女史には感謝。だけど、ロードが終ってから2秒後にリロードというのはちょっと無茶。(^_^;(もともと無茶なネタなんだけど、こっちは更新頻度をずっと落としてあるし、ある程度時間が経ったら終了するように作ってある。)こっちで作っていたのはCGIだけを起動するように作ろうとしていたので、ネットワークにかかる負担はこっちのほうが軽いのがせめてもの救いか。(^_^;

ただし、今回はソケットプログラミングを勉強するというのがそもそもの目的なので、Internet Explorerオブジェクトを張り付けて終っちゃったら全然勉強にならない。(^_^;会社のOさんにメールで聞いたら、速攻で答えてくれて、Proxyを使う場合には、Proxyとのソケットを作ってからそれに対して、"GET"だのをしてあげればいいという。なるほど。MFCレベルではどうなのか良く調べてみたら、CInternetSessionのコンストラクタの第4パラメータにProxyサーバーの設定項目があり、"ProxyIP:ProxyPort"と言った感じで設定するとうまくいった。あれこれ調べたけど、結局は簡単だったんだなぁ。このクラスがどんなDLLを必要とするのかは良く知らないが、多分配布可能DLLのリストには入っているだろうから、まずはこれで一安心。

ちなみに、私の会社では大して慌てていないような質問とか、今回のようなど〜でもいいような質問はメールでやり取りするのが普通だ。大抵の連絡事項も(特に急ぎじゃない限り)メールで済ませている。これ、社員全員が1日一回メールボックスを見るようになると、とっても便利。だって、例えばあと30分で完成させないと間に合わない!とかいう状況で、大して急ぎでもない用事で声をかけられたら、やっぱ怒っちゃうもの。(^_^;;こんな時はメールを出しておいて、制定が終った後ゆっくり答えれば質問するほうもわざわざ移動しなくて済むし、余計なトラブルを起こさなくて済む。もっとも構成メンバーがある程度キーボード操作に慣れているのが前提だけど。(^_^;

突っ込みが入らないとNさんが嘆いていた。え〜と、すいません。更新されていたのを見逃しました。(^_^;「娘に着せる」ねぇ。(-o-)「自分が着たいんだ」とさっさと告白してしまいなさいとご忠告申し上げます。(爆笑)でも5万円かぁ。この前Star TrekのLDを買って完全に金欠状態だからなぁ。プレゼントするにはちょっと…。(^_^;

そうか、ひょっとしてあの「一人でいる時に何やら聞えてくる声」というのは無線だったのか。(しらじらしい)私はてっきり宇宙人からの電波だと思っていた。あ、電波には違いないか。(^_^;やっぱりこの手の問題は元を断つしかない。だいたい電波の発生源は分かっている。あとは電波を出している所を押さえて怒鳴り込めばいいだけだ、と思い、早速実行。で、電波の発生源を特定して、電波の発生源を止めて、怒鳴り込もうとした。一応発生源は分かったんだけど、それを止めようとしたら、止まってくれなくて、哀れトラックに踏みつぶされてしまいました。わはは、この文章あの世で書いているんですわ。やっぱり高速道路のど真ん中に飛び出して「こりゃ〜、止まれ!」というのは駄目みたい。発生源が近所の高速道路じゃ、この手は使えないみたい。(^_^;

NECのNXが発売された。ニュースによるとタイプが20種類以上。細かく数えると数百種類にもなるらしい。まあHDとかメモリのサイズが違うといったものだろうが、在庫とかは大丈夫なのだろうか?気になって近所のLaoxに行ってみたらノートタイプとデスクトップタイプの2機種だけ展示していた。なんだか店員さんがデスクトップタイプの前で慌てふためいて色々やっているので触ってみるのはあきらめた。でもキーボードとかがUSB接続って言っているけど、これってLinuxとかMS-DOSとかOS/2とか既存のOSでも大丈夫なのだろうか?(まあ大丈夫なのだろうけど)

USBで思い出した。昔Ah!Ski(綴りはこれであっていたっけ?)でマウスだかジョイスティックを20本以上つなげられる機種の冗談記事が載っていて、「これでみんなでアメフトゲームをやっている」とか書いてあった気がするが、USBって確かつなげられるデバイスが100とか200とかという数だったと思うので、もうこうなると10年前の、作れるにしても現実問題として採算が合わないからこそ成立していた馬鹿話が、USB対応のJoyStickを沢山買うだけのお金があるユーザーがいて、それに対応したゲームがマーケットとして成立するというあながち馬鹿話として笑っていられないレベルの状況さえ整えば、システムとしては対応できるというのはすごい話だと思う。なんか勘違いしているような気もするけど。(^_^;

「マーキュリー計画」というのが進行しているらしくて、なんでもコンピュータのプログラミングとか、仕事の上での失敗談を送って面白かったものには商品を出そうという計画らしい。もう、商品は貰ったのも同然かな。(^_^;;ちゃんと貰えるように「『どつぼ』の記録」もちゃんと更新しないと…。

1997/10/23(Thu)

とある人の日記から。多分NetMeetingのログだと思う。


2:30:20 あゆ AYU あぁ仕様変えるのって面倒っこい…

2:31:43 風仙 Shisen まあ、そりゃしかたないっすよ。

確かに仕様を変えるのは、新たにコーディングをしなくちゃいけないわ、検査は最初からやり直さなくちゃいけないわ、で面倒なんだけど仕方がないと思う。これは風仙さんの言い分のほうがもっともだ。たとえ、dead lineまで半日もないのに、2時間毎に送られてくる仕様変更だとしても。泣く子とお客には勝てません。(^_^;さすが仙人さん。分かっていらっしゃる。(^_^;;私は過去に制定ぎりぎり30分前に仕様変更を言われて、絶句した事がある。(結局その仕様変更は拒否させてもらったが)

昨日思い付いた冗談プログラム。「戦え!リロード戦士」の準備を兼ねて、socketを使ったプログラムをちょっと作ってみる。といっても全然大したものじゃなくて、ボタンを押すと特定のサーバーからHTMLデータを取ってくるというものだ。一応動く事は動くのだが、Proxyを越えられない。Visual C++(ver4.2)のBooks On Lineを調べればどこかに載っているだろうと思って探してみたのだが、うまく見つけられない。一体どうすればProxyを越えられるのだろうか…。

ところが答えは意外にあっさり見つかった。それもとってもお手軽な方法だ。Visual Basic 5.0かVisual C/C++ 5.0をインストールすればいい。Visual Basic 5.0ならINetオブジェクトを使えば、Internet ExplorerのProxy設定を見に行ってちゃんとProxy経由でデータを取り込んでくれる。(Visual C/C++ 5.0ではProxy関連のパラメータが追加されているようだが未確認。)でもなぁ、Visual Basic 5.0とかはいまいちバイナリーデータをStringで扱おうとするとなんだか動きが変だしなぁ。まあByte配列で処理しちゃえばいいんだけど。

で、難しい事は全部OCXに任せてしまうとして(^_^;、一定時間毎に特定のURLを読みに行くというコードを組んだら、(まだ相当機能不足だけど)、疲れを知らないリロード戦士「戦え!リロード戦士」のプロトタイプが出来上がってしまった。(^_^;しかし、完成したのはいいけれどこんな傍迷惑なプログラムもないな。(^_^;当然門外不出の逸品になるだろう。(^_^;;

まあ普通はDDEとかを使って、リロードボタンを一定時間毎に押す、なんてプログラムを書けばいいなんてのも分かっているんだけど、何事も勉強、勉強。(^_^;

1997/10/22(Wed)

時々、一人で部屋にいると怪しげな声が聞こえる。内容はほとんど聞き取れないのだが、人間の声だとはっきり分かる。もちろん部屋には私以外誰もいない。大体コンピュータに接続されているスピーカーから聞えてくるんだけど、別に.wavとかを再生している訳でもないから、スピーカーから音が出てくるはずもない。でも、やっぱり時々怪しげな声は聞こえることがある。これはいよいよ幻聴が始まったのか?精神科のお医者さんに見てもらったほうがいいかもしれない。高速道路が近くにできて、耳を済まさないと聞こえないような騒音で安眠できなくなったせいに違いない。(^_^;

web上で掲示板を個人で開設している所がある。私はWWW上の掲示板はあまり使ったことがないし、今の所作る気もないけれど、和気あいあいとやっている所が多いようだ。応援しようという気はないが、仲よき事はよき事かな。ところがそのような掲示板をアタックの対象にする人もいるらしい。意味不明、もしくは下劣な内容を大量に書き込み、その掲示板を運営不可能にしてしまう訳だ。一体何が楽しくてそんな事をやるのか見当が付かないが、最近目にした掲示板で、アタッカーが書き込み、主催者が削除するということを繰り返したあげく、主催者が疲れてしまって、掲示板を閉鎖してしまった所があった。かわいそうに。

まあ、ある程度書き込みをブロックしておかないとそんな変な人が来た時に対処不能になるのは分かると思うのだけど、それにしてもそのような事があると悲しくなってしまう。まあ、掲示板の主催者が喧嘩をしたからとか、理由のある所も中にはあるんだろうけどね。

先日、IE4のセキュリティーパッチを入れた。いずれ出るとは思っていたけど、私の予想では10日くらいで最初のセキュリティーホールが見つかると思っていたから、以外と穴が埋まっているともいえる。(^_^;「IEにセキュリティーなんてあったのか?」という話もあるし、今後続々とこの手の穴が見つかるとは思うけど。ただ、このパッチを当ててもバージョン番号は変わらないようだ。つまりぱっと見にはパッチが入っているか入っていないか分からないということ。でもさすがMicrosoft、ちゃんと見る所を見るとパッチが入っているか分かるようになっている。確かメニューの編集からたどってあるダイアログを出すとパッチが入っていないと普通に表示されるけど、パッチが入っていると一風変わったダイアログが表示されるらしい。(確かやじうまうんたらというところに書いてあった。)まあbugだろうけど、それを使ってパッチが当たっているか確認できる。ほとんどビョーキ。(^_^;

昨日のrebootしないよという件。やっぱり再現するという。で、ソースファイルを読んでみても「再起動ボタン」を押せばExitWindowsExをcallするように作ってあるし、事実他のマシンではちゃんとrebootする。ExitWindowsExを呼んでもrebootしないんだったら、それはOSが悪いとしかいいようがないし、回避のしようもない。全くお手上げである。大体ExitWindowsExなんてAPIはアプリケーションが呼ぶようなAPIじゃないし、そのAPIを利用するなら、その部分に関してはこっちは責任が取れないと言っておいたんだから、それを色々言われてもなぁ。

帰りがけに本屋でちょいと本を立ち読みしていたら、高校生らしい二人連れが話をしながら近づいてきた。まあこっちも向こうもお互いを気になんかしていないのだが、通り過ぎる瞬間に「いやぁ、この年になって初めて知ったよ」と言っていたのを聞く。別に悪くはないんだけど、その台詞を口にするのには若すぎないか?(^_^;思わず苦笑。

暗号化するプログラムが一応Visual Basicから呼べる程度にはなったので、暫定バージョンとしてM女史に送る。後で公開するつもりだが、暗号化プログラムの中心部分はNIFTY SERVEから引っ張ってきたものなので、元の作者にその旨メールを送る。今度休みが取れたらもうちょっとまともにしよう。ドキュメントも作らなくちゃいけないし。少なくともソース位はこのサイトで公開すると思う。まあキーの長さが64bitしかないし、そのうちCrypt APIがWindowsに入ってくるから遠からず役に立たなくなるのは目に見えているんだけど。(^_^;

事故でSさんのページのアクセスカウンターが0に戻ってしまったようだ。心中お察しします。で、それにからんである思い付いた冗談プログラム。疲れ知らずのリロード戦士。(^_^;時間ができたら作ってみようと思うけど、ほとんど迷惑プログラムだな。(^_^;

1997/10/21(Tue)

誰も悪くはないのにぃ〜、悲しいことな〜らいつ〜もある〜(by中島みゆき)という一日だった。(-_;何が悲しくて代休を取った日の午後から8時間も会社にいなけりゃならんのだ?でも、上司にも同僚にもクライアントにも非はない。私だってそんなに悪くはない。(「そんなに」というフレーズが気にかかるのは気のせいです。(^_^;)「で、あいつのせいだ」とか言えれば「まあ、私も同じことやっちゃうかも」と思っているとあまり腹も立たないし、最悪「xxxのバカヤロウ」とでもぶつぶつ言えば少しは気が晴れる。ところが、誰も悪くはない、強いて言えばうまく動かないコードを書いた私が悪いんだけど、不具合が出た所は私と同じ状況に立たされたプログラマーが1000人いたら999人まで同じコードを書くだろう、というところでつまずいたので、誰に当たり散らす事も出来ず、余計に腹が立つ。唯一悪いとすれば神様だろう。ええい、いってやる。神様のバッカヤロ〜。←無神論者の癖に。

ただでさえ年休が消化できないでいるのに、最近休日出勤が続いていたから代休が溜まっているし、この前製品を制定したばかりだし、次の制定迄には2週間ほどあるし(最近の私の制定スケジュールは1週間に1回というのも珍しくなくなっているから、それから考えれば余裕のあるほうだ(^_^;)、以前から足のない、というか運転免許がないのであまり遠出が出来ない(私の住んでいる所はそんなど田舎なのだ)母親から「遠出をしたいよ〜」とせがまれてもいたし、M女史のためにDLLも書かなくちゃいけないし、ストレスも溜まっているし、体調もそんなに良くないし、要するに私のわがままで(^_^;、上司のNさんには悪いと思いつつも、今日は休むことにした。まあ年休と代休をあわせれば一ヶ月近く休めることになっている(が、当然そんなに休むことは実際には許されない)から今日くらい休んでもいいだろう。さもなきゃ、休める時がなくなってしまう。(^_^;

午前中は車に母親を乗せて、母親が行きたがっていた、書道関連のアイテムを売っているお店に行ったり、母親の仕事である洋裁の関連アイテムを売っているお店に行ったりした。今日は、父親が知り合いと遊びに行っているから、こっちも夕方くらいになったら近くの温泉に行きましょう、などと話していた。

一旦家に帰って、懸案のDLLでも書こうかな、とお昼ご飯を食べながらつらつら思っていたら、会社から電話がかかってくる。まあ、ちょっとした事なのだけれど、急ぎの用事らしいし、自宅にはその質問に答えるための資料なんてのは全然ないからあやふやな記憶に頼ってしか答えられない。まあ大して時間がかかりそうもなさそうな感じだったので、1時間もあれば終るだろう、と高をくくって会社に行く。この時点でもう今日は休暇でなくなっているのだが(^_^;、1時間位だったら、行き帰りまで含めて1.5時間位。すでに今日は休暇扱いとして処理されているけど、まあ1.5時間位付き合うんだったら、夕方に温泉に行く約束も守れるし、と思っていた。

しかし予想は大甘だった。(^_^;N社から言ってくる不具合がどうしても再現できないし、原因もさっぱり分からない。不具合というのが、「ある処理を終ったらrebootする仕様なのに、N社で用意したあるマシンでは(実はそのマシンだけ)rebootしない」というものだった。rebootするなんてExitWindowsExというAPIを呼ぶだけだし、ソースを見てみると確実にそのAPIを呼んでいる。パラメータもおかしくない。実際その他のマシンではちゃんとrebootする。APIを呼んできちんとrebootしないなんてのはどうせWindows95のシステムがぶっこわれているに決まっているから、そんな状況ではアプリケーションからはどうしようもない。(でもAPIをcallするだけでreboot出来てしまうってとっても変だと思う。)で、それを確かめるために、APIがちゃんと動作しない事を確かめるプログラム(^_^;を組んで見たら、そっちはちゃんと動作するらしい。(?_?このようなbugが一番質が悪い。普通はAPIを呼んで反応しないなら、別のAPIを使って何とかそのAPIを使うのを止めるようにするのだが、なんせrebootするという特殊なAPIなので他の手段の取りようがない。あっという間に1時間、2時間と経っていく。

会社に着いてから5時間ほど経った頃、当然「夕方に温泉に行こう計画」は御破算になっているのだが、プログラム修正を何もしていないにも関らず、「ちゃんと動くようになりました」との連絡が届く。ただ、心配なので問題が起きたマシンにWindows95を再インストールしてみて確かめてみるからとの事。おいおい、それは問題を知らんふりしている事にしかならないと思うぞ、と思いつつ向こうではHDのフォーマットを始めちゃったみたいだし、もうなるようになれという気分。問題がそれで解決されるにせよ、しないにせよ、向こうがWindows95をインストールしてテストが終るまでこっちは帰れない訳だ。

その間にもこちらはひたすらテスト。色々状況を変えてみるが、ExitWindowsExというAPIの性質から言って、前後の状況が関係しているなんて考えられないので、rebootが機能しない原因が皆目つかめない。向こうでももう再現できなくなったといっているし。これはもう2つの事に原因が絞られる事になったと思う。小人さんがAPIコールを発効するのを邪魔しているのか、神様が意地悪をしているのか。どちらの原因にしても私の力では対処不可能だ。(^_^;

結局、何故reboot出来なかったのか分からなかったが、Windows95をインストールしなおしたらちゃんとreboot出来るみたいだし、ということでN社から一応のOKが出たのでようやく帰宅。え〜と、会社に行ったのが13:00で、解放されたのが21:00でって、結局平日並みの仕事をしていたんじゃないか。(^_^;その他突然飛び込んで来た3件の処理を平行してやっていたのでかなり忙しい部類の日になってしまった。仕事のタイミングから言って、今日くらい休めると思ったのにぃ。シクシク。再来週は絶対代休分くらいは休むぞ。多分休めるんじゃないかな。休めればいいな。ま、休出する覚悟でいておけってのが正解かな。(^_^;

すんません。暗号部分は金曜日まで待って下さい。(本当は今日仕上げるつもりだったけど…)(T_T)>M女史

1997/10/20(Mon)

さて、そろそろネタが尽きてきたのだろうか。あまり書くことがないなぁ。(^_^;

「ちょ〜分かりやすい!Perl & ruby」というタイトルを見て、ふらふらとTRY! PC 11月号(QC出版)を買う。なんでも「スーパーユーザーをめざす人のためのマガシン」というふれこみだ。で、とりあえず原信一郎氏の書いたPerlの部分を見てみる。ただ、紙面が少ないせいか、これがちょ〜やさしいPerlの話だとは思えなかった。まあ、頑張って伝えようという気概は分かるんだけど…。Perl4は知っていたけど、これでPerl5のオブジェクト思考を分かれ、というのはちょっと無理だよなぁ。(^_^;好感が持てるのは、記事の末尾にそこそこ適当だと思われる情報源のURLや参考文献を明記してあること。Perlが高々10ページ程度で説明できるはずはないので、まあそんなものか、と思った。

で、rubyの解説。Perlの解説はある程度こっちに予備知識があったので、「ふんふん」と読めてrubyは全然予備知識がなかったせいだと思うけど、この「ちょ〜」易しいというのはふむむぅなのだ。「a = b」という構文は代入じゃなくて「あえて言えば『リファレンスの値渡し』」だという。あえていえば、というのが良く分からくて、さらに「リファレンスの値渡し」というのが良く分からない。普通の「リファレンス渡し」とはどう違うのだ?(?_?)でもサンプルを見る限りでは単なるリファレンス渡しみたいだし…。まあ、この記事に書かれた参考文献をちゃんとたどっていけば分かるんだろうけど、「ちょ〜分かりやすいruby」への導入だったらもうちょっと紙面をさいて欲しかった。Perlは「プログラミングPerl」という名著があるのだが、rubyはそのような「これ!」という本がないみたいだし、あまり聞かない(^_^;)言語だっただけにもうちょっと詳しく解説して欲しかった。

ただ、ある記事にどれくらいの紙面を使うか?というのはライターが決められる事ではないので、ライターにボリューム不足を責めるのは酷だろう。あと倍の紙面のスペースがあったら、また別の記事になると思う。ここら辺、編集者に(マイナー路線を追求するならともかく)力量が必要だろう。

この企画に関しては、意欲は買うし、与えられたページが少ないし、そのくせ、その記事を深く突っ込もうと思えばちゃんと参考文献が載っているから、そこそこ深く追いかけられるような気がして、評価したいんだけど、肝心の記事の内容がスペースの関係上、そんなに分かりやすくないので、ふむむぅなのであった。(^_^;まあ、方向性はいいとは思うんだけど、いかんせん内容をはしょりすぎている。まあ方向性も内容もない、参考文献も載っていない、すっからかんの雑誌やら本よりはよっぽどましだけど。

ただrubyについては面白いな、と思うので時間があればいじってみたいと思わせる記事だった。興味のある人はrubyのホームページをどうぞ。当たり前だが、このURLもTryPCの記事からの受け売りだ。ちゃんとした参考文献が書いてあると後で調べる気にもなるし、参照元として取っておく気にもなるんだよね。

う〜む、誉めているつもりがあんまり誉めているように感じないなぁ。(^_^;

この雑誌に関しては他に感じた事もあるので、ネタがなくなったら書く事にしよう。まあどうせそうやって忘れるに決まっているが。(^_^;

1997/10/19(Sun)

昨日は昼間ずっと寝ていて、夜になってから風邪薬を飲んでさらに死んだように眠っていたせいもあって、結構早く(といっても8時頃)に目が覚める。さすがに昨日1日で目が腐るほど眠っていたので、眠くはないのだが、眠りすぎで頭がぼ〜とする。あ、ぼ〜としているのはいつものことか。(^_^;とりあえず、昨日休日出勤をして仕上げるはずだったお仕事をしに、会社にいく。日曜日の早朝(といっても9時頃)だというのに、ちらほら出勤している人がいて、「うちの社員(私は除く)はつくづく会社が好きなんだな」と苦笑い。(^_^;

で、仕事にかかる。今やっているのは、I社の仕様変更に伴う作業だけど、今回言ってきた変更は手の込んだ事をやろうと思えばいくらでも手が加えられそうで、どれにしようか迷ったのだが、とにかく期限があるので、一番手のかからない方法を選択した。本当にあんな安直な方法でいいんだろうか?(^_^;とも思うけど、あまり手の込んだ事をやっても時間がかかるばかりで大して効果が望めないので、まあいいか。(^_^;

で、一通り、金曜日までの修正作業の見直しと、新たな修正作業を終えた積もりで、debug開始。そしたら全然動かない。(^_^;大慌てでソースを見なおすと、DLLを変更したのに伴って、別のモジュールも変更する必要がある事が分かった。何とか修正できて、ほっとする。

なんとか一通り検査を終えて19時頃、宅急便に「荷物を取りに来てください」と電話をしたら、「悪いねぇ、今日は18時で締め切っちゃったんですよ。」がちょ〜ん。(+_+;仕方がないので、先方に連絡を取り(当然向こうの担当者は休んでいる)、「(ごめんなさい)^3、とりあえずそっちが明日受け取れるようにしておくから」と連絡しておいて、向こうのサーバーにfixした製品をまるごとアップロード。まあ、Internet経由で送る場合、普通だったら途中で誰かがデーターをかっぱらう事もあると想定しなければいけないのだが、この製品の場合、どうせ後でタダで配る訳だし、最初からInternet経由でも送るつもりだったし、まあいいか。(^_^;

一通り送った後でもうちょっと念のために2時間位動かしてみる。特に不具合はないみたいで安心する。

で、懸案の暗号化プログラムをいじってみる。仕事じゃないから楽しくって。(^_^;でもこのプログラム(DLL)は直接自分で使う訳じゃないから、Interfaceをうまく考えないと使う人が泣きを見る事になる。いや、泣かせてもいいんですけどね。(^_^;以前書いた暗号化プログラムのI/FはC/C++のメモリ管理にべったり依存した構造になっていたし、コメントもまともに書かなくちゃ、ということでちょっと手間取る。そうこうしているうちにちょっと遅くなったので、後は家に帰ってやるベエ、と思って、家に着いたら、しまった、ソースファイルをコピーしたFDを会社に忘れているでやんの。(-_-;Mさんには、せっかくはげましのmailをいただいたのに申し訳ない。<(_ _;;)>惚けているよなぁ。<自分

散々迷ったのだが、かねてから懸案のニュースリーダー。とうとう我慢しきれずに、ニュースリーダーをFree Agent(無料)からForte Agent(有料)に乗り換えた。Forte Agentは、DeleGateとかを使わないと日本語表示、投稿できない、表示できても範囲指定すると文字化けする、2byte文字の所ではbackspace2つ叩かないと1文字消去できない云々、と色々不満はあるんだが、いい加減匿名でネットニュースに書いてある記事をスキップするのに飽きた。(^_^;で、Forte Agentを使ってみるが、これっていいと思う。ただし英語で使うなら。頑張れ、日本語ニュースリーダー。(^_^;

Visual Basicに関するTIPS。ただし、Visual Basic 4.0。私はVisual Basic 5.0は使ったことがないので、若干違いがあるかもしれない。まあ、hintにでもなれば幸いです。(^_^;>Aさん。といってもwell known factですけど。(^_^;

まず、文字列の渡し方。Visual BasicからDLLに渡すにはほとんど関数宣言以外に、何も考える事はありません。(^_^;Visual BasicはBSTRという構造で文字列を管理していますが、DLLに渡す時に適当に変換してくれます。mylib.dllの中のmyfuncという関数を呼びたければ



Declare Function myfunc Lib "mylib" Alias "myfunc" _

  (ByVal lpText As String) As Long

と宣言して、


	Dim strMyString As String

	strMyString = "This is Test"

	myfunc(strMyString)

とすれば、lpTextは、DLL側ではconst char *の用にアクセスできます。(lpTex[]はともかく、lpTextを変更した場合にはどうなるか良く知らない。多分うれしくない事が起きそうな気がするけど。(^_^;)

Visual Basicから呼び出したDLLが、Visual Basicに文字列を返す時には、あらかじめDLLが書き込むスペースをVisual Basic側で用意しておく必要があります。



	Dim strMyString As String

	Dim lngRet As Long

	Const BUF_MAX = 255

	strMyString = String(BUF_MAX, 0)

	lngRet = myfunc(strMyString, BUF_MAX)

BUF_MAXに「まあ、これ位あれば大丈夫だろう」という値を入れておいてから、myfuncを呼ぶ訳ですが、実際には「そんなの動かしてみるまで分からない」という場合が多いので、lngRetの戻り地を「あらかじめ確保した領域が充分だったら-1を、そうでなかったら確保すべき領域の大きさをバイト単位で返す」と決めておいて、


	Dim strMyString As String

	Dim lngRet As Long

	Const BUF_MAX = 255

	strMyString = string(BUF_MAX, 0)

	lngRet = myfunc(strMyString, BUF_MAX)

	If -1 <> lngRet Then

		strMyString = String(lngRet, 0)

		lngRet = myfunc(strMyString, lngTest)

	End If

といった風に実装します。ただし、話はこれで終らなくて、C/C++の文字列が\0で終るのに対して、Visual Basicの文字列は文字列長も含めて管理しているので、DLLから受け取った文字列はVisual Basicの文字列として再構成する必要があります。例えば、


Function CStr2VBStr(strC As String) As String

	Dim strRet As String

	Dim i As Long

	i = 1

	While Asc(Mid(strC, i, 1)) <> 0

		strRet = strRet + Mid(strC, i, 1)

		i = i + 1

	Wend

	CStr2VBStr = strRet

End Function

の様な関数を使って、DLLから受け取った文字列を再構成します。先程の場合だと、


	Dim strMyString As String

	Dim lngRet As Long

	Const BUF_MAX = 255

	strMyString = String(BUF_MAX, 0)

	lngRet = myfunc(strMyString, BUF_MAX)

	If -1 <> lngRet Then

		strMyString = String(lngRet, 0)

		lngRet = myfunc(strMyString, lngTest)

	End If

	Dim strDLLResult As String

	strDLLResult = CStr2VBStr(strMyString)

とすれば多分大丈夫だと思います。

アイコンを操作する場合ですが、私は試したことがないのですが、自分でアイコンファイルを編集するという場合でなければ、PictureBox(or Image).Picture.HANDLEがHICONを返してくれるようなので、それを使えば、表示するだけだったら、何とかなるでしょう。(無責任)(^_^;

まあ、こんなのとっくに知っていて、DLLとのやりとりに時間がかかるから、なんとかしたいとかそういった高級なレベルの話だと思うから、役に立たないだろうなぁ。(^_^;;;>Aさん

1997/10/18(Sat)

朝、目が覚めて、「体がだるいからもうちょっと寝ていよう」とそのまま布団に潜り込む。zzz...。良く寝たなあと思ってふと気がつくと部屋の中が真っ暗。げろげろ、寝ているうちに一日が過ぎてしまったぁ、(^_^;という一日だった。こんな過し方をした日には、これ以上何も書くことがない。(^_^;

1997/10/17(Fri)

あいかわらず、体調が優れない。昨日は家に帰ってからほとんど倒れるように寝ていた。

今日は会社の半期ごとの業績発表と、次の半年の業務計画の発表会があった。毎年の事だけど、前期は業績(=売り上げ成績)が良くない。まあ、年度の始めに無理っぽい計画を立てて、前期で修正計画を出し、後期終了直前になんとかそこそこの数字を出すというのがうちの会社の例年のパターンだが、今回は下手をするとトータル赤字になってしまうかも?という数字だ。まあ、後期に頑張りましょう、ということになった。

そういえば売り上げが少ないという理由で、査定が「頑張りました」レベルから一つ下がって「給料分しかしていません」レベルになった。実際、業務の達成レベルが100%になっていなかったし(部分的には100%以上やった所もあったが、全体としては自己評価で90%くらい)、全体がこれだけ業績が悪ければ仕方がないな、と思う。まあ、これだけ業績が悪ければ私の査定も、そんなものだろう。まあ、「給料分さえしていない」という査定でなく、生きていける程度の給料を貰えれば気にしないことにしているしって、そんなことを言ったら上司は怒るだろうなぁ。(^_^;;それにしても今の仕事、手がかかったりストレスがたまる割には成績に結び付かないなぁ。(^_^;別の企画を考えないと…

私信。え〜と、暗号化のプログラムですが、1週間位を目処にNIFTYから落としてきたDES暗号化方式というのをDLL化できると思うので、もうちょっと待ってくださいまし。<(_ _;)>>Mさん ナンダカジカンガナクテ…。


1997/10前半のぶつぶつ

1997/11前半のぶつぶつ

日々のつぶやき 目次

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

目次ページ