vin 発掘

社長:セブンでタバコ買ってきました。

基盤:ドラッグストアは10時からなのが残念なところですね。

社長:昨日ココスに行ったら10時開店になっててびっくりしました。でもそのぶん、メニューがまともになってました。

開発:時代に合わなくなった無理な体制を惰性で続けるのって良くないんでしょうね。ここに越してくる前には、メニューがかなり劣化してましたっけ。

社長:10時に開店して即ランチメニューというのはいい線なのかも知れません。大概のコンビニも7-11で良いような気もします。

開発:クロネコみたいなドラスティックな見直しが必要なのかも知れませんね。

社長:タバコだけでもなんなので、おいしい牛乳を買いました。なんと、450mlのキャップもこの、でっぱり付きになってるのに気づきました。

開発:このキャップは素晴らしいですね。

基盤:でも450mlパックはこの紙を押して広げて引っ張って角から直接ごくごく飲むところが良いのだと思うんですが。升酒的な。

開発:まあそれを言うなら、大きな牛乳パックはそもそもペットボトルでいいんじゃね?っていうところはあります。

社長:レトルトカレーのレンジ対応とか、何十年も不便が当たり前と思われてたのが突然解消されることってありますね。

基盤:クリとか生卵もレンジ対応のができると良いですね。遺伝子組み換えして。

開発:たぶん、種無しなんとか系と同じで、本来の味とか食感を損なっちゃうんじゃないですかねえ。

社長:まあ、少なくとも、風情が損なわれることは避けられないでしょう。

開発:風情は不完全さとか不便さとか非合理性から生まれますよね。

マンデルブロー色ピッカー

社長:それで、セブンで買い物してるときに、今日はマンデルブローをやりたいなと思いました。

開発:まあ一種の万華鏡ですかね。

社長:意図的な構造とか重ね合わせが無いところが残念ですけどね。でもたとえば、ある区画を切り取った時の全体の色合いがよかったら、そこから配色見本を作るのも良いかなと。

基盤:実装の手間とか処理の負荷はどうなんでしょうか?

社長:30年前頃に流行ったんですが、当時のワークステーションの能力で普通に書けた気がします。私はキャラクタ端末用に自作しましたよ。Cインタプリタ内蔵のニュースリーダの余興記事の形で。

開発:まあ処理量はピクセル数に比例しますよね。1000 x 1000 は軽くは無いのでは。JavaScriptで書くのが重かったら、GoからWebAssenblyにするとか、データ作成はGshellのネイティブコードGoパートに投げるとかにありかと思います。

社長:各実装の性能を比較するベンチマークにも良さそうですね。

vin発掘

社長:それで、30年くらい前に作ったやつを参考にしたいかなと思うので、10年ぶりにvinを動かしてみようかなと。

基盤:それに時間をとられて終わりそうな懸念が。

社長:まあそれもいいじゃないですか。骨休め骨休め。

基盤:HTTPのログに出てくるので在り処は知ってます。ああ、ここですね。

基盤:最終2004年版にはmacOS版もあるようです。どれ、ダウンロードして実行… ありゃ。

社長:動きませんか。

基盤:PPC用でした。残念!

開発:Intel版も作った記憶がありますが。

社長:公開はしなかったかもですね。ソースはありますよね。

基盤:これですかね。make… コンパイルエラーが。これって、K & R みたいですね?

社長:まあ、Cといえばそれしか無かった時代に作りましたからね。K & R なんていう形容詞もありませんでした。

基盤:タイムスタンプを見る…

基盤:1987年の3月のファイルが最古のようです。

社長:まだ就職前ですね。

開発:てか、ようやく内定がもらえた頃とかw

社長:あの時あそこに就職できてなかったら全然違う人生が開けてたでしょうね。

基盤:これってどういうライセンス形態なんでしょう?

社長:ftp の pub っていう名前のフォルダに置いたし、パブリックドメインのつもりだったような。

基盤:ああ、COPYRIGHTというファイルにこのようにあります。

社長:ちなみに、ETL=電総研、AIST=工業技術院、MITI=通商産業省です。

開発:電総研から外に出すためのケジメが必要だったんですかね。

社長:そもそもソフトウェアの知財権が100%研究所のものになるってなったのは、産総研になってからのような気がします。その前は明文化されてなかったというか。書籍みたいな著作物扱いだったのかも。

開発:あの頃は、利用許諾書に双方管理責任者のサインをもらってカートリッジテープで配布してました。

社長:でもこの文章はたしか、N. Bolenstein の metamail のやつをコピペしただけだったように記憶しています。

基盤:もろ定型文ですね。

開発:まあでも、学生時代に書いた分は社長個人に完全帰属していることは確かです。

基盤:Linux版のバイナリは2.2.5だし動くかもしれませんね。

基盤:ああ。このUbuntu 18、OSが64ビット版だから、32ビット版を実行形式として認識してくれない模様。

開発:当時のRedHatのisoでVMすれば動くのでは。

社長:確か2000年頃がRedHat 6.1だったと思います。パッケージで買いました。終わりの頃は7だったかも。

基盤:じゃま、6.2Jにしておきます。633MB。

基盤:おおー、さすが、カネにならないアーカイブサーバのせいかダウンロードおっそいですねー。

開発:でもちゃんとアーカイブを公開してくれているだけで偉いと思います。

基盤:ダウンロード終了。インストールします。

開発:くあー懐かしい。

社長:というか懐かしさを通り越して忘れかけてますが。text <ENTER> で。

基盤:今どきのOSなら全部デフォルトで自動インストールの事を、色々聞いてきますね。でも、わかりやすいインターフェイスではあります。出来ました。所要数分。

基盤:あー、でもネットワークつながらないですね。ssh も無い。

開発:ftpでしょう。

基盤:あー、route が無いですね。ether インタフェースも検出されてない模様。

社長:ググってみては。

開発:VMwareならいけるかも。

基盤:今更時間の無駄だと思います。ubuntu の 32ビット版で試してみたいと思います。

開発:当時のだと fedora が良いかもです。

基盤:今のubuntuで行けるのではないかと。

* * *

基盤:どうも64ビット版のubuntu 18と全然違うので面食らうのですが、とりあえず環境はできました。あと、どうも設定を変えた後にSTOPしてParallelsごと再起動しないと画面が真っ暗状態なのが意味不明です。

開発:ともかく実行してみましょう。

基盤:./vin* ...

社長、開発:おおーっ。

社長:無いといっている gdbm はまあ無くても動くかなという程度だと思います。termcap は無いと困りますが、シンプルなライブラリだしなんとかなると思います。

* * *

社長:どうでしょう?

基盤:言語環境の設定を変えたらフリーズしてしまい、またまっくら状態になって今度は回復できずUbuntu VMの画面が真っ暗になってしまったので、インストールし直ししてます。

開発:スナップショットをとっておけばよかったですね。

基盤:今度はそうします。

社長:世界中で数百万人というのは微妙な数ですね。

基盤:ともかくこの言語パッケージというのが巨大で。IMEが邪魔なので外そうとしたら固まってしまいました。

* * *

基盤:うーん、やっぱり動的ライブラリが解決できないですね。RedHatからライブラリだけもって来たんですが。絶対パスのもあるし…

開発:昔のFedoraではどうですかね。一時期はあれが一番インストールが楽でした。

基盤:Fedoraをインストール…

* * *

基盤:やぱり動的ライブラリが。GCC関係でバージョンが合わないとか。静的リンク版は無いんでしょうか?

開発:DeleGateでは作りましたが、vinではやらなかったかもですね。あれ?逆かな?

社長:やっぱり当時のRedHatでVMじゃないですかね。もいっかいトライしてダメなら諦めましょう。

基盤:うーん。。。vin/cosmosの配布ディレクトリには RedHat7.1だって書いてありますね。じゃあこれを…

* * *

基盤:やっぱりeth0が認識されません。

開発:VMwareならどうでしょう?

基盤:VMware Fusion、2ヶ月無償トライアルでやります。インストール… 終了。RedHat7.1 Seawolf をインストール…

基盤:インストールはサクッと終わるんですが、GUIモードだと、起動すると真っ暗です。インストール前にテストモードすると、ちゃんと表示されるものの無限ループになるし…

社長:X Windowは無しにしましよう。

基盤:再インストール… これ、さくさく進行ではあるんですが、毎回アカウントとパスワードを入れ直すのがかったるいです… 起動。

社長、基盤:おおーっ。

基盤:立ち上がりました。eth0 認識されてます。

開発:さーすがVMwareっ (^-^)/

基盤:ではさっそく、ftpで配布ファイルセットをダウンロード… そして起動。

基盤:なんか、NNTPSERVER が無いと起動しないと言っていますが。

社長:それはスキップできるようにしたと思いますが…

基盤:うーん。よくわからない。delegate.org?。ガチャガチャガチャ… 帰ってきませんね。

基盤:あ、応答ありました。

社長:イエス、オフコース。

基盤:ぷち。

全員:おおーっ!

社長:20年の時を隔ててここに復活!

開発:まあ20年前の環境で、ですけどね。

社長:VMは偉大なり。

基盤:立ち上がりましたね。字化けしてますが。

社長:これはコンソールだから、ASCIIオンリーなんじゃないですかね。リモートログインしましょう。

基盤:telnet か rlogin でしょうか?サーバの立て方が…

社長:いや、DeleGate の yysh で良いと思います。RedHat7.1 で DeleGate9.9.13 は動くはず。

基盤:RedHat7.1はLinux/2.4ですね。ではDeleGateのバイナリ配布、2.4版をダウンロード…

社長:yyshサーバの起動オプションは -P9999 SERVER=yysh です。

基盤:起動…

社長:yyshクライアントの接続オプションは -Fyysh host:9999 で。

基盤:ログイン… そんな端末は知らないと。

開発:当然 vt100でしょう。

基盤:指定して再ログイン…

基盤:OK。で macOSの Terminal で ISO-2022-JP を設定。vin を起動…

全員:おおーっ。

社長:懐かしすぎる…

基盤:最初の記事は 1988年1月14日付けです。

開発:yet another というフレーズが脳内に残ってた時期ですね。

社長:まああのころすでに、ニュースリーダは出尽くしてた感がありましたし。

基盤:というか、さっきから応答が無くなったりして変なのですが。

開発:macOSのターミナルのISO-2022-JPは前から怪しいです。vinの出力を8ビットコードに出来ますよね。

社長:というか、yysh のオプションにあります。-ju でEUCに変換。

基盤:ターミナルをEUC-JPにして、yysh -ju で再度ログイン。あー、サクサクになりました。

基盤:最初の記事、月火水木ってこれ丸数字ですかね?

社長:yyshに入力コードを明示指定してないからですかね。

基盤:この時点で数ヶ月と書いているので、作り始めたのは入所した年の中頃ってことでしょうか?

社長:まあ新人なりのプレッシャーは大きかったですが、自由にやらせてもらえてましたね。ちなみにこの「@ぷろぐらむ」というのは所属研究室の名前です。ソフトウェア部プログラム研究室 (^-^)

基盤:記事中のCプログラムを実行する例がこれですね。タコ踊りをぽちっと。

基盤:死にました。

社長:ああ、たぶん自作の動的リンク部分が86とかに対応してないんですね。VAX 用に作ってSunにも移植したんだと思いますが、Linux とか用には対応しなかったと思います。というか、a.out形式用だったような。

開発:でも何も死ななくてもw

社長:当時の私のプログラムは死ぬの普通で、adb か dbx でコアダンプを解析してメールが来るようにしてました。それはDeleGateにも引き継がれました。

基盤:死ぬ原因は?

社長:まあ非同期処理の問題もあるにはありますが、ほとんど型の不一致とか初期化忘れとかポインタのリンク切れだったように思います。ダングリング。ほとんどのバグは、ANSI以降のCであれば未然に防げたり、Goのような言語ならそもそも要らないコードだったりします。

開発:ということは、マンデルブローのデモプログラムも死ぬわけですね?

社長:たぶん。

基盤:といいますか、vin の説明記事の中にはマンデルブローの例が無いですね。

社長:vin-MLの方に出したのかな?・・・うーんマンデル、とかしょうもない駄洒落を付けてどこかに出したのは覚えているのですが… 当時の record か posted にあるのではないかと。探してみます。

* * *

基盤:見つかりましたか?

社長:いや、それより、昔ネットニュースに投稿した記事を読んでたらおかしくて。20年前に書いたのを、昨日のように覚えているのが結構あります。電総研の最後の頃は、fj.jokes にばかり書いていたようです。自分ウケでしたね。当時から私の笑いのツボは全然変わってなくて、今も自分で読んで笑ってしまいます。

社長:あと、私のメールフォルダに残っている最古のメールは、1987年の5月のものでした。新人研修が終わって研究室に配属になった頃かと思います。友人からガレージセールのお知らせ。

開発:Status: RO は mail コマンドで読んだ印ですよね。

基盤:シンプルなヘッダーですねw

開発:現在から考えれば、あの頃はあらゆることがシンプルでした。とりあえず作ってみました動きますけど的な。

社長:部品や機械がシンプルなぶん人間の負担は大きかったですね。標準化されてないネジみたいなのをめいめいで作っちゃって売りさばいちゃって。さっきのLinuxのインストールにしたって今は全くばかちょんですが、昔は結構大変だったんです。

基盤:でもトルクスネジはカッコいいですよね。

社長:あれは良いものですよね。あの選択に関してはアップルは正しかったと思います。

開発:でも実用的に何か役に立ったのかというと。ただの美的こだわりにも思えますけどね。

基盤:そもそもユーザにはネジに触れさせない主義ですしね。

社長:ネジはまだましなほうで、一般に本質的に良いもの、そうあるべきものって、認められるのに時間が掛かる傾向があるように思います。

開発:まあハードウェアの標準化が進んでなかったっていう所はすごく大きいですよね。そこに付け入って大きくなっちゃったOS会社とか有りましたけど。

社長:とは言えアップルも癖のある問題児だし、Linuxはなんとなくぱっとしないし、スマホやタブレット系のOSは本流では無いと思うし。

開発:そうこうするうちにOSがソフトのハブとか基盤みたいな時代は終わりつつあるのかもしれないですね。もう、アプリしか無い世界。詰め合わせ自由。どこでも動く。

基盤:要するに標準ウェブ技術ですね。

開発:それにしたって最終のものじゃないとは思いますけど。どう見たって今のこの仕様。いろんな言語もあったねよねーみたいな。

社長:OSの終焉かぁ… Unix育ちOS研究室出身だと思っている身としては寂しい気もしますね。

開発:まあOSとか、そもそも名前がださいっちゃあダサいですね。

社長:それをいうなら、コンピュータてのがそもそもダサいです。

基盤:やっぱエンジンとかマシーンとかがカッコいいですよね。

* * *

開発:そういえば小腹もすきました。一昨日の野菜が悪くならないうちに、野菜炒めにしましょう。野菜をちぎって炒めるだけ、じゃーっと。あちっ。ネギ炒めは油が飛びますね。できました。

基盤:これ、このキャベツ、めっちゃ美味しいですね。はぐはぐ。めっちゃ美味しい・・・

開発:いや、泣くほどのことでは無いのではと。もぐもぐ。

社長:半かけで100円しませんでしたしね。お値打ちです。それよりもネギのこのぷりぷりっぷりが素晴らしい。

基盤:でもこのキャノーラ油とは香りがマッチしないような。菜種油とか?

社長:なたねの事みたいですね。ノーキャラですかみたいな。もぐもぐ。あちっ。

開発:熱した時に野菜の香りを邪魔しない油ってあるんですかね?

基盤:鉱物油なら高温無臭もありそうな気がしますが。

社長:いっそパンチを効かせるのにごま油とかラードを隠し味的に使うとよいのかも。

開発:キャベツ系って、ほどよく熱するといい味と匂いを出しますよね。すましたレタスのツンデレ風とか。

社長:自然界では何千万年も、そういう食べられ方を想定して進化したり選択淘汰されて来なかったと思うので、面白いです。

基盤:でもこのほうれん草って、昔のより味が薄いというかサラダっぽい感じがします。こんなんでおひたし化に耐えるんでしょうか?

開発:これを缶詰にしようっていう発想がどこから来るものかと。

社長:素材的にオリーブと合うんでしょうかね。

基盤:カブとかレタスの缶詰くらい奇天烈ですよね。

開発:まあ圧縮が効くからなんでしょうけど。

社長:次は是非鍋をやりましょう。なんといっても白菜としいたけとしらたきです。

開発:春菊としめじと、もちろんネギもお忘れなく。

基盤:お豆腐とタラもお願いします。

-- 2020-1014 SatoxITS