覚え書き(2004年5〜8月)


'04/08/19

■洋菓子

 洋菓子と言えば通常、ケーキとかプリンとか、婦女子の方々が専用の貯蔵庫(別腹)を設けてまで 食すと言われる代物を指しますが、ここで話題にするのは、いろんな意味で大味 な、ただ単に洋モノ・・・というかメイドインUSAな菓子の話。

 仕事中に、営業の人が、ディスカウントストアで安売りしてたのが目に付いたからと、 お菓子を差し入れてくれたのですが、これがもう、大きなビニール袋に入った、総重量5キロくらいある巨大な代物。 色は茶色、チョコレート菓子か。とすると、所々に白い粒々が付着しているのは砂糖か。 こんなの食ってたら明日にでも虫歯になりそうだな・・・と思いながら一口。

塩味でした。

 塩味のチョコレート。
 もう甘ったるいわ塩っ辛いわ、トラウマになりそうな味付けで、特に表面の塩の結晶なんて、 余裕で肉眼で四角形だと判別できるくらい大粒で、口にしたのは夕刻だったってのに、 これを書いている深夜になっても、まだ口の中に塩味の余韻が残ってます。
 それにしても、味覚の文化の壁は百歩譲って諦めるとして、アメリカンは常日頃から、 あんな甘くて塩辛い菓子を、キロ単位でボリボリ食ってるんでしょうか。そりゃ数百キロなんて ウエイトの巨漢も輩出しますわなぁ。

 しかし、どーしましょこの菓子。あと4.9キロは余裕で残ってるんですけど。
 因みに買ってきた本人は、ただただ甘い菓子を期待していたらしく、相当ショックだったようでした(笑)。

・ ・ ・

 某拙作アプリのバージョンアップに向けてドキュメントを追記編集中なのですが、 テキスト量がかさんできて、いよいよ英訳サービスのWEBページで変換しきれなくなってきました。
 どうして今時32Kバイトなんて制約があるのやら。色々な翻訳サービスのページ巡ってみましたが、何処でも同様みたいでして。
 16ビットの壁くらいとっとと破ろうって。私も頑張ってるんだし


'04/08/04

■パイプ

 今、悩んでいるのが、パイプに関するプログラムについて。
 例えば、下記のように、標準入力(stdin)を通じて、子プロセスにデータを送りたいとします。

=== ファイルのトップ ===
#define INCL_DOS
#include <os2.h>
#include <io.h>
#include <process.h>

#define HF_STDIN 0

char exec[] ={ "more.com" };
char data[] ={ "ABCDE\r\n" "FGHIJ\r\n" "KLMNO\r\n" "PQRST\r\n" "UVWXYZ\r\n" };
HFILE hpRead ,hpWrite ,hfrSave;
int pid;

void main(void)
{
    hfrSave = _dup( HF_STDIN );                /* 標準入力ハンドルを保管 */
    DosCreatePipe( &hpRead ,&hpWrite ,4096 );  /* パイプを作成 */
    _dup2( hpRead ,HF_STDIN );                 /* 標準入力にパイプ割り当て */
    pid = _spawnlp( P_NOWAIT ,exec ,exec ,0 ); /* 子プロセス実行 */
    _close( hpRead );                          /* 入力側パイプを閉じる */
    _dup2( hfrSave ,HF_STDIN );                /* 標準入力の割り当てを復元 */
    _close( hfrSave );                         /* 保管標準入力ハンドル解放 */
    _write( hpWrite ,data ,sizeof(data)-1 );   /* 子プロセスにデータ送信 */
    _close( hpWrite );                         /* 出力側パイプを閉じる */
    _cwait( 0 ,pid ,WAIT_GRANDCHILD );         /* 子プロセス終了待ち */
}
=== ファイルのボトム ===

(実行プログラムとして MORE.COM を選んだ事に、特に意味はありません。データを受け取っている事が目視確認できれば良い)

 コンパイル→実行すると、データ(ABCDE...)は全て正しく転送されている模様ですが、データの終端を子プロセス(MORE.COM)が認識できず、ずっと待機状態のままになってしまいます。
 終端を確実に認識させる方法として、子プロセス実行前に、先んじて出力処理(_write()_close())を済ませてしまう・・・というのがあるのですが、これだと、64kバイト以上のデータを転送することが出来ないようでして。
(子プロセス実行前なので、送ったデータの受け取り先がおらず、いずれデータが糞詰まり状態になるのは当然)

 CMD.EXE とかは、このジレンマをどう解決しているのでしょうかねぇ。今時「扱えるデータは64kまで」なんて前世代的な制限はとっとと撤廃したいのですが・・・うーむ。

・ ・ ・

RClip for OS/2(ver4.0)
MITAYO(ver0.52)
RClip for Windows(ver0.31)

 Vectorのライブラリのソフトを1本、このページのを2本更新しました。
(最後の1本は、前者と同期しての更新なので、実質マイナス1本ですが)
(て言うかコレ、1週間くらい前に更新はしてたけど、告知を忘れてました(爆) ← いつもの事)

 MITAYOについては少し前に、「特定のWEBブラウザの実行に失敗する」という報告を下さった方がいらっしゃいましたが、ひょっとしたら、これで直ったかも?
 しかし、もしこれで直るとしたら、外部プログラム実行機能のある他の全ての拙作ソフトも、同じ不具合(と言うか仕様)を抱えている事になるなぁ・・・どーしよ。(^^;)


'04/07/21

■宝クジ

 母親に、「大阪に行く機会があったら、帰りに宝クジ買ってきて〜」と言われたので、買ってきた。
 日本で一番、一等の当たりが出ていると言われている、梅田駅前第4ビルの売り場で買ってきたと言ったら、大層喜んでくれた。

 まぁ、実際には、何処だから当たりが出やすいとかそんな事無くて、単にそこでクジが大量に捌けてるって事なんでしょうけど。縁起を担ぐという意味あいもあるのだろうけど、私はコテコテの理系人間なので、どーしても数字で考えちゃうんですなぁ。高校数学では確立統計選考してたし。そんなワケで、そもそもこのテのクジには興味ナシ。
 いや、1億当たればウレシイナ、とは思ってますけどね。(^^;ゞ 「当ててやろう」という気はサラサラ無いというだけで。
(努力しても意味が無い...と言うか、当てるのに努力が要らないのが宝クジの魅力でしょ?)

 知人に、そのテのクジにハマってるヤツがいて、先日も(ナンバーズ3について)こんな事言ってたんですわ。

 「当選番号はコンピュータが決めるので、乱数でもクセがある。それを読めれば、当選確率が上がる。」

 へぇへぇ。
 で、最近の当選番号を見て、

 「今は5が出やすい。3回に1回は5が入ってる。」
 「乱数ルーチンのクセで、5回に1回は番号がダブる。」

 あのね、(3桁の数値において)3分の1で特定の数値が入るのも、5分の1で番号がダブるのも、 確率論から言えば当たり前だろうが!そんな数字に弱いオツムで、コンピュータ様の乱数ルーチンの裏をかこうなどとは笑止千万!・・・と、懇々と説教を垂れておきました(笑)。
(夢のナイ奴でスマンこって > 某人^^;)

・ ・ ・

 Vector のライブラリのソフトを、2本更新しました。

2LIKEFX 2.0
RINGMAIL 1.52

 結局、先日悩んでいた WIN32 アプリ用 STUB ファイルの作り方は、解らずじまいで。
 Visual C++ 1.5 までは、そのためのリンカが付属していたらしい、という所までは追いかけられたのですが・・・無念なり(苦笑)。


'04/07/18

■(無題)

 MITAYO バグ修正です(ver0.51)。

'04/07/13

■香港

http://www.newtechno.com.hk/os2/chinese/alwaltfx.html
http://www.newtechno.com.hk/os2/chinese/ringmail.html

 「Key enhance(キー操作拡張)」→「按鍵加強」、ですかφ(._. )メモメモ

 因みに、私は全くのノータッチで、此処まで仕上げて下さいました...香港パワァ恐るべし。
 惜しむらくは、ノートブック制御の右上端に付く筈のキャプションが、 誤ってタブの中に混入してしまっている事ですが。 リソース変換スクリプトとかにでも任せっきりなのが原因かしら。

 そこで、次のバージョンの RINGMAIL(先程、Vectorに登録申請しました)では、 同梱のリソースファイルに、ちょっとした細工を施してみました。:-)
 さて、上手くいくかな・・・?


'04/07/03

■折り返し点

 MITAYO、久々?のバージョンアップです(ver0.5)。

 WEB上で公開し始めた時分に「最低限、これらの機能は実装したいなぁ」と思っていた機能は、 概ね組み込み完了・・・というところまで来れました。というワケで、折り返し点の意味あいも込めて、 このバージョン番号に昇格です。

 まぁ、折り返し点とは言っても、ゴール地点は自分で決めるモノなんですがね。
(2chが消滅して行き場を失う、という可能性もありますが^^;)


'04/07/01

■ド忘れ

 ある自作ソフトについて、久しぶりにバージョンアップ版をアップロードする段取りを行っていたところ、 前回バグ修正版としてアップロードしたつもりだったバージョンが、実はアップロードしていなくて、 結構いかついバグを数年間放置しっ放しだった事に今頃気が付いて、 ちょっとショックを受けています(笑)。
 皆様も気を付けましょう(←余計なお世話)

 RClip for Windows(ver0.3)

 ところで、上記の通り(趣味としては)久しぶりに Windows プログラムに勤しんでいる昨今、1つ悩んでいる事がありまして、 それは STUB ファイルの作り方について。
 手持ちの DOS 用アセンブラ(MASM,TASM)で作った EXE ファイルでは、32bitアプリの STUB にはなれず、 ヘルプを見ると、「バージョン5.5以降の16bit版 LINK.EXE を使って作成せよ」と書いてあります。

 まぁ別に今時、生 DOS での実行を前提にした実用的な STUB を仕込むワケもなく、 バイナリの中に埋め込むアクセント程度の扱いなのですが、いざ出来ない (該当する LINK.EXE が見つからない...手元の VB6.0 及び VC++6.0 には付いてなかった)となると、気になって仕方がありません。/(^-^;)

 そんなワケで、それは何処にあるのか、あるいは別の手段は無いものか、御存知の方いませんか? > どなたか。


'04/06/18

■原点

 拙作ソフトの1つ、RClip
 これ、私のオンラインソフトウェア作者としての処女作なんですが、 この数日間、久しぶりにコイツのソースを追っかけていました。

これを作っていたのは、私が、中途半端にオフジェクト指向にかぶれていた頃で、 言語はC++の機能をふんだんに使いまくり、出来たアプリの操作感を WorkplaceShell っぽくしてみたり (少なくとも、当時はそうしたつもりだった^^;)、何せ初めての OS/2 プログラムなんで、 技術的に出来そうな事は何でも実装しまくったり、 今見直すと、いろんな意味で不細工で、父ちゃん情けなくて涙が出て来ますわ(苦笑)。

 逆に感心したのは、 API直呼び出しなどの環境依存性の高い処理を、ちゃんと階層クラスの奥の方に隠蔽していた事。
 と言うかそういう、汎用性/移植性の高いコードを書くのがオフジェクト指向ぽい、と思っていたフシがあります。
 移植する心積もりなんか、微塵も無かったくせに(笑)。

 クリップボードデータ送受信ソフト「RClip for Windows」試験場

 何年後かに、こうやってソースを再利用しないとも限らないのだから、 出来る事はやっておくに越した事は無いよなぁ、と改めて考えさせられたのでした。
 ・・・移植性など皆無に等しい、ここ数年内に書いたコードを思い起こしながら(苦笑)。


'04/06/08

■利用歴十ン年にして知る驚愕的事実

 銀行講座の暗証番号は、ATMを使って何時でも変更できる。

 ( ・∀・)づ∩ヘェーヘェーヘェー

 いや、マジで知りませんでした(汗)。
 このために有給取って銀行に足運んだ私の立場は。

それはそうと、'04/05/27の、

>都合良く、ショーストッパー級の大バグでも出ないかなぁ(←ォィォィ)

 探せば結構あるモノですね(笑)。 ← 笑ってる場合かよ
 まぁ、大したバグではありませんが、修正版もアップ済ませましたので、そのうち公開されると思います。
(と言うか、再アップする大義名分が見つかってホッとしてたりして^^;)


'04/06/03

■「統合ブラウザー」とは何ぞや

 先日、OS2*.INI ファイルを壊してからというもの、URLオブジェクト・アイコンから MITAYO を実行させると、どうも調子が悪い。
 MITAYO デバッグ強化週間である今(そう今決めた)が良い機会という事で、真剣に原因を調査してみたところ、URLオブジェクト・アイコンの「統合ブラウザー」なる設定項目にたどり着いた。
=== ヘルプの引用のトップ ===
グラフィックのロードおよびロード中のイメージ表示のように,Web ブラウザーが 「Web」ページで指定した項目に対するコマンド行の引数を受け入れることができる場合は,「統合ブラウザー」を選択します。ブラウザーがコマンド行の引数を受け入れることができない場合は,このチェックボックスの選択を解除してください。
注: OS/2 Warp バージョン 4 とともに納品されるブラウザーは,組み込まれています。
=== ヘルプの引用のボトム ===

 要は、昔懐かし「WebExproler」を使う時だけオンにする項目で、 OS2*.INI ファイル復旧の過程で、これがデフォルトで オン設定になるような環境になってしまっているのが原因である、という結論に。
 こんな(今となっては大きなお世話な)機能があったなんて・・・しかし、「統合ブラウザー」とは、 何とも無機的で、尊大さと稚拙さを同時に醸し出す、如何にもIBM的なネーミングセンスですなぁ。

 MITAYO(ver0.41)

 というワケで、一応対策を施してみました。
 とは言っても、プログラム側で完全な対策は無理(URLオブジェクト・アイコン側の都合ゆえ)なので、同じような現象で困っている人は、 ドキュメントの追記事項を参照して、各自対策を行って下さい。

該当者: OS2*.INI ファイル破壊後、不味い手順で復元した人、 または WebExproler をデフォルトのブラウザとして使い続けている人。
(...1人もいないよーな気もするなぁ^^;)

 先日予告した、新機能を伴ったバージョンは、もう暫くお待ち下さい。
(手元で試用中に、手違いで logディレクトリを根こそぎ消してしまい、一寸コーフンしてます(苦笑))


'04/06/01

■昨日の今日

 MITAYO(ver0.40)

 今回(と言うか今日)もバグ修正のみでして、前にも書きましたが、なんでこんな、 チョット触ったらすぐにでも見つかりそうなバグ、それも新機能を盛り込んだ 副作用で混入したわけでもない、相当前から潜伏していたっぽいバグに、 今の今まで気付かないのか、不思議でたまりません(苦笑)。


'04/05/31

■次回予告

 MITAYO(ver0.39)

 アップする度に、その直後に大バグに気が付いてアップし直し、を日刊ペースで繰り返している MITAYO ですが、ここで重大(?)なお知らせが。

 そう遠くない将来のバージョンで、いよいよログ削除機能を盛り込みます。

 で、

 手違いプログラム違いでログファイルを消されたくない人は、イマノウチにバックアップの支度をしておいて下さい(爆)。

 あと、ちょっと前のバージョンで盛り込んだ「良スレ認定」機能が、ログ削除の条件に 設定できる(認定済みのログは削除しない)ようにする予定なので、 イマノウチに印付けまくっておくと、誤消去の可能性を抑えられるかと。
(↑どれだけ自信が無いんだよ > 私^^;)

 因みに、過去ログの印付けは、「ログ閲覧モード」で各板のスレッド一覧を開いて行うと、楽です。:-)


'04/05/27

■痛恨のボーンヘッド

http://www.os2.jp/modules/news/article.php?storyid=1305

 (ノ∀`)アチャー

 ・・・さて、どうしたものか。この修正のためだけにアップロードし直すのも何だしなぁ。
 都合良く、ショーストッパー級の大バグでも出ないかなぁ(←ォィォィ)

・ ・ ・

 MITAYO(ver0.36)

 「お気に入り」機能もどきが、今回のメインディッシュです。
(機能がチープ過ぎて、とてもじゃないが「お気に入り」を名乗れなかった(笑))


'04/05/20

■雨

 まだ5月だというのに、連日梅雨ばりの空模様+台風来襲のおかげで、 遊びに行く気がしない → 家にまっすぐ帰る → プロ野球も軒並み中止 → ヒマ・・・というわけで、(趣味の)プログラミングが、はかどって仕方がありません(苦笑)。

 MITAYO(ver0.35)

 遂に積年の懸案事項の1つ(2つ)だった、サーバー移転発生時のフォローと、NGワード添削機能を実装できました。
 前者はともかく、後者は私自身は殆ど使った事が無い機能なので、実装イメージを固めるのに時間がかかりました。で、出来上がったブツがコレなのですが、どんなもんでしょうか > NUL 。
 「俺が求めるNGワード添削機能はこんなのじゃねぇ!」という方がいらっしゃれば、 早めにアピールをお願いします。さもないと、このまま仕様が固まって身動きが取れなくなる恐れがあります(笑)。


'04/05/10

■電車にGO!!3(通勤編)

痴漢が線路上を1キロ逃走、電車28本止める…神戸

 (ノ∀`)アチャー

・ ・ ・

 外人さん用にこさえた翻訳用オンラインマニュアルも、いちコンテンツとして正式公開する事にしました。
 ただ単に、私の利便性のためにリンクをぶら下げただけなので、オリジナル(アーカイブ内の日本語マニュアル)が読解できる人は、見る必要ありません。と言うか、翻訳サイトに気をつかった都合上、いろんな意味で見苦しいので見ないで(笑)。


2003年  2004年1〜4月

戻る