2020年3月31日火曜日

過去の遺物

長くコンピュータにまつわる仕事をしていると明らかに過去の遺物と呼ぶべきものに出くわすことがある。
ソフトの面でいえばTurboPascalはオーパーツとも言える遺物だし行番号付きの古いBASICは捨て去られた遺物かもしれない。

これはあるお客さんから処分を頼まれたモノで
懐かしきMOのドライブとメディアとクリーニングディスク一式です。
MOメディアの箱の中には未使用の540MBのメディアが2枚と乾式のクリーニングディスクそして使用中の128MBのメディアと640MBのメディアがあった。
なんとDriveはWikipediaの画像と同じもの

で、一応最も速いであろう640MBのメディアを入れてベンチをとってみた。
うわー!めっちゃおっそ。128MBのメディアなんかこの何分の1のスピードしか出ないもんね。もしかしたらFDより遅いのかも
(ってそんなことは流石にないよね 今度FDのベンチもしてみよ)

でも1980年代から1990年代頃にはあこがれの大容量リムーバブルメディアだったんだよね。今じゃUSBメモリーのほうがずっと使えるメディアになってしまったけど・・・

これでraspberry piとかで当時のPCもどきとか作ったらちょっと面白いのか?まあ必然性は無いけどな

2020年3月26日木曜日

BASICからsmallbasicはたまたvb(a)そしてpythonへ

最初にパソコンで触れた言語と言うこともありBASICが好きなのだけど同時にその欠点については痛いほど知っている。
PC言語最初期の妥協の産物と言ってしまえばそれまでなのだが・・

で、PC言語に関心を抱き始めた人がいるとしてその関心を発展させたくなるような出会いをしてもらう最初の言語は何が良いのだろう。
今はpythonが良いのかもしれない。
美しいoopと言う点では同じスクリプト言語のrubyの方がきれいな気もするけど、こと実用とか実験の手助けのツールとかプロトタイピングのための小さなシステム作りとか考えていくと情報が多い言語の方が向いているに違いないしREPLがある方がずっと良いと思う。
(rubyにもirbというREPLがあるけど漢字を入力しようとすると落ちたり使いやすくない印象。pythonのそれは単純にコマンドラインからpythonと入力するとREPLになるので自然だしクラスやライブラリの中身を調査する手段がその中で使えるので仕組みを理解する助けにもなる)
oopの言語ではライブラリーが独自だと元の言語を覚える以上にそのライブラリーの流儀を覚えるのに時間が掛かったりしてしまう。
で、その点でもpythonはかなり良いと思う。

しばらくはBASICで出来てたことを話のとば口にしつつpythonでの表現を少しずつ紹介していきたい。できれば間に変化の過程の副産物的な感じでsmalbasicを取り上げたりいまだにoffice製品の言語の中核として生きているVBAに思いをはせたりして寄り道を楽しみつつ学びを深めようと思う

2020年3月7日土曜日

問題山積み

最近、身の回りで事件が多すぎる
1)車が盗難に遭って、放置状態で発見されるも消火器まかれてて廃車
  ※当然次の車の手配も必要ですが金もないしまた盗られる可能性も
2)デスクトップPCが故障
  時期が悪くて確定申告前でここ数年分のデータも戻ってこないので今から前年の初期状態まで再登録後に1年分のデータを再入力
  ※次の作業用デスクトップを中古のdell 270sにしようかと思うがメモリーも4GBで何やら重いし全ユーザの不要なソフトのインストールも消さないと・・まあSSD(480GB)と増設メモリー4GBは発注した。
3)納品すべきPCがたまってきた
  ※にっくきコロナめ!
4)開発が遅れてる・・勤怠管理ほか

まあ4)は犯人が自分自身の人災

(200308)
現状での回復状況
1)車両保険が今週中にも降りてくるので以後、次の車を考えよう
  ※あんなに簡単に盗まれるのなら中古で十分
2)壊れたのはHP S5-1050jpだったのだがメモリーを8GBに増設してもかなり遅かったので予備機のDELL Vostro 270sのHDDをSSDに換装して使うことにした。メモリーもちょっと不足気味のような感じだったので4GB追加して8GBでの使用を考える。Officeについては手持ちのライセンスを利用してOffice+Access2013で使用予定。
経理ソフトはこれに入れて利用する。
3)についてはノートPCは3/8の週中に納品。デスクトップ2台は3/15の週中に各々納品していく。
4)はまあ、頑張んなさい>自分。

2020年3月4日水曜日

やっぱりBASICが・・・いつまでやってんのって話

好きなんですよねBASIC
何のかんのと言ってハンドアセンブルの機械語の次に憶えた言語ですから・・

で、行番号付きの古代BASICとの付き合いはこないだのエントリーで本当に控えなくては貴重な時間がどんどん失われていく

で、ふと別の目的でwebサーフィンしてて思い出したのが「smallbasic」
microsoft謹製の初心者向け言語です。
以下の特徴があるけど遠い昔に行番号付きの古代BASICで出来てたことのうち教育で使いそうなことは出来てる感じですね
まあ実用プログラムを作ろうと思うとファイル系が弱いのでしんどい

凄いなって思う点は
1)コンパイラなのです。実行にはSmallBasicLibrary.dllが必要ですけど吐き出す実行ファイルのサイズはかなり小さい。ただし実行は遅い
2)ネットにつながった環境であれば作成したプログラムを共有するための機能として「発行」と「インポート」各メニューが使える。
3)機能をオブジェクトのメソッドの形で呼び出すのだけどC#で拡張機能が比較的楽に書ける。
4)配列が無宣言で結構自由に使える。awkの配列と同じように文字列を配列の要素指定に用いることができるのと要素数もかなりたくさん持てるようなので2次元配列を用いてオブジェクトの配列のような使い方も可能。

えらい割り切りすぎでは?って思う点は
1)グローバル変数しかない
2)手続きはあるけど関数は作れない
3)IO系が命令が極端に少ない
4)文字列操作の関数が少ない

この辺りはmicrosoftとしては超入門用として用意してるのかな

でもIDEも面白いのでちょっと注目する
(もう行番号付きBASICしかわからないような人に面白い言語を紹介して使ってもらうなんてことは僕の指導力とかでは絶対に不可能。)

C#やVB.NETで拡張できるってのも面白い
結構簡単にできそうでアイディアさえあればイロイロと実験できそう

ちょっと余談
最近 いろいろ古いBASICに決別を告げるべくfreebasicやQB64などWindows7時代にちょこちょこ触って遊んでいた言語の最新版と思しきものをWindows10環境にセットして動かしてみたけどちょっとグラフィック命令を実行しようとするとコンパイルエラーが出たのには驚いた
以前のバージョンで動いていたソースが通らないって・・
いくらできる実行ファイルがgccを使っていて速くても・・
もうね、こらえ性が無くなってて一応のことはデフォでできて発展するときにちょっと調べるくらいですすんで行ける言語環境しか触れなくなっているんだなあって思いました
過去に楽しませてもらったので感謝して速攻アンインストールしました
時間は有限なので「本当に」この手の言語に時間を使うのは止めます

2020年2月28日金曜日

HP S5-1050JPが壊れた

久しぶりに起動したらログイン画面の後デスクトップは出るけどそこから進まない(スタートボタンやタスクバーにマウスホバーすると砂時計)

まあ同じ古いのでも程度がかなり良いDELL vostro 270sにかえようとおもっていたのでちょうどよいかと一昨日は思っていた
しかし確定申告の準備をと悠長なことを考えていて青ざめた
会計ソフトの内容のバックアップが取ってない
(壊れることを想定してない)

Officeのプロダクトキーが取ってないのはどうにかなるか程度に考えていて楽観視していたけどこんなところに恐ろしく大きな落とし穴があった。こうなるとなんとか再起動に成功させて会計ソフトのデータを抜いて別のPCでやるしかない。
まあしかたが無いのでいろいろ試してみよう

(200229)
けちってつくもんなんですね。
車が盗まれました。朝気が付いたらあるべき場所に無い!
で、被害届けとか出して防犯カメラの映像提出してしばらく
したら別県の県警から電話で見つかったからすぐに現場検証に来てと
電車で雨の中行ったらまあそれは大変でした。ナンバープレートの指差し写真から始まり車台番号、各装備、損傷個所、遺留品など指差しの様子を撮影され関係者指紋とかで「僕は何もやっていない!」って言いたくなるほど指先から手のひらまで指紋、掌紋の採取をされ最後は結構な枚数の書類を書いてレッカーに愛車(元かも)を引き渡して夜にやっと
帰宅でした。
まだ腹立ちは起きてこないですがただただ驚きの一日でした。
これで鎮静化してくれれば良いですけど。

これらの顛末は後日に

2020年2月16日日曜日

道草は犬も食わぬ の?

pythonはその使用の仕方を考えると往年のBASICに似ていると思った

で、類似性として対話処理と簡易な文法と気軽に使えるグラフィクスについて調べようとしていた
特にpythonと引き合いに出すのはどのBASICが良いかを考えてみた
調べているうちに訳が分からくなってちょっとプログラムを動かしてみようと思ってmandelbrot集合を描画させてみた

まずはtiny basic for windowsで下図
描画は23秒台でこの手のソフトとしてはまあまあ早い方なのかな
このBASICや十進BASICは教育関係の方が開発されたものでHELPや関連資料が多くてプログラムを組むには良いけどN-BASICなど往年のBASICとの文法の共通性は薄い、とはいえ行番号を普通に受け付け動いてくれる 描写される画面が1つではなくてテキストが出力される画面とグラフィックが描画される画面が別なのは往年のBASICしか知らない人(そんな人がどれぐらいいるのかは不明だけど)が使うとちょっと面食らうかもね 時間計測はその日の0時を出発点とする経過時間を返すtimer関数があって、いい感じです

次は十進BASIC
描画は今回調べた中では最速
本来はJISのFULL BASICを教えるための環境
したがって旧来のN-BASICなどを動かすにはメニューで
オプション→文法→MicrosoftBASIC互換 とする必要がある
TIME関数というtbwのtimer関数があって計測は楽だった
ただJIS FullBASICは自分の中ではいつ使うのかわからない
多分上記のモード以外では絶対に触らないと思う
(きょう日、代入文にLETなんてつけるやついますか?)

次はMBASIC86
速度は決して速くない(描画時間28分58秒[=1738秒])
N86-BASICとの互換性は高そう(そのせいで時間計測はTIME$を表示して手計算)
多分N86BASICの資産のあるひとはありがたいはず
(そんなに突っ込んで調べてません)
編集が専用画面でできるのはちょっとありがたい 使い分けで混乱

99BASICってのもあります
グラフィック周りでちょっと独自の命令を使うと画面のように11秒で描画は完了する これはかなり早い
width文で128,40とか指定できて文字の情報の多い画面を作れるのは場合によっては嬉しいはず
たしかファイル周りのn88basicとの互換性が低い傾向

最後は日本語nbasic for windows95
もしかすると互換性は高いのかもしれない
(もちろん試してません)
しかしこの程度の画面描画で63分16秒(=3796秒)はあまりにも時間が掛かりすぎ
これではちょっと時間のかかる処理のデバッグをやる気がなくなってしまう
それとエラーメッセージの信用性がちょっと低くて「えーそんなエラーじゃないよね」って言いたくなる時も・・
このBASICもwidth 128,45とかできるのはいい感じ

処理系名所要時間(Sec)RATIO
十進BASIC4.301.0
99BASIC11.002.6
TinyBASIC for Win23.485.5
MBASIC861738.00404.2
N88互換BASIC3796.00882.8

まあ今時、行番号付きのBASICしかわからない人が(多分自分と同様に相当高齢だと推察もできるので今更)新しい言語を学ぶかどうか、またBASIC以来、ほかの言語に触れる機会が当然あったにもかかわらずそれをしてこなかったわけなのでこんな考察が必要かどうかも怪しく思える
でもせっかく時間を使いまた開発の環境を改めて触ってみた結果を一応記すと現状で1つを選ぶならN88互換BASICなのかなと思う。
(時間が掛かる考察は今後レガシなBASICではやりません!!!!)
(200301)
直前の部分でN88互換BASICが使えるようなことを書いたがちょっとしたコンソール風の画面を作ろうとしてlocate ,,1でカーソルがオンに出来ないことを知りました。せめて互換を謳うのなら・・
止めましょう そんな期待はしてはいけなかったのですね。

速度につき同じようなことを(191229)のエントリーでも書いてます。
やはり最近使っている言語たちに比べたら遅いですね。
上記のエントリーの結果表と比べてもMBASIC86でエミュレータanex86上のn88basicよりも3.5倍くらい時間がかかってます。
N88互換BASICに至っては・・・
多分早く動かすことが目的じゃないんでしょうね。はい
あーあ、本筋じゃないことに1日を費やしてしまいました
本当に寄り道好きで困ったものです

(200218)
N88互換BASICと99BASICのヘルプが .HLP形式で参照できなかったのだがこちらのWin8.1用のWinHLP32.EXE(64bit用)のインストールバッチを利用させてもらったら見えるようになった。
公平に機能を検証するにはやはり特定の命令の利用が可能かどうかわかるって大事だよね。



2020年2月14日金曜日

現在、臭気抜き中

図書館からも借りているのだが
「退屈なことはpythonにやらせよう」を古本で買った
バリバリのプログラム書ではなかったので古本にしたのだがちょっとカビっぽい所謂古本臭いにおいがした。
で、ネットで調べた脱臭方法でただいま臭い抜き中である
で、読む気満々だったので図書館に寄った際にみたら珍しく棚に並んでいたので借りてきた
複雑でない方法で実生活の(まあPC上のことだけだけど)面倒で退屈なことをpythonのスクリプトに肩代わりしてもらおうって趣旨の書籍だ

でもこの考え方ってその昔unixとc言語が出てきたころに似ている
その頃はコンピュータを触る人=プログラムが書ける人という図式だったのだけどawkやgrepなどとunixの標準入出力を組み合わせて仕事を簡単にしようという流れが出てノンプログラマもコンピュータを突くようなシーンが拡大された
pythonでどれほどの人が自動化に成功するかわからないがきっとできる人とやらない人の格差が広がるんだろうね

おいら柔軟剤のにおい大嫌いなんだけど臭い抜きをすると黴臭さはかなり抑えられるもののちょっと柔軟剤チックなにおいがしばらくする
黴臭さよりましだと思って我慢することにしました
ちょい、つらい

dosvaxj3が更新されていた。

 最近、エミュレータ系をあまり触っていなかったのだけど久しぶりに見てみたらタイトルのようにdosvaxj3が更新されていた。 on emulatorでセルフにcなどのソースを書いて実行するのに母艦側の特定のフォルダをドライブとしてマウント出来たり普通に母艦のimeで漢字が入力でき...