葉山文書
1/15〜l2/9の破局篇
目次へ

とりあえず、1ページ(3/1)

むっちゃ、忙しいのだが、こういう時にも、ちょっと息抜きをしたくなる (お前は、いつも息を抜いているだろうが)。 というわけで、ベクターの方に扉ページ だけを作った。内容もこちらとさほど違わないので、まだ見てもおもしろくありません。 とりあえず、シグニチャーの Web Address をこっちに書き変えた。 ただ、NYAOS のことは研究室の人には(マジで)秘密だから、 身内の人には、まだこのシグニチャーは使えん。

ああ、あした発表ではないか。質問に対する解答とか考えなきゃいけないし、 第一、台詞をまだ覚えてないではないか。 しかし、自分の表現力の無さには改めて驚く限りだ。 我が師、大嶋助教授も、あきれはてておられた(に違いない、え、今日に始まったことではないって)。

どうやら、日本語は、僕にとっては、第一外国語のようである(母国語はC言語か?)。 この文章一つとっても、「です・ます」調と「だ・である」が混在しているし。


3月2日は血祭(2/28)

3月3日は雛祭、3月2日は血祭り。そう、修論の発表会なのです。 うちは、修論の提出より前に先に発表があるんです。 やぁー、いそがしい、いそがしい(こう書くとなにか、嘘くさい)。

EUC の半角カタカナの件、ありがとさんです > Romy さん。
しかし「かんにゃおす」は、いつになったら完成するのだろう(って誰に言っているんだ) 「かんにゃおす」が完成したら、いつかはSKKをサポートした 「すけにゃおす」に挑戦したいものだ(名前のセンスが非常ーにわろし)。

変換型のファイル名補完(TABを何回もたたくやつ)をサポートできないか というリクエストを受けてしまった。 一見、tcsh準拠路線を走っているかのような NYAOS だが、 その実態は「便利そうなら何でも取り入れちゃえ」という混沌思想だったりするので、 当然、売られた喧嘩は買わなきゃ、後がこわいのである(ナニカチガウ)。


New URL(2/27)

ベクターデザインから、封書が届きました。 4月以降の本ページの新しいアドレスは
http://www.vector.co.jp/authors/VA009797/
となります。タイトルは「新・はやまったページ」という 非常に安直な名前にしてしまいました。 なお、今のところ、何にも置いておりませんので、 あわてて OPEN しないように。 「Under construction」しか無いと思います。 そのうち、ftp で本ページを順次コピーしていこうと思います。

しかし、ベクターデザインって、非常によい印象がありますね。 何の得もないのに、ソフト作者にページを割いてくれるところなど、 ソフト作者をこけにしてくれる窓の杜とえらい違いですね。 そういえば、これって Netscape と Microsoft の関係にも似てますね。 Netscape は何やら負けそうな雰囲気ですが、ベクターデザインには負けて欲しくないなぁ。 窓の杜は、OS/2 のソフトなんて、取り扱ってくれそうもないし。

「かんにゃおす」はカーソルキーがぼちぼち効くようになりました。 けれど、今だに、半角カタカナを入力できません。 EUC で、半角カタカナって、どういうコードで表すんだっけ。 2 bytes だというのは知ってるんだけど... しかし、canna.a をスタティックリンクしただけで、 実行ファイルの大きさが爆発してしまった。 canna.dll ってないのかなぁ。

(補足)
これって8倍になってたんですけれども、原因は「-g」を付けてコンパイルしたせいでした。 実際には3倍程度しか膨れませんので、爆発ってほどではありません。 canna.dll については、上野 博さんがすでに作って、 現在、(Mule 用に)テスト中だとのことです。どうも、ありがとうございました。

なお、最近、あれが分からん、これが分からんとか、ほざきまくっていますが、 皆様余り気になさらないで下さい。単に調査をさぼっているだけなので... 最近、だんだん、根性無しになってゆく自分が実感できます。 なさけなー。

ああ、某友人の濱村君(どこが某だ)が、ウテナのビデオの続きを貸してくれた。 う〜ん、どうも、はまってしまったようだ。 まったく、こうなったのは、全て濱村君と山地氏とRomy氏の責任だぁぁぁぁ(なぜ、Romy氏!?)。 4年間、TVless の生活をして、せっかくその道から足を洗ったのにぃぃぃぃ。 このままでは NYAOS のアイコンがくるくる周る GIF アニメを作ってしまうぢゃないか(おい!)

あと、3時間以内に、発表の OHP と原稿を完成させねばならない。 だいたいできているが、原稿の量がちょっと、発表時間に比べて少ない。 なんとかしなくては。


いかんなー(2/22)

「かんなをサポートせにゃ、いかんなー」

という「さぶーい」ギャクは置いといて(実は言いたくて仕方なかったという説有り)、 でけたでけたでけたでけたー。「かんな」でけたー、7割ほど(何やそれ)。

ということで、かんなクライアント版 NYAOS「かんにゃおす」が7割ほどできました。 7割といっても漢字変換には何ら支障がありません。 ただ、NYAOS と canna.a との、コードの扱いの違いから

というバグがまだとれてないんすよねー。 まぁ、もっぱら、コントロールキーしか使わない UNIX/tcsh ファンには 関係ない話かもしれませんが。

で、いつもなら、予告だけで終ってしまうのですが、ちょっと、調子に乗って、 スナップショットを公開してしまいます。他のバグチェックもほとんど してませんし、ドキュメントもありません。

306890 Feb 22 21:01 cannyaos.zip

バージョンは「1.35'」とありますが、正式リリースではありません。 よって、二次配布は禁止ですんで(誰もしないって)。 なるべく、早く 1.36 として正式リリースしますので。

あ、当然、cannaserver とかがちゃんと走ってないと駄目っすよ。 環境変数 cannahost の定義も忘れないように。


Vector Design(2/21 其の弐)

このページの移転先のことですが、ベクターデザインがフリーソフトウェア作者に ページを無料貸与してくれるそうですので、先程、メイルで申し込みました。

最初、問い合わせ先が、hpinfo@vector.co.jp だったので、 メイルで問い合わせたら、一瞬で daemon さんからの返事が返ってきた。 ううむ、丁寧にメイル書くのに30分ほどかけたのが無駄に終ってしまった(笑)

返事を見ると、無料で5MBまで貸与してくれるとのこと。 「いや、はやまったページ」は要らんものを除けば、 2MB前後なので余裕である。画像が無いからね。 というわけで、申し込みのメイルをフォーマットに従って送った。

就職したら、メイルアドレスは絶対にもらえるだろうし、upload も何とかなるだろう。 しかし、広告掲載の義務なしに、ページを貸してくれるとは、 ベクターデザインは太っ腹だねぇ。 フリーソフトウェア作者全員に書籍を贈ったり、 「なんとかの杜」にベクターの爪のあかを煎じて飲ませたいよ。 うんうん。


install(2/21 其の壱)

発表要旨にようやくOKが出た。月曜早朝に差し換えに行かなくては、トホホ。

UNIX用 vim with skkfep を見付けたので、Solaris にインストールしようと思ったが、 うまくゆかーん。skkserv も skkfep もコンパイルはうまくいったが、 パッチあてた vim のコンパイルがうまくいかない(パッチ当ての手続きも複雑だし)。 ソース配布っつーのは、フリーソフトウェアの発展にはすごく貢献しているのだが、 いかんせん、インストールが面倒ですなぁ...

rmclone で zip/lzh アーカイブの中まで見にいくよう改造しようとしたが断念。 アーカイブの中まで見に行くのを前提に始めから作り直さなきゃならんようです。 Hashクラスを作ったことだし、C++ で書いた方がいいかなぁ...

「nyaos -c open "Program Files"」がうまくいかないというバグは、 簡単に直った。手抜きだったんだが、まさか外部から open を使うことなんて 思ってもいなかったから(open.exe とか open.cmd とか使うと思ったし)。 ところで、open といえば「送る」メニューに NYAOS を登録すると、任意のフォルダーから NYAOS を起動できます。これと open を併用すると、WPS とコマンドラインを 行ったりきたり...って何が楽しいねん(笑)

OS/2 と Solaris とのファイル交換に、フロッピーを tar でテープのように使う事を 考えている。これなら、長いファイル名も問題無しだし、 マルチボリューム機能があって便利である。 しかし、ファイル一覧見るのがむっちゃ遅いのは困ったもんだ。 やっぱ、やめとこかなぁ。 簡単なリネームバッチを作るような、シェルスクリプトでも作った方が得策かなぁ... しかし、フロッピーのファイルが 8+3 文字しか使えないのは、DOS の罪だよなぁ。 それともキルドール(だったっけ)の呪いかな。


cache(2/20)

いやはや、今日は修論発表要旨の締切で、こんなもん書いている場合ではないんですが、 ちょっと気分転換に...

コマンドキャッシュが結構好評みたいで嬉しいです。 スクリプトのキャッシングについては、 今、拡張属性で解決しようかと企んでおります(というのは嘘で、実は今思いついた)。

それぞれのファイル(/usr/bin/hogehoge.plなど)に実行属性を 拡張属性で付けていては時間がかかって仕方がないので、 それらを含むディレクトリ(/usr/bin など)の方に、 スクリプト実行可能なファイルの一覧を含む拡張属性でも作っておけば、 かなりディスクアクセスが節約できるんではないかと考えております。 で、実行属性を付ける命令も用意すると。 他、実行可能性のある拡張子を環境変数で限定させるっつーのも いいかもしれませんね。

何か御意見ありましたら、メイルくださいませ。


NYAOS 1.35(2/18)

NYAOS 1.35 を Release しました。 前回はソースに getkey.c が抜けていて、あいすみませんでした。 今回はちゃんとコンパイルできるかチェックしましたんで。

ところで、本当はソースの方は tar + bzip2 にしたかったんですけど (サイズがさらに2割くらい減る!)、 FAT に合うファイル名にできないんで、今回は見送りました。

Web Server への転送をフロッピーなんぞに頼っているために、 名前を 8+3 に抑えなくてはいけないんです。 Server が Warp ならよかったんですが、Solaris なんで、 宇野さんの LCP.CMD を使うわけにもいきませんし(Solaris は EA が分からん!)。 tar + bzip2 したものに、さらに tar して名前を変えるのもみっともないし。 ううむ。

gzip なら .tgz というサフィックスのものは、展開後 tar にしてくれるんですけど、 bzip2 はどうも絶対 .bz2 にしなくてはいけないようで。 gzip-2.0を待とうかな...
# 何をつまらんこと、悩んでいるのやら(笑)

なお、bzip2 は奥西さんporting のものが、MAKOTO さんのページ: CLUB-bzip2に置いてあります。


NYAOS-II(2/17)

どうも、最近、更新頻度が下がってますなぁ。 putenv では、sukisuki をお騒がせしました。 Solaris と OS/2 emx では、putenv("HOGEHOGE")の動作が違ったのでした。 emx では、ちゃんと消えてくれるのです。 ううむ。同じ gcc だから同じだと思ったのにぃぃぃ。 清水さん、相沢さん、さとうさん、ありがとうございます。

ぼちぼち、1.35 を公開しようと思いつつ、ドキュメントを書く暇がなくて、 後まわし、後まわしにしていたら、いつの間にやら、前の Release から 一ヶ月経ってしまいました。なるべく今週中に出したいなぁ...

NYAOS は、パイプラインの作り方とかをよく知らなかったので、 CMD.EXE のプリプロセッサのような形で作りました。 でも、最近は pipe,dup,dup2,fork等の関数の使い方が分かりましたし、 一方で、プリプロセッサ形式にした事による、プログラムの見通しの悪さも 目立ってきました。 ですので、ここいらで CMD.EXE からの完全独立を中期的目標にしようと思います。 これを達成した暁には、バージョンナンバを 2.00 としてしまいます。

あくまで目標ですが、2.00 では次を実現したいと思います。

まぁ、ユーザーから見たメリットちゅうのもあんまり無いし、 最初は 2.xx はバグだらけになるでしょうから、 当分は 1.xx のソースも別管理して、1.xx と 2.xx を並行して Release しようかと 思います。

しかし、eff さえ、未だ Release の見込みが無いのに、こんな宣言してしもて、 大丈夫なんかい。いくら、3月に時間ができるっつーてもねぇ...。 それにサラリーマンになってからでも、暇あるかなぁ。心配だぁぁぁ。


foreach(2/12)

foreach での出力をリダイレクトやパイプに出力できるようになりました。具体的には
   foreach i *
       echo $i
   end | less
なんていう記述が可能になります。これって bash の for とかは出来たけど、 t?csh では出来なかったのではないでしょうか。 もちろん、foreach の引数にも逆クォートが使えます。

xterm に対応してから、Ctrl-C がまた効かなくなっています(直しましたが)。 また、ずっと、ソースパッケージに getkey.c を入れるのを忘れていました。

KI-Shell のドライブエイリアスみたいなものを入れようしました。 「drvalias z=j」なんてすると「z:」が「j:」と等価になるんですけど、 「cd z:/hogehoge」でカレントドライブを変更した時に、プロンプトを「z:」にできないんです (cd が z: をキャッチする前に、j:へ置換されてしまう為)。 というわけで、機能的に中途半端なんで、カットしちまいました。

しかし、なんとか、95 と OS/2 でドライブ文字、統一できんもんかなぁー。 join/subst か tvfs を使うしか無い?!

≡★

最近 Windows95 の方の環境をちょいと整備してます。 最近まで、Quake とか、ゲームする時しか利用していなかったんですけどね。 システム屋さん(TIS)に就職するとあっては、Windows をちょっとは学ばねばならぬと 思って、以前 95 をインストールしたんですが、DOS窓が死んでいたので、ずっと放っておりました。 が、昨日、CONFIG.SYS に \DOS\$ANSI.SYS と \WIN95\ANSI.SYS の両方が入っていた為であることが判明。 馬鹿なことしてたもんだ。

シェルは VFAT対応KI-Shell を入れたが、バインドがダイヤモンドカーソルだし、 補完が変換方式(目的のファイルが出るまで、何度も特定のキーを叩く。 tcsh とか NYAOS は限定補完方式)だし、どうも勝手が違う。 いや、慣れることはできると思うが、逆に OS/2&Solaris に戻る時に混乱してもねぇ。 tcsh は入れてみたこともあるが、どうも VFAT でないファイル名を補完する時に 大文字で頭文字を打たねばならぬのが、ちょいと面倒なんでパスしました。

≡★

LONGNAME をプロンプトで表示させるという機能を付けたと先日書きましたが、えらいバグを見付けました。 カレントドライブが CD-ROM だと、LONGNAME が存在しないはずなのに、 最近にキャッチした他所の LONGNAME を、そのディレクトリの LONGNAME と勘違いしてしまうのです。例えば
    D:/Program Files[127] cd J:/OS2MAG/
    J:/Program Files[128]
なんて、表示されてしまいます(J:はCD-ROMのドライブ文字)。

いろいろと調べましたが、どうも CD-ROMドライブの場合のみであることから、 NYAOS ではなく、システムのバグだろうと思われます。 仕方が無いので、カレントドライブのファイルシステムを調べて、FAT(not CDFS)の時だけ、 LONGNAME を調べるようにしました。やれやれだぜ。

関係ありませんけど、この LONGNAME のバグを調べるときに拡張属性を得るライブラリ関数 _ea_get のソースを見ました。以前、平松さんが、拡張属性のサイズを得る方法が無いと、 どこかでおっしゃっていたのを耳^H目にしていたので、どうやってるのかなぁと思ったら...

    p = alloca( 0x10000 ); /* 本当は、もうちょっと複雑です */
やるな、ブライト。いや、確かに 64KB 以上の大きさの拡張属性は無いです。はい。

≡★

rmclone で、アーカイブの中まで検索させようと考えているのですが、 なるべくテンポラリファイルなど使いたくありません。 そこで、RXQUEUE ってコマンドを使おうと思うのですが、 これって、全ての OS/2 にあるんでしょうかねぇ。 いや、どっかの REXX Script で使っていたと思うんですが、
     'コマンド | RXQUEUE'
なんていうのを使うと、どうも(無名)キューの中にコマンドの標準出力が push されるようなのです。 でも、素直に REXX にパイプなどを加える DLL とかを使った方がいいかな...

あとマルチボリュームなんかもサポートしたいですね。 ZipDrive なんかを使っていると、あちらこちらに同じファイルが複製されて困りますからね。

そうそう、REXX のまともな本を図書館で見付けたので、大学生の必殺技、 全ページコピーをしてしまいました(著作権って言葉知ってんのか!?)。 これで、REXX のツールに関して、開発効率が上がるかも!?


さらに過去の余談へ