葉山文書
4/19〜7/25の余談篇
目次へ

内部コマンドに日本語が渡せないバグを修正したら...(7/24)

手元のバージョンで、日本語のバグについては、それらしき箇所を直してみたのですが、 今度は逆に外部コマンドを実行すると、Segmentation Fault がemxライブラリ 関数内で発生するというバグが噴出してしまい、頭をかかえております (注:その後、直りました)。

最近、熱暴走が多くて困っていると書きましたが、大阪日本橋のソフマップで ISA/PCIバスに差す排熱ファン(ケース外へ空気を追い出すタイプ)を買って、 とりあえずは、回避できました。

ハードディスクも、人並みの容量に買い足せたし(500MB一機のところへ、 2.5GBのを買った)、ようやく、開発環境が整ってきたという感じです。 あと、高速な S3ViRGE のドライバが出てくれたらなぁ。 4MBもVideoRAMがありながら、800x600x256色モードで、12dotsFontsを使って、 速度をかせぐというのは、悲しすぎる...


SKK を使いてぇー(6/15)

SKK というのは EmacsLisp で動くかな漢字変換システムで、 その特殊な入力方法に惚れ込んだ人も多いと思います(そんなことないか)。

僕は、昔、京大マイコンクラブいう ところに所属していた時期がありまして、そのころ、クラブの UNIX で標準となっていた かな漢字入力システムというのが、SKK だったのです。 最初はちょっと(いや、かなり)とまどいましたが、 しばらくすると、その手書きのような入力方法に惚れ込んでしまいました。

で、OS/2 の場合ですが、Muleさえあれば、どんなプラットフォームでも動くので、 無論、動きます。しかし、ふと、Mule 中だけでなく、NYAOS でも使いてーなぁと、ふと思いました。 でも、どうすればいいんでしょうかねぇ。

skkserv とかいう、Emacs以外のアプリの為の、SKK変換エンジンがあるそうですが、 OS/2 でも動くのかなぁ。あったとしても、僕の腕で実現できるのかなぁ。

出来もしなことを夢想する今日このごろであります。


アーカイバ再び(6/15)

アーカイバ」で、 「拡張子が .lzh だとブラウザのデフォルトの動作が Download にならないから、 Info-Zipを使うことにする」と言いました。

その後、筑波の宇野さんから、http の設定ファイルの mime.types に「application/x-lzh lzh」という 感じに書けば、.lzh の拡張子でも Download してくれると教えていただきました。 ちゅうわけで、次のバージョンから、また lha に戻ります。 (でも、僕のことだからここに書いたことを忘れて、zip のままでいくかもしれませんが)


Pack for Win GOLD 届く(6/15)

かなり前に、NYAOS を Vector Design に UPLOAD したところ、 今回、Pack for Win GOLD に収録されるとのことで、 ブツが下宿に届けられました。

¥6,800- 相当の品をくれるのは、無論、手放しで喜んでいるのだけれど、 あれを作者全員に送っているとすると、相当費用がかかるんでないだろうか。 書籍目当てで腐ったソフトを半年ごとに Up する輩とかはいないんだろうか。 他人事ながら心配である。もうかってんのかなぁ...


OS/2 magazine(4/20)

OS/2 magazine の CD-ROM に、また載っていなかった。 まだまだ、MUST HAVE とはいえないようだ。 もっと、性能を上げねば。 (単に 担当者が Nifty だけ見て、 Internet の Newsgroup をチェックしてねーだけじゃねーかと思わないわけでもないが... 誰か Nifty にも転載してくれねーかな)

その一方で、httpdのログ(access_log)を見ると、 NYAOS のページを2,3日に一回必ずチェックしてくださる方もいるようだ。

WWWサーバー自体は全然負担はかかっていないみたいだし(ネット自体は知らんが)、 こういうのは作者としては非常に励みになる。ありがたいことだ。 しかし、この余談ページには気がついていないようだ。ふっふっふ。

(補足) もうばれてました(笑)

アーカイバ(4/19)

NYAOSの書庫は最初は Info-Zip。すぐ、lha となり、最近、Info-Zip に戻っています。 zip から、lha にしたのは、lha は「間違いなく(lhaが)フリーソフトウエア」だという安心感が あったからなのですが、次のような理由で zip に戻してしまいました。

理由は、Netscape の default では、拡張子 zip は Disksave に関連付けされているが、 lzh は未設定なので、そのまま、リンクをクリックさせると、 ブラウザ上でテキストとして表示されてしまうからです。 そのため、シフトキーとマウスの第1ボタンを同時に押せなどの 指示を書かねばならないのが、うっとーしいんですよね。
 これを回避するため、実は Anonymous ftp をこっそりつくって、

<a href="ftp:...">
としていたんですけれども、これはデフォルトの ftpd で 実現していたためにセキュリティー的に問題があったのです。 wu-ftpd などをインストールすりゃいいんですけど、 そこまで手間をかけるのもいやだったし、 「こっそり」ですまなくなりますし... 結局、クラッカーが現われた時、責任がとれないので、 Anonymous ftpは止めにしたわけです。

これは理由にはなりませんが、LHA の OS/2 版が3種類あり、 互いの EA まわりの拡張方法に互換性がないらしいのが、 気持ち悪いなぁというのも少しあります。 OS/2 magazine の CD-ROM の /os2mag/bin/lha.exe が 未だに 米国製であるのも不思議ですね。

あと、Info-Zipが一応完全にフリーだと分かったこともあります。 pkzipの製作元は結構心が広いようで、Info-Zipのような互換アーカイバを 公式に許可しているみたいですね。 まぁ、フリー性にこだわるなら tar+gzip を使うのが一番なんですけれども、 tar には以前ひどい目にあったのと、 Netscape が Disksaveにデフォルトで関連付けてないということがあります。

tar+gzipといえば、ソースファイルのアーカイブは tar+gzip にしています。 これは、ソースの Download の頻度が低いから、ソースを必要としている人は それなりにエキスパートだろうというのが、いいわけですが、新の理由は ソースとバイナリでファイル名を変えたいが、非拡張子部分は「nyaos」+ バージョンナンバ3文字で8文字使ってしまっているので、拡張子部分で 区別させたかったという、非常に軟弱な考えがありました。 僕自身は HPFS を使っていますし、WWWサーバーは Sun ですから、 8.3 ファイル名にしばられるのは、Uploadに使うフロッピーと 保存用の zipdrive(おぉ、これもzipだ!)くらいなんですけどね。


ベータ版(4/19)

先日の 1.20 はご迷惑をおかけしました。 次の Release からは、まず「ベータ版」と称して公開すべきだなと痛感しま した。
(補足)この教訓は全然、
に活かされていませんでした。
どこをどう痛感してるんでしょうね。

作者の環境というのは、下宿に PC/AT互換機があって、研究室に Sun がある状況 なのですが、実際、大抵のことは Sun でやってしまっていて、 AT互換機は、ゲームか NYAOS の開発くらいしか、最近やっていないんですよね。 つまり、日曜プログラミング以外に OS/2 を使っていなくて、 作っている時以外に、NYAOSを使っている時がなく、 意識的にテストをしなければならないので... って、意識的にやるのが当然ですね。すみません。

しかし、ベータ版と称して公開するとなると、ファイル名も悩みの種です。 8.3 の制限がなければ、nyaos_1.22_beta.tar.gz などとできるんですがねぇ。 差分も、nyaos_1.21_to_1.22.zip とかのびのび書けますものね (今は120to121.zip、何の差分だこりゃ)。 うーむ、そうしてしまおうか。 でも、リムーバブルメディアに保存するときがやだなぁ。


アナウンス(4/19)

バージョンアップした時、バグリポートしてくださる方々に バージョンアップしましたと mail をおくるかってことも、いつも悩むことです。 って、一人前の フリーウェア作者みたいですね。 NYAOS くらいしか、ないのに。

バグリポートしてくださったのだから、そのバグをとりましたと mail をおくるのは 礼儀だと思うのですが、一方で、ベータテストを押し付けているともとれますよね。 また、mail を書くのって結構エネルギーがいると思うんですよ。 ですから、返事を書いてもらうのも、結構申し訳なくて...

1.14 まで金島先生の ftp サイトに置いてもらっていたのですが、 最近、新しいバージョンをputしないのは、/incoming からコピーしたり、 返事書いてもらったりするのが、同様に申し訳ないからなんですね。 Vector Design とかだと、ありゃ商売だからとわりきれるんですけどね。

そういえば、YAOS なんかだと、バージョンアップ通知のメイルを送るように してもらうことができるようですね(メイリングリスト?)。 僕もそうしようかなとも思わないわけでもないんですけどね。 でも、それは、ちょっと、いきりすぎやなー (いきっている : ええかっこしー、調子にのっているの意。関西弁?) という気もしますしね。


ポリシー(4/19)

僕としては、NYAOS は CMD の上におおいかぶさっている、 入力支援ソフト、フロントエンドにしかすぎないもので、 TCSH とか、BASH とか、由緒正しいシェルと張り合ってはいかんという 意識が最初からあるんですよ。 どちらかというと、DOS の KI-Shell に近いようなものを目指しているというか..

だから、独自のシェルスクリプトやら、そんなものを作るつもりは毛頭ない --- って、そもそも誰も要求してないか(笑)。 そのかわり、かゆいところに手がとどくプログラム、 便利なことはなんでもやる、シェルがサポートしないと できんことは積極的にやるつもりです。

例えば、DOSで「#!」機能を実現する、S.O.S. のスクリプト(厳密には「!」だけど)。 あれは、OS/2から見ると .COM 型実行ファイルなんで、 実行すると、DOS窓が開いてしまうんですよね(ちゃんと動くけど)。 できれば、DOS/OS2共用のスクリプトにしたい。 これは「NYAOS がやらねば、誰がやる」の対象だと思っています。 まぁ、NYAOS のスクリプト実行支援を拡張すればよいだけなんですけれども、 S.O.S.スクリプトか否かの判定基準をどうしようか、それでちょっと悩んでいて、 あとまわしになっています。でも、そもそもニーズあるのかなぁ (もしかして、欲しいは、俺だけ?)。

1.20 ではようやく、キーバインド変更をサポートできました。 これは結構念願で、結構感慨もあったのですが、すかさずバグがでました(泣)。 キーバインドだけは慣れが優先しますから、これができれば、 シェアがどーんと拡大と思ったわけです。 キーの名前やら機能名などは、あとあと変更できなくなるので、結構慎重に決めました。 結局、キーの名前は、emx のヘッダファイル sys/kbdscan.h のマクロから、 機能名は、bashとtcshのマニュアルから引用しました。 意味不明な数字を使わせるようなことは、最初から禁止事項にしていました。


えどりーん(4/19)

NYAOSの、キーボード入力関係は、Edlin という、C++のクラスで、 NYAOS 自身と完全に独立になるように作っています。 名前は、言うまでもなく、DOSのラインエディタ名からとったのですが、 気に入っている基底クラスには、短い名前を付けたかったからでもあります。

しかし、独立といっても、NYAOSと共に作っている以上、なかなかうまくいかず、 1.1xでは、ヒストリーが クラスEdlin内で実装されていました。 1.2xでは、派生クラス ShellEdlin他に移って、一応は独立しましたが... もうひとつ、ファイル名/コマンド名補完もEdlinに組み込まれています。 これもいずれは継承クラスか、外へかうまく追い出したいんですけどね。

しかし、こうして独立を保とうとすると、それがあしかせになって、 TCSHほどの字句解析にまで踏み込んだ、高い編集機能を実装しにくいという デメリットがあります。それに、クラスEdlinを使ったプログラムが 他にないので、メリットもありませんし (KAOL,ELLはクラスEdlinを使わず、拡張性のないサブルーチンを使っている)。 しかも、クラスが二重・三重構造になって、どこでどの機能が実現されているか、 直観的に分かりにくいこと...何やってんだか。 まぁ、たかがクラスに悩んでもしゃーないか。

でも、当初 Edlin はフルスクリーンエディタにも使えるのを目標にしていたんですよ (もちろん、キャラクタベースですが...)。 ところで、誰かこれ、使いたい人、います?


目次へ