OSTRACISM CO.
■ 日本語エディタ「褌・エディット」−作文職人−の開発日記 巻之十

 この日記は一部(大部分?)Nifty-Serveのプライベートフォーラム”Αγορα”(GO AGORA)での書込と重複しています。ま、これを読む大部分の人には関係ないことですね。

 小林英樹さんから、WX2のパッケージが届いた。評判のWX2を買ってみたが使いにくかったため、ATOK8に移行したそうだ。そのときに私がWX2のバグ対処に苦労していたことを思い出したらしい。彼はまだ登録カードを送付していなかったので、正規ユーザとしての権利を私に譲るとしたのであった。
 いやあ、感謝感謝感激。デバッグのためにFEPを提供してくれたのは小林さんが唯一です。

褌1.2.5 / 1995.02.24

 えきすぽ

 きょうはお友だちのゆうこちゃんといっしょに、まくはりへ遠足にいきました。まくはりではまっくのお祭りをやっていて、ぼくはひさしぶりにむねがわくわくしました。ゆうこちゃんも楽しかったといってました。ああくたびれた。
 やしゅさんは思ったよりかわいい顔をしたやさしいおじさんでした。あみんださんはあいかわらずあやしげなお医者さんでした。ふたりともちょびひげがなんともかわいかったです。
 やっぱりなんといってもここねえちゃんがかわいらしかった。びじんには動きのないのと動きのあるのとふたとおりあると思うんだけど、みつこちゃんは前、ここねえちゃんは後のほうのびじんだってわかりました。しゃしんの1000倍はびじんだよ。
 でも、びじんがおおさかべんをしゃべると悲しくなるのは、ぼくのかってなきもちです。テープおくるね。

おすとら

褌1.2.5 / 1995.02.26

 マックエキスポでNisus Writerを買ってきた。評判通り最高の入力レスポンスを実現しているワープロだ。
 最近のワープロの重さに耐えられなくなってエディタに転向した長文作成者(作家等)の方々へ。Nisusこそが求めるワープロだと断言します。MacWORDの重さは尋常ではありません。あれはしかたのないことなのではなく、ただ単にMacWORDがタコなワープロなだけです。無駄に肥大化を繰り返した結果、多くのワープロが「誰にも使えない」製品に変貌してしまいました。Nisusも肥大化しています。しかし、エディタ出身だけあって、入力のレスポンシビリティの重要さだけは忘れていないようです。さすがにレイアウトに凝ったりすれば動作に負荷がかかりますが、文章を綴るという基本に撤すればそれに応えてくれるという、唯一のワープロです。また、WordPerfectのようにバグだらけではありません。
 きっと、もうじき雑誌を中心として「太郎 v.s. WORD」の提灯記事がゲップが出るくらい掲載されるでしょうが、そもそもそれを使って文章を綴るに耐え得るかどうかといった観点で、刮目して迎えましょう。

 エキスポで、褌・エディットのデバッグに大きく貢献してくれたCOCO姉ちゃんのいるブースに立ち寄った。すんごい美人だった。これを一目惚れという。

 オープンパーティのオークションで、小池邦人さんのサイン入り「TOOL BOX 100の定石」初版本を600円でセリ落とした。役に立つかどうかは不明だけど、ま、記念品ですね。
 オープンパーティ後にGUINiftyキックオフパーティ&FMACPRO2次会に参加した。私の身の回りにはマックのプログラミングをやっている人は一人もいないため、雑談としてのマックプログラミング周辺ハナシの初体験だったのではないかと思う。いやはや楽しみました。
 
 シグノの熊坂さんからFirstClassへの転載の通知。
 宝島社の関さんからムックへの収録の通知。
 奈良岡さんからはAoMUG-BBSへの転載の通知。彼からは、取説の誤字を指摘された、気になったのでよくよく調べると、でるわでるわ。プログラム本体の方にも誤字が複数発見された。うーむ。今まで誰も言ってくれないんだもんなぁ。まいったなぁ。
 森さんから問題なしの報告。彼は以前、Plug In誤認識問題を報告してくれていた。本格的な調査は彼の報告から半年後にCOCO姉ちゃんの協力のもとで行われたのであった(彼女の環境で、完全に再現性があったため。私の環境では再現性が低かった)。
 勝手ながらRANDOMさんの茄子Rのデバッグに参加することにした。手始めに「EvenBetterBusError使ってるかい?」と打診すると、「使ってません」とのことだったので、EvenBetterBusErrorをバイナリメールした。予測していた問題点の解明ができたそうで、カット&ペースト関連の問題解決まで進んだそうだ。よかったよかった。茄子Rの1ユーザとして非常に嬉しい。

褌1.2.5 / 1995.03.05

 さて、問題の「MacFan 1995.4.1」がでた。楽しみにしていた(反語的な意味だよ、お間違えなく)「オリジナルエディタを作る!」といった内容の記事は見つからない。陳腐なエディタ紹介記事が掲載されているのみだ。
 解説は白石富男、紹介は青柳英穂、機能一覧は編集部が用意したと見られる。日経マック1994.11クラスの記事を望むのも無謀だが、その足元にも及ばない記事だ。
 気になるのは解説と機能一覧が内容的にまったくリンクしていない点だ。解説でSimpleTextの32KByte制限を補うために他のエディタを使うといった具体例をあげているにもかかわらず、機能一覧には32KByte制限の有無がない。一番重要だと思うのだが。
 どんなファイルもオープンしてしまうという機能も解説にはあっても機能一覧にはない。独自形式でのファイル保存も機能一覧にない。検索関連の機能一覧も解説の量に比べ簡素だ。

 白石富男の解説は、私が読んで明らかに嘘だとわかる記述はない。上出来だ。ワープロが使用するに耐えられないくらい重くなってるという問題点を指摘しているが、安易にエディタに移行させるのは問題があるだろう。特にMacFanの読者レベルのユーザにはだ。
 マックと国産パソコン(98のことだろう)では日本語処理でマックのほうが処理速度がおそいという記述があり、まるでそれがワープロの重さの免罪符のように読める。エディタも同じ土俵で組まれているという事実を忘れている。プログラムの高速化はやはりテクニックと忍耐力の必要なことなのだ。

 青柳英穂のエディタ紹介はかなりお粗末。気付いた部分を列挙しよう。
 まずはYooEdit。
 YooEdit(ユー・エディット)となっているが、作者の洋一という名前から考えてヨー・エディットと読むのではなかったか。Emac(イー・マック)準拠だそうだが、Emacとは何か? きっとEmacsのことだと思うが、これは誤植というレベルをこえている。UNIX文化に触れたことがないのだろうか? ときどき名前を見るライターなのだが。
 Edit7
 一昨年登場したEdit7を新しい部類と表現するのは完全な誤認だ。
 Hun-Edit
 そもそも名前が違う。HUNDOSHI-EDITがアプリ名であって、HunEditがアーカイブ名。Hun-Editというエディタは実在しない。
 ASCIIキャラクタの入力とASCII番号の表示という機能があるそうだ。何のことかしばらく悩んだが、きっと16進コード入力と16進コード表示だろう。意味が変ってしまう。日本語フォントはASCIIコードではなくSHIFT-JISコード(MS漢字コード)だし、英語フォントはアップル拡張ASCIIコードだ。他の国のフォントはそれぞれコードの名称があるだろう。
 プラグインを使うことで本体が多機能化により重くなるのを防いでいるそうだが、それは大きな勘違いだ。現在のプラグインで実現している機能とプログラムの重さとは無関係だ。処理が重くなるというのは、通常に文章を入力しているときのメインループに負荷がかかることであり、フィルターが内部にあろうが、外部にあろうがそんなことはどっちでも同じことだ。プラグインの意図は、それがまさしくプラグインであること以外にない。ユーザのアイディアが集中しやすいフィルタ部分をプラグインという形態で開放するのが目的だ。欲しければ自分でやれってことね。
 BeachText
 まだ売ってるとは思いませんでした。
 ASLEdit+
 新機能に非対応なのが残念だそうだが、くだらない機能で重くなってもらっては困るエディタだという認識がない。
 あとのエディタは良く知らない。

 編集部の機能一覧は事実誤認の嵐だ。
 Edit7は紹介では文字数のリアルタイム表示が可能だと書いてあるが、機能一覧では×になっている。どっちが正しいんだろう? 検索・置換が△ってのも釈然としない。全置換ができない以外は、最も強力な検索を実装している。
 YooEditも紹介ではアバウトダイアログで文字数表示が可能となっているが機能一覧では×になっている。同じく紹介ではDragManager(DragMangerという誤植だけど)へ対応となっているが、機能一覧では×だ。
 ASLEdit(ASLEdit+の間違いだろう)ってバッチ検索できたっけ? 
 禅・エディットってのは何だろう。見たこともない。バージョン番号から考えるとただの褌の誤植のようだが、当然DTP化されているであろうことを考えると、褌を「ぜん」と読んだに違いない。そんな東洋かぶれの米国人みたいな勘違いはヤだぞ。
 禅では「プリンタフォントの指定」ができるそうだ。へえ、いつから印刷できるようになったんだろう。ドラッグ&ドロップもできるそうだ。実装したおぼえはないな。

 MacFan編集部は、この機能一覧で全部に○がつくエディタが欲しいのだろうか? 32KByte制限について何も記述がないので、TextEdit Toolboxを使えば作るのはそう難しいことではない。でも、そんなエディタは使いたくも、ましてや作りたくもないな。

 機能一覧に作者名とアーカイブのある場所が書いてないってのはなんだろうね。少なくとも存在場所が書いてなければ、興味を持ったとしても探すことすらできない。実用性のあまりにも低い一覧だ。

褌1.2.5 / 1995.03.15

 マックエキスポ二日目のオープンパーティで行われたオークションでセリ落してしまった、6年前の9600bpsモデムで合計4MByteものファイルをダウンしようとしたが、タイムアウトエラーが頻発して、結局3分の1程度は2400bpsのモデムを使うことになった。モデムのマニュアルがないってことが敗因だな。
 4MByteものファイルは一連のMacMiNT関連のアーカイブだ。MacMiNTは、マック上の1アプリケーションとして動作するUNIXライクな環境だ。MacMinixはマック上の1つの巨大なファイルを1ボリュームとして、その中で独自のファイルシステムを使って動作するが、MacMiNTはマックのファイルシステムをそのまま使う点が違う。BOW(BSD On Windows)に近いかもしれない。BOWはDOSのファイルシステムを使っているため、特にファイル名の制限が大きい。これはツールの移植の最大の弊害となる。DOSに比べればマックのファイルシステムはファイル名の制限が少ない。Makefileとmakefileはマックのファイルシステムにおいて同じ名前とされるが、UNIXでは別の名前とされる。MacMiNTではファイル名の特定は大文字小文字を判別するが、結局は同じになる。
 テキストファイルはLFを改行コードとする。これはどのUNIXでも同じだ。Edit7 1.0b3はテキストの改行コードを自動判別するので、MacMiNTファイルのエディットには最適。実にタイミングが良かった。
 MiNTはMiNT is Not TOS という名前で、Atari-STのOSであるTOSを拡張したものだ。MacMiNTはJET(Just Enough TOS)とmint.prgで構成され、拡張されて「いない」TOSをJETでエミュレートし、mint.prgをbootするベースとする。
 1.08はMiNT is Now TOS となっている。ただし、MiNTがBSDとSystem Vのどちらに近いのかが良くわからない。lsの表示から考えるとBSD系ではないかと思われるが、なんともいえない。
 MacMiNT0.95が唯一何の手も加えず動作できるアプリだ。ただし、lsやcp、mkdirなどの僅かなコマンドしか用意されていない。catもmoreもない。でもlessはある(強烈! これしかいらないってのは事実だけどね)。そういえばperlもdiffもある。開発環境はマック用Cコンパイラのヘッダファイルを必要とする。ヘッダファイルをMacMiNT用に変換するperlスクリプトが用意されている。本来ならMPWのヘッダファイルが必要だが、Symantec C/C++ 7.0のヘッダファイルでもなんとかすることができる。
 develop.sh(シェルスクリプト)の実行が成功するとgcc(GNUのCコンパイラ)、ライブラリ、インクルードファイルが所定の場所にできあがる。これで、1.08へのアップグレードが可能になる。1.08へは差分(diff出力)でのみ提供される。
 1.08のコンパイルが非常に難航する。FAMCPROのMac & UNIXフォルダでもそのあたりのハナシが多い。マックのToolBoxルーチンが関数として存在しないというリンクエラーが発生するのだ。そもそもマックのToolBoxルーチンはCの関数としてでなく直接A-Trapとしてインライン展開されるから、何かが違う。変換されたヘッダファイルを見ると、TRAP_INLINEが定義されていないと、外部に同名の関数を必要とするかのような定義になっている。ああ、これか。Makefileに -DTRAP_INLINEを追加してマック用ライブラリ作り直し、再びmakeすると、膨大なワーニングと共にmint.prgができあがった。らっきぃ。
 Gashuさん作成の1.08→1.08+パッチをあてて、仮想環境を用意するJETをJET+に交換すると、ついに日本語の通るMacMiNTができあがった。よかったよかった。
 問題はGashuさんの改造したJET+のソースがないってこと。自力でオリジナルJETを(日本語も通らないレベルから)改造するしかないってことだ。JET+のソースがあれば、そこから先に進めるのだが。
 MacMinixのツールの移植が始まるが、最終的にはLinuxのツールにも手を出したいね。手始めはdateだ。これは一発で通った。
 catの移植でstd_errという関数がないというリンクエラーが発生したが、そんなライブラリを用意するのは面倒なのでstdio.hに
#define std_err(x) fputs(x,stderr)
を書き加えた(良い子はこんなことしちゃダメよ)。
std_errというのはMinix独自のライブラリなんだろうか。otherというディレクトリにあったからなぁ。
 manの移植もリンクエラーで悩まされたが、大抵の関数はもともとライブラリが用意されていたので、gcc-arでライブラリのリファレンスリストをとり、適切なリンクを行なうことで解決できた。manデータのデータファイルはFUNIXにある98用のMinix向けなので、かなり屈折した状況ではあるが、ないよりはいい。
 moreの動作がどうにもおかしい。パイプがまともに動作していないようだ。lessが日本語を通さないのでmoreの移植は大切なのだが、こうなったらLinuxのlessでも移植しようかな。
 巷ではEmacsとvi(stevieかelvis)の移植が最大の関心事のようだが、マックのファイルシステムとトランスペアレントなMacMiNTでは、わざわざ使おうとも思わない。だってEdit7が直接使えるんだもん。
 日本語の通るsedとawkとperlの移植が最終目標だな。欲しかったのはそれらのスクリプト言語なのだから。
 MacMiNTがマックの仮想記憶と相性が悪いってのが最大の課題だ。実メモリを積んでしまえばいいだけのハナシなんだけどね。スピードの問題もあり普段はあんまり仮想記憶は使ってない。でっかいアプリもあんまりないんだけど、20MByteってのは仮想記憶なしでなんとかできる限界かもしれない。

褌1.2.5 / 1995.03.19

 さて、UNIX関連ツールのMacMinix→MacMiNTへの移植は予想外に快適に進んでいる。
 ある程度のツールの移植はリンク関係でMakefileさえ適切な状態になったら、あとはもう機械的に一部の書き換え(#include を入れる程度)でサクサク通った。ワーニングは大量にでるが、それはまあたいしたことではない。
 gccはオプションでintを16bitとするか32bitとするかが選択できるが、デフォルトの32bitを使えば問題ない。ほとんどのUNIX環境はintもlongもchar*も全部32bitで、プログラムを書く上で実にラクチンな世界だ。パソコンではintは16bit、longは32bit、char*にいたってはマックはまだしもDOSやWindowsではsegment+offsetという、単純な整数値ですらない。
 ascii、cal、cat、cdiff、cgrep、cgrind、clear、compress、ctags、date、expand....wc、、which、width と、通信・プロセス・ディレクトリに関係のないコマンドの移植が済んだ。これでMacMiNT環境での不自由はある程度解消する。もちろんコマンドの中にはsedもある。日本語は通らないが。
 エディタはEdit7が使えるから本来は不要なのだが、ちょっとしたことにもコンソールを離れるのは案外煩わしいので、elvis(viのclone)を移植した。Makefileの解釈に多少問題があったが、最終的には解決した。これでviが使える。もともとEmacsライクなngというエディタが付属してはいるが、実は私はEmacsの使える体じゃない。Emacsの使えるような贅沢なUNIX環境で仕事をしたことがないんだなぁ。sonyではもちろんEmacsの使える環境だが、それでもviを使ってしまう貧乏なヤツになってしまっていたのであった。vi(elvis)は8bitスルーではあるが、ngのようにマルチバイトに対応しているわけではない。そろそろEmacsのキーバインドを憶えてもいいのだろうけどねぇ。
 で、ついにgawkの移植である。これはもちろんMacMinixからの移植ではない。本物のGNUのアーカイブからの移植である(昨年のCマガジン付録のLinux CDに入っていた)。GNUはアップルにと敵対しているため、アップルのマシンへのサポートは基本的には行っていない。Makefileの中にはAtari-STの記述はあってもMacintoshやA/UXはない。
 最初、DOS版のjgawk2.11からの移植を開始した。ところが泥沼にハマってしまった。ダメだと判断して、本来のUNIX版のgawk2.15.3の移植をすることにした。
 谷本孝浩さんの日本語化パッチ(現物はEUCであった。初めてASL KConvertを使った)をあてて、Makefileを注意深く調整し、config.hを準備すると、案外すんなり通ってしまった。MacMiNTのgccはデフォルトでataristという#defineが有効になっていることもわかった。それを#undefするのがポイント。
 POSIX対応チェックのスクリプトも全部OKで通り、単純なスクリプトはちゃんと動作する。もっとも、
ls -l | gawk '{print $5}'
程度しかやってないが。
 ずいぶん以前に購入した「sed & awk プログラミング」を、ちゃんと実験しながら読み進める環境がやっと揃ったわけだ。この本は実に綺麗だ(読んでないから)。

 MacMiNTのUNIXとの互換性の高さに驚いている。
 次は日本語の通るsedとperlだ。
 アゴラでこの文章をちゃんと理解できる人数は1桁かなぁ。

 よくよくアーカイブを見たらMacMiNT.others.sitにgawkとelvisが入っていた。私は何を苦労してたんだ??

褌1.2.5 / 1995.03.23

 さて、MacMiNTだ。
 gawkのコンパイル成功(だと思ってるだけかもしれないが)に気をよくして、次はschemeだ!ということで、昨年のCマガジンの付録のCD-ROMからチョイスしてみた。
 sickというscheme処理系からはじめた。英語のreadmeが存在しないところからみると、どうやらKiyokazu Sutoさんというヒトが移植でなく全部実装したようだ。
 コンパイルで最も不可解だった部分は、strlenというリテラルがおかしな状態で有効になっていた点。テストのため以下のようなソースをコンパイルすると
-------------------
main()
{
  int strlen(int);
  strlen(1);
}
-------------------
「strlenが定義とあってないぞ」とgccに怒られてしまう。#include なしなのに。これは変だ! 何かがおかしい。そこで、Cマガジン付録CD-ROMのgccアーカイブを復元(54MByte!!)して、ドキュメントを調べると、ありましたありました。-fno_builtinというオプションがあり、これを指定すると、strlenやmemcpyなどがcallした場所に展開「されない」とある。うひゃあ、デフォルトでそういった関数はリンクされるのではなく、インラインにされちゃうのね。ほとんどのCプログラムではスピード向上に貢献するけれど、別な意味でstrlenというリテラルはつかえないってことだねぇ。ううむ。
 で、-fno_builtinを指定して、あと、-D__unix__なども指定してコンパイルしました。
 実行ファイルはできました。でも、ちゃんと動いてくれない。はあ、まいったなぁ。

 さっさとsickはあきらめて、次はscmだ。これはAubrey Jafferさんというヒトが実装したschemeのようだ。ある程度注意してMakefileを用意して、コンパイル。コンパイル自体は問題なく通った。
 で、実行ファイルはできたものの、これもちゃんと動いてくれない。

 どちらも
(+ 1 2 3 4 5)
程度のプログラムは動くんだけど、テスト用に用意されたschemeプログラムはまったくダメ。
 次はどの処理系だ?!(まけるもんか!)

褌1.2.5 / 1995.03.30

 それゆけMacMiNT。
 最初の頃にコンパイルしたmoreがちゃんと動作しないことは書いた。ちゃんと動作するmoreを求め、moreのソースを探していた。「どこかにちゃんと動くmoreはありませんかぁ」ってね。
 UNIX USER4月号の付録のCD-ROMにFreeBSDのソースが収録されている。ここにmoreのソースがあった。とにかくやってみよう、ってなわけでコンパイル、コンパイル。
 MacMiNTでBSD系のソースをコンパイルするのは予想以上に困難だ。MacMiNTはBSD系に近いと思っていたが、もしかしたらSystem V系に近いのかもしれない。moreのソースではlseekの引数にL_SETが使われている。gccのincludeに用意されているlseekの引数はSEEK_SETだ。少なくともMacMiNTのgcc環境はBSD向けにはなっていない。良くないことだとは思いながらincludeをBSDに合わせて多少改変した。
 コンパイルが通り、リンクする段階に至って、re_compとre_execがライブラリにないとぬかしおった。BSD系のincludeを見る限り、マクロではなく実体のある関数だ。はてre_compとは何だろう。「プロフェッショナルUNIX」の関数一覧には記載されているので、BSD系には普通に用意されている関数のようだ。でもプロユニにはre_compが何をするかまでは書いてない。ウチにUNIXライブラリのリファレンスがないってのはツライなぁ。だって高いんだもん。
 NEWS(BSD系)のmanで調べるとre_compは正規表現処理のための関数だとわかった。System Vのリファレンスでは似た関数にregcmpがあるとわかった。regcmpはMacMiNTのライブラリをar tした中にあったはずだ。やはりMacMiNTの環境はSystem Vに近いのであろう。となるとLinuxのソースの方がまだしも動かしやすいということなのではないか。BSDよりはSystem Vに近いMacMinixのソースが比較的すんなり移植できたってことも証拠の一つだ。
 CマガジンのLinux収録CD-ROMにmoreのソースくらいはあるだろうとは思うのだが、これはLinuxをインストールしないと取り出すことができないようだ。FreeBSDからの移植を無理に進めるべきか、Linuxのソースをなんとかすべきか、思案のしどころ。

褌1.2.5 / 1995.04.03

 まだやるぞMacMiNTでSchemeだ!
 vscmというScheme処理系のコンパイルをすると、プリプロセッサフェーズで引っ掛かる部分がでてきた。まぁコンパイルに引っ掛かるくらいは珍しいことじゃないので、いつものようにマクロの書き換え(圧倒的にマクロ関連で引っ掛かることが多い、#defineされてないとかね)をしようとしてincludeファイルを観察すると、どうもおかしい。定義と違うようなのだ。
 assertという関数の引数が2つとしてマクロが定義されている。あれえ? gccのincludeではassertの引数は1つだ。FreeBSDのincludeもassertの引数は1つ。ついでに言えば、NEWSのmanでも1つ。Microsoft Cのマニュアルでも1つ。ANSI定義でも1つだ。
 assertはANSIで定義された関数で、全てのC処理系で引数はint1つだと思えるのだが、このvscmはどんなOSで、どんなCコンパイラを使って開発されたんだろう。
 ともかくMacMiNTでちゃんと動作するSchemeはないってことだろうか。Cマガジンの付録CD-ROMにはもう幾つかScheme処理系がある。次だ次だ。もうそろそろDISKの空きを気にしながら作業を進めなくちゃだな。
 LinuxとはLinus氏の開発したUNIXライクなIBM-PC向けOSのことだ。Linusさんはフィンランドのヘルシンキ大学のヒトなのでカタカナではライナスよりはリヌス、ライナクスよりはリヌクスまたはリナクスでしょう(日本ローカルな話題だが、Linuxのカタカナでの読みかたは諸説あるようだ)。
 MacMiNT付属のgzip(圧縮・復元プログラム、複数ファイルのアーカイブはしない)のバージョンが古い(1.0.7)ため、CマガROMのLinuxの.gz、.tgzファイルが復元できなかったんだけど、同CD-ROMに用意されていたgzip(1.2.4)をtar -x(tarはアーカイバ、圧縮はしない、-xは復元のオプション)してコンパイルすると、ようやくLinux関連をチェックできるようになった。
 Linuxのファイル群をを注意深くチェックすると、どうやら基本的なコマンドのソースは用意されていないようだ。基本的でないコマンドのソースはあるみたいなんだけどね。

 同僚の後藤クンに電話して尋ねる。
「Linux JE3のCD-ROMには基本的なコマンドのソースはあるの?」
「もう消しちゃいました、やっぱNTいいっすよ」
「メモリどのくらい積んでる?」
「40メガ、全然スワップ行かない」
「そりゃ天国だ」
「NTのPOSIXって小さいっすね」
「軍に納品するときの審査のためだけだから、実用は無理だろ」
「あ〜、そっか、あれかぁ」
「フィルタプログラムくらいは書けるだろうけど」

 同僚の間ではLinuxブームは去って、NTが流行しているようだ。
 ふう。

褌1.2.5 / 1995.04.06

 やれやれMacMiNT。
 「Linuxのソースの入ったCD-ROM付きの本がでてるよ」とのCOCO姉ちゃん情報をアテにして書店に向かう。「Linux極楽気楽インストール」という本と「Linux入門」という本が積んであった。予想外にLinux関連書籍は少ない。「極楽」のほうにはほとんどCD-ROMの説明はなく、たぶんLaser5製のJE2かJE3相当であろうと想像される。「入門」のほうには多少CD-ROMの説明があり、バイナリだけでなくソースパッケージも入っているとのことだ。さっそくスヌーピーのライナスのイラストが表紙の「Linux入門」を買ってきた。
 more.cを探し出し、コンパイルすると、存在しない#defineがでてきた。またか、と思いながらincludeをgrepするが見つからない、Linuxのincludeを展開してgrepしても見つからない、FreeBSDのincludeにも見つからない。あれえ? いったいこの#defineはなんなんだろう。ioctlというUNIXシステムコールの中でも最も臭い処理を担当している部分だけあって、ロクな資料もない。まいったなぁ、LinuxのmoreってのはLinuxでもコンパイルできないのではなかろうなぁ。ううむ。
 more.cの冒頭にBerkeleyとあるのも怪しい。BSDからの移植であろうか。FreeのUNIXは大抵はBSDを起源とするからまあ順当な線かもしれない。
 で、たまたまMinixのmore.cを見たら、冒頭がそっくりなのだ。main関数も非常に似ている。ゲゲ! LinuxはMinixを独自に改造したのが始まりだと聞いたが、Linuxのmore.cを担当したのはMinixでmore.cを書いたヒトじゃないか。かなりバージョンは上がってるようだが、こんなところでMinixからきてるソースを見るとは思わなかった。ま、純粋にMinix向けのソースだったわけでなく、最初はどこか別のシステム向けのmoreだったんだろうね。Berkeleyなんだから。
 「Linux入門」と一緒に「プロフェショナルBSD」を買ってきた。「プロフェショナルUNIX」のリニューアル版だ。ほとんど変わってない部分と、まったく新しく付け足された部分がある。TCP/IP関連の話題は新しく加えられた部分だ。比較的わかりやすくIPのハナシが書かれている。しかし共著のなかから村井純先生がいなくなってるのはなんでだろう。彼の担当部分は全部差し替えになったのだろうか。
 「プロユニ」のイントロで誕生からすでに15年を経てとなってる部分が、「プロBSD」では四半世紀となっている。よくもまあUNIXもここまでながらえたもんだ。

褌1.2.5 / 1995.04.06

 FMACPROのProgrammer's Folderで、小学五年生の子を持つ母子家庭の母親が、「子供がゲームを作りたいといっています。マックでのそういったツールはどんなものがあるでしょう」といった趣旨の質問をだした。FMACPROアクティブの間で「小学生とプログラミング」という、わりと考えさせるテーマとして捉えられ、非常に多くのレスがついた。ま、たいした議論になるものじゃないけどFMACPROではめずらしい。

 で、本人(子供のほう)からのお礼の書き込みに、
>>「大人の判断を小学生に押し付けるのは反対です」
>>この答えを見てものすごく嬉しかったです
とあった。

 「子供がゲームを作ろうということを思い、それをやめさせるのではなく、なんとか助けてあげようという母親のほうに頭が下がる思いです」というレスもあった。いやはや私はその視点は思いつかなかった。母親が、BASICなら自分もわかるということで、マックのQuickBasicを苦労しながら学んでいるところだ、という内容もあったのだ。私はそこにちょっと疑問を感じた。パソコン黎明期に子供だった我々の世代は、親がそもそもパソコンなんて知らなかったのだ。パソコンの技術は加速度的に変化(進化とはあえていわない)する。親の判断で今の子供にBASICを与えるのは無意味だと思ったのだ。何が必要かは子供が自分自身で考えて、調べて、質問して判断すればいい。

 え? 私がどういうアドバイスしたかって?
「Cコンパイラとインサイドマック全部を与えなさい」もしくは
「AT互換機にLinux乗せてX-Windowのゲームを作らせなさい」です。

褌1.2.5 / 1995.04.11

 ようやく私も、多少必要に迫られ、SONYでのNEWSのメールシステムをEmacsに移行しているところだ。DOSのエディタから離れられない私にとって、Emacsは使う気になれないくらいイヤラシいキーバインディングだ。しかもEgg+Wnnを使わなくちゃならない。ま、mh-e(Emacs向けMH)は思ったより便利だ。
 EggをなんとかVJE風のキーバインディングにしたいと思っているんだが、Emacsの設定ファイルはまんまLispだからイヤになっちまう。Emacs起動後、最初にかな漢字変換をかけると、変換サーバーとのネットワーク接続にいくってのがさすがUNIXだ。別のマシンでかな漢字変換やってると思うと憂鬱ではあるが。

褌1.2.5 / 1995.04.14

 メールの整理(茄子での削除)をしていたらBNNからのメールに返事をしていないことに気がついた。あっもう遅い。何かのムックに褌を収録する予定だったらしい。豊岡さん、御免ね。
 MacUserの奥村さんからCD-ROM収録の通知。
 斎藤さんからよくわかんないメール。
 堀江さんからAppleLinkのJapanフォルダーへの転載の通知。
 奥山さんからMIXへの転載の通知と、メニューの誤字の指摘。もう直してるんだけど、誤字だけでアップデートは無理だな。
 野尻さんからのレポート。
 宝島社からエンターテイメントマックマガジンが送られてきた。ついに子供向け(にしては風俗体験QTムービーなんてのもあるが)マック雑誌が出現する時代になってしまったのね。世も末ぢゃ。もう宝島社には期待するものはあまりありません。

 褌で英文字をリピートで入力すると、ゲツゲツした動作になるとの報告を竹林さんから受けた。報告されるまでもなくどうもおかしいなぁと思っていたが、たぶんバックグラウンドのことを考えてGetNextEventをWaitNextEventに変更したあたりが関係している。
 さすがに待ち時間をMAXLONGINTにしているのが悪いとは思うが、どうしよう。
 試しに、前回空イベントでなかったら待ち時間を0にするようにしてみた。イキナリ解決した。どうにもマックOSは奥が深くていかんね。
 しかしまだペースト時の描画でバグるパターンが残っている。ううむ。
 そろそろ禁則対応インデント付きFoldの実装を考えよう。

 書籍の再販制度がなくなってしまうと、いよいよ本の受難の時代がやってくる。今でさえ需要の低い本は手に入れやすいとはいえないのに、コマーシャリズムだけで書籍を考えたらもうどうにも身動きがとれなくなっちまう。自由競争が本来の健全な正しい物事のありかただって? そういった考えを肯定できる神経は私にはない。再販制度が必要な規制かどうかの判断は私にはできないが、いま10000円する専門書が、読者数が少ないという理由で50000円になってしまうのは明らか。
 DOS/Vマガジンの誰だったかのコラムで、現在のパソコン雑誌が供給過多になってる状態を歓迎する旨の発言があった。お決まりの適者生存・自然淘汰とかいうコトバで肯定していたが、悪貨は良貨を駆逐するって知らないのかな? 価値のない雑誌が多すぎる。現実にはちゃんと文章の書けるライターが少なくて、全般的に中身が薄っぺらになっている。商売として考えたばあい、ターゲットの多い、より大衆化された雑誌の方が当たるに決まってる。読者層の薄い専門的な雑誌が薄っぺらな雑誌に敗れて廃刊になったら責任を取ってくれるのかい? パソコン業界がプログラマを疎外して成り立つとでも思うのかい? これだけたくさんのパソコン雑誌がありながら、マックのプログラミング雑誌は1冊(しかも大部分のページがAPDAのカタログ)しかない。
 種蒔きもせずに収穫だけを求める出版社は不要だよ。
 技評さん、5年前のMacJapanを再開しませんか?

褌1.2.5 / 1995.04.18

 超健全でえと

 Nifty-Serveのパーティで上京しているCOCO姉ちゃんとでえと。
 渋谷のハチ公前で待ち合わせ。「OSTRAさんお待たせ」とちょっと遅れてCOCO姉ちゃん登場。ロフトWAVEとクアトロWAVEを巡ってCDを探し、雨が降ってきたので、ちょっと本屋さんに寄ってからセンター街の喫茶店に入った。喫茶店でひたすらお話をしている最中に後輩のカナちゃんが「ヨネキさんですよね、お久しぶり」と声を掛けてきた。一瞬私は自分のことと気づかないくらい上の空でした。なんせ憧れのCOCO姉ちゃんとのでえとですから。
 いまどき高校生もこんな健全な古典的でえとはしないぞ。

褌1.2.5 / 1995.04.23

 COCO姉ちゃんの禁則仕様書の協力のもとにInsCRフィルタの禁則対応をする。禁則ロジックを考えているときは「これでイケる」と思っているが、実際にコードにしてみると「なんでこれで禁則ができるんだろう」と疑問だ。興味がある方は禁則対応版のInsCRであるFoldのソース、Fold.pasを読んでみるように。禁則処理そのものをしている部分は案外短い。
 FoldはCOCO姉ちゃんへのプレゼントなんだよ。

 マパ5月号(MAC POWER、アスキー)の掌田津耶乃氏のコラムが辛辣だ。
 はっきりいって私は全体のページからみて非常に占有率の低いコラムコーナーのためだけにマパを買っているといっても過言ではない。全部が全部毎回面白いわけではないが、今月号は意外なことに、いつもはつまらない掌田氏のコラムが辛辣だった。

>> 「パソコンがあれば何かができる」と思っている君。
>>君を「できるヤツ」にするコンピュータなどこの世に存
>>在しない。君をできるヤツにするのは、君の周りにある
>>何かではなくて、君自身なのだ。

 何年も昔だが、学内での軽音楽系サークル合同コンサートで、後輩が自分達の出番の直後にPAシステムの音の悪さをブツクサ言っていた。確かにどのバンドもPAの音は最悪だった。ところがトリのバンドの演奏が始ると、PAシステム云々をはるかに超えた格好良い音が聞こえてきたのだ。さきほどまでブツクサ言っていた後輩は「やっぱ機材じゃないね」とPAシステムに文句をいっていたことを取り消したのであった。

 やりたいことがあれば、なんとか工夫するのが人間の知恵だと思う。掌田氏の考えは、全部を肯定することはできないが、否定もできない。彼の描くような人物像が「ひとつの作られた典型」のような気もしないではない。でも、世の中にはそういった人物もたくさんいるんだろうな。きっと掌田氏は最近そういった典型に近い人物にいやな目にあわされたに違いない。

褌1.2.5 / 1995.04.26

 複数プラグインをまとめようと考えていたが、それではせっかくプラグイン化した意味がない。明らかな退行であろう。で、パイプだ。構想1週間実装2日。
 パイプ機構を用意するよりは、パイプ作成のUIを用意する方がシンドかった。
 今回初めてリストマネージャを使った。実は今まで使ったことがなかったのであった。まあ、やってみれば楽なことではあるが、CellにたいしてSetPtをするってのはなんだか変だよなぁ。まあ、理論的には正しいことなんだけど。
 リストを動作させるためにダイアログのフィルター関数を使わなくてはならないが、グローバル変数を避けるにはWindowのrefConを使ってデータを渡すしかないので、refConを別の意味で使うTSMTE(インライン追加機能)の方法の悪辣さがわかる。どうにかしてほしいな。
 たいした問題もなく実装終了。パイプファイルのアイコンはパイプっぽくしなくちゃ。
 パイプのショートカットはCommand-Pでいいのだろうか。
 タブ展開プラグインはどうしようかなぁ。
 5/5は恒例の春会。後輩と一緒に台湾料理屋で宴会だ。連休の予定がこれだけってのも寂しいな。
 TSMインラインの処理速度向上のためソース解析用にプリントアウトしておくべきだった。

褌1.2.6a / 1995.04.30

 春会で、COCO姉ちゃんとの超健全でえとがカナちゃんから後輩にバレていたとわかった。カナちゃんは「付き合ってるようにはみえなかった」と判断したそうだ。的確なモノの見方だ。

褌1.2.6a / 1995.05.05

 なんだかんだといろいろゴタゴタはあったが、COCO姉ちゃんとは遠距離恋愛を始めましょうか、という合意にいたった。まだ手も握ってないのにね。お〜いClaude、COCO姉ちゃんの相談にのってくれてありがとうよ。大事にするからマフィアだけは勘弁してくれ。
 やっと食慾も回復してきた。恋ってのはツラいね。
 まずは会わねばな。

褌1.2.6a / 1995.05.11

 いつものMAC POWER(アスキー)ネタである。
 マパ4月号から粉川哲夫の連載が始まっている。「マパはInter Communication(NTT出版)ぢゃないぞ!」という私の反発なんぞ知らぬ風だ。あたりまえか。ところが6月号から上野俊哉の連載まで始まってしまった。ゲゲゲ、本格的にInter Communicationの執筆陣を迎えようってのか。マイナーな雑誌に書いても大衆に対する影響力なんてないから、ある程度売れてる雑誌に進出しようという腹積もりか。マパ側としてはアカデミックなメディア論者を呼んで、雑誌の格調を上げようとでも思ってるのだろうか。やだなぁ。

 上野俊哉の連載は予想以上に面白そうだ。ありがちなインチキなメディア論を展開するのでなく、アムステルダムという街に腰をすえて、彼の本来の専攻(社会思想史)のハナシを展開するようだ。なあんだこういう文章も書けるんじゃん。楽しみな連載が増えたと喜んでおこう(期待は禁物)。

 粉川哲夫の連載は、最初はマジにインチキなメディア論を展開していたが、ようやくそれでは読者が納得しないと気付いたようだ。どうも彼は当初マパ読者をナメきっていたようだ。Inter Communicationの読者層と一緒にするんじゃないよ。地に足を付けて実務にパソコンを使っている人間は、くだらないうわべだけの言葉をありがたがるなんてことはまずない。
 そもそもタイトル「トランスローカルなウェブへ」ってのがダサダサなんだけど、内容は具体的なメディア環境の変化を紹介する形になってきた。Anti-Copyrightの概念の紹介も興味を引く。Anti-Copyrightってのはリチャード・ストールマンの主宰するGNUのCopyleftに近いものだと思う。ま、しょせん粉川哲夫は紹介屋なんだなぁとは思うけどね。昔から日本では紹介屋ってのが一番食いっぱぐれなくて楽な商売だったのかもしれない。
 ニューヨークにおけるハードカバーの復権ってのは嬉しい事態だ。多少時差はあっても、その傾向は日本にも輸入されるだろう。コマーシャリズムだけを追求する出版社からの読者の離反が始まる。読み捨てる情報は電子メディアでいいわけだからね。

 今月の大重美幸のコラムは先月の掌田津耶乃のハナシの続きのような内容だ。こういったハナシを展開せざるをえない状況になってきているのかもしれない。
 ついに中島渉がティモシー・リアリーまで引っ張り出してきた。

褌1.2.6a / 1995.05.11

 ノベルからワードパーフェクトの修正版とやらいうフロッピーが送られてきた。ワードパーフェクト登録ユーザには全員送っているのだろう。たいした手間だ。ノベルの誠意と考えても良いのかもしれない。
 フロッピーと一緒にワードパーフェクトの3.1Jへのアップデートの案内も入っていた。本当はアップデートの案内だけを出したかったんだろうなぁと思うが、あまりにひどいバグだらけの製品で、怒りが頂点に達しているユーザが多いため、肉を切らせて骨を断つといった手段になったのであろう。
 ところがだ、付属してきたフロッピー版でも、まともなペーストができないという致命的な問題すら解決していない。なんのために送ったの? 資源の無駄もいいとこだ。
 こんな状態の製品を送っても3.1Jへのアップデートの弊害にしかならないんだけどなぁ。だって、3.1Jで問題が解決しているとは到底思えないもん。バカだよね。
 3.1Jへのアップデートは\5000です。私は評価が決まるまで静観します。
 誰かチェックしてみて(^_^)

褌1.2.6a / 1995.06.01

 COCO姉ちゃんとの遠距離恋愛が始まった。以前に伝えた、私のプロポーズを受けてくれた。でも、聞き直すと「え? 覚えてな〜い」ときた。こらこら、酔うのはいいけど忘れるんじゃないよ。重要なこと全部忘れちまうんだから。私と飲んで安心しちゃったんだろうけどさ。
 ま、後でちゃんと電話で再確認したけどね。
COCO「ねえ、一緒に住もうよ」
OSTRA「それは返事かな?」
COCO「うん」
OSTRA「一緒に住もう」
 誰だい? 酒に強いなんていいふらしたのは。

褌1.2.6a / 1995.06.03

 ひさびさに褌のバグが発見された。発見したのは私だ。積年のテキスト挿入系のバグだ。ときどき褌のウインドウに画面の別の部分、例えばデスクトップがコピーされてしまう問題があった。どうやらそれに関連した部分らしい。
 テキストラインの配列の添え字が負の数になるパターンがあったのだ。今回、完全な再現方法が見つかったので、非常にスピーディにバグ取りが済んだ。変数に範囲指定をして、範囲チェックに引っかかったばあいにデバッガに落ちるというオプションは、Pascalならではの機能だ。Cではこんなことはできない。
 ついでにCOCO姉ちゃんから指摘のあった、ロックしたファイルを開いてもFileメニューのSaveアイテムが有効のままという点を修正した。
 このβ版をCOCO姉ちゃんにバイナリメールすることにしよう。
 Linuxを使うためGateway2000のP5-120XLを注文しました。

褌1.2.6b / 1995.06.10

 OSTRAさんからβ版が届きました。やはり、真っ先に試したのは、パイプです。うん、これは快適、快適。でも、フィルタ名につけたCommandショートカットの記号までMake Pipeダイアログのリストに出てくるのは、ちょっとうるさいかも。'/'以降を消して表示するのは面倒なの? ううむ、私がいちばん文句の多いユーザーかもなぁ...。あ、ロックしたファイルを開いたら、ウィンドウのタイトルに''がつくんだ。へえ、これはわかりやすい。
 Foldのお礼にリソースとドキュメントの校正をお手伝い。もう誤字はないかな?
 今日は梅酒を仕込んだ。その前に瓶に入っていたパイナップル酒を漉して別の瓶に入れたから、台所にはアルコールの匂いが充満している。今日仕込んだ梅酒は、来年OSTRAさんと飲むためのお酒です (^_^)。
 いや、しかし、急速な展開であった。あ、そだそだ、ほかのCOCOさんたちに迷惑が掛らないように、同定のためにIDを書いておくべきかな。私のNIFTY-Serveの個人IDはGBG02104です。
 さあ、来週はWindows World Expoだ。

1995.06.11 COCO

 Control-R/Cでのページ移動の気持ち悪い動きを改善した。ファイルの先頭にキャレットがあったばあい、1回目のControl-Cではキャレットがウインドウの先頭行にあるままだ。そして2回目のControl-Cを押したときに表示画面の調整の動作が入り、表示されてる先頭行が1行上になる(ウインドウ内テキスト全体が1行下がる)。本来、これは1回目のControl-Cで、画面の調整を含めて一発で動作すべきことだ。キャレットはウインドウの先頭行を可能な限り避けるように記述すべきなのだ(他の部分がそうなってるのだから)。
 というわけで、Control-R/Cでの動作が、見た目にも美しくなった。
 ついでにOption-←/→での単語移動、Option-↑/↓でのページ移動を加えた。Option-Arrowでの動作のことは比較的最近まで標準化されてたことに気づかなかった。Control-A/FやControl-R/Cを多用していたからだと思う。マックしか使わない人はOption-Arrowでのきちんとした動作を期待するかもしれない。
 さあ、来週は幕張のWindows World ExpoでCOCO姉ちゃんとでえとだ。

褌1.2.6b / 1995.06.16

 COCO姉ちゃんから借りてた「こちらITT」(草上仁、ハヤカワ文庫)読了。「道化の釘」は強烈な作品だぁ。すみませんねぇ草上さん、また借りて読んでしまいました。COCO姉ちゃんは膨大なSFの蔵書を持ってるから、印税に貢献できないかもしれないな。
 はやくこいこいGateway2000。
 秀和システムからマックの入門書が送られてきてたな。

褌1.2.6b / 1995.06.23

 検索関連のメニューを独立させた。これでフィルター関係が使いやすくなる。
 そろそろアップロードの準備に入ろう。

褌1.2.6b / 1995.07.01

 AT互換機向けのモニタを注文。マックショップで買うってのもなんだかなぁ。
 ようやくNifty-ServeのプライベートフォーラムMuON(GO MUON)で、自己紹介と書き込みができる程度には味読が減った。しかし、なんとも活発なフォーラムだ。ワードパーフェクト問題の建設的な解決ができるといいね。
 
褌1.2.6 / 1995.07.12

「ホーム」へ戻る
「読まなくてもいいよ11」
OSTRACISM CO.
OSTRA / Takeshi Yoneki