Basic

中学校の技術家庭で、たった1時間だけだったがBasicを習うのだそうだ。

現代のBasicはVisual Basicが代表なのだろうが、いにしえのBasicとはまるで違う。付けようと思えば付けられるが、行番号はなく、IF文の終りにはEndifを付けないといけないなど、初心者入門用とは言いがたい。もちろん昔のBasicを手放しで誉めそやすわけではないが、始めて覚えるコンピュータ言語としては分かりやすかったのではないだろうか。

思い起こせば、最初に覚えた(ようとした)、Intelニモニックの8080機械語はさっぱりわからず、TK-80のBASICを知ったときには、そのわかりやすさに思わず「オレは今、猛烈に感動している!」とどこかで聞いたようなセリフを口走ったものだ。ちなみにその後、簡潔なZilogニモニックを覚え、機械語にリベンジを果たした。続いてCに手を染め、A・B・Cの王道を極めた(?)。その間Turbo Pascal〜Borland Pascal〜Delphiと苦楽を共にし、Prolog、Forth、Modula-2などもかじり、ちょっとした言語オタクだった。そうそう、GAME言語なんてのもあった。

閑話休題。

ということで、昔風のBasicインタプリタを探してみた。いくつも見つかったが、99 Basic Interpriter というのが良さそうだ。なんでも、PC-9801のN(86)-BASICに、MSXのスプライトやサウンド関連を付け加えた言語仕様となっているらしい。

99basic

特にインストールはなく、圧縮ファイルを展開して、EXEを実行するだけだ。0から10までの足し算をしてみた。それだけではつまらないので、答え分のスペースも出してみた。

三つ子の魂百までとか、雀百まで踊りを忘れずのたとえの通り、まったく違和感なく使える。これは良い。

2001年に開発が終了し、サポートもしていないそうだが、作者に経緯を表すると共に、手頃なBASICインタプリタをお探しの方にはこれを強く推薦する。

64bitなレジストリエントリにハマる

regedit64とあるプログラムの挙動がどうもおかしい。レジストリをうまく読み出せていないようだ。別のアプリをキックしていて、そいつはきちんとレジストリを作ってくれているようなのだが、メインのプログラムではそれが読めていないフシがある。

なんのことはない、x64 Windowsはシステムレジストリの位置が違っていた。久しくプログラマをしていないので、全然知らなかった。

みんな大好き regedit も、64bit 専用板があった。

  • 64bit %systemroot%syswow64regedit
  • 32bit %systemroot%regedit

ということらしい。

%systemroot% は通常、c:windows だ。

64 と 32 を同時に起動するには、あらかじめ 64 版を起動しておき、今度は -m スイッチを付けて 65 を起動する。見た目が変わらないので、要注意だ。

アップグレードでもハマる

久しぶりにサーバ機のデスクトップにログインした。ubuntuのアップグレードをしろと警告がでていた。おみゃーさんが使ってるバージョンはもうすぐメインテナンスしなくなるぞ!とスゴミをきかせている。

ということで何気なくOKをしてしまった。今回はメジャーアップグレードだということで、多くのモジュールを追加したり削除したりしている。いやな予感がした。

再起動したらデスクトップの左端にランチャが表示され、WindowsやOSXのような見た目になってしまった。使っているモニタが古いXGAなので、はっきりいって狭い。

アップグレードして何が変わったのかとしばらくいじっていると、げげ!MySQLが動いていない。ということは誰も見ていないこのささやかなブログも動かない。WordPressはコンテンツをMySQLのデータベースに格納している。さて困った。

まずはデータベースをバックアップして、いったんMySQLをアンインストール、再起動後、インストールしなおした。今度は問題なく動いているようだ。よかった。

すべてのディレクトリをリネームするゾ

訳あって、カレントディレクトリにあるサブディレクトリを一気にリネームしたくなった。サブディレクトリが1つや2つならば手作業でやってもいいのだが、100個以上あるものだから気が遠くなる。そこで簡単なVBSCRIPTを書いてみた。実はVBSCRIPTはほとんど初体験だ。

' renall - rename all folder name ' カレントディレクトリの全フォルダを yyyymmddhhmsss_nnnn 形式にリネームする ' ' usage: cscript renall.vbs Function FmtNum(num, col) FmtNum = Right("0000000" & num, col) End Function Sub RenameAllFolders(folderspec) Dim fso, f, f1 Dim src, dst, dt Dim count Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(".") Set sf = f.SubFolders count = 0 dt = Now For Each f1 in sf src = f1.name dst = Year(dt) & FmtNum(Month(dt), 2) & FmtNum(Day(dt), 2) &_ FmtNum(Hour(dt), 2) & FmtNum(Minute(dt), 2) & FmtNum(Second(dt), 2) &_ "_" & Right("0000" & count, 4) count = count + 1 fso.MoveFolder src, dst WScript.Echo src & " -> " & dst Next End Sub RenameAllFolders(".")

使い方は簡単で、目的のディレクトリ内で

cscript renall.vbs

とやれば、そのディレクトリ内のフォルダを YYYYMMDDHHMSSS_NNNN という形式にりねーむしてくれる…はずだった。

途中までは快調だった。しかしいつのまにか同じディレクトリを何度もリネームしていることに気がついた。どうやら f.SubFolders がダイナミックに更新され、リネーム後のディレクトリ名を再読込しているようだ。使えないヤツ。どうしたものか。

大草原の有名な壁紙

ずっと以前に話題にしたことがある、Windows XPの有名な壁紙の大草原であるが、あれはなんと実在の風景だったという話しを知った。

げげ、このネタってちょうど10年前だ!?

場所はカリフォルニアのナパヴァレー、ワインで有名なところだ。そういえば、2年前に行ったときに、どこかで見たことがあるような風景だなぁと思っていたが、なるほど。

この写真はその時に行ったOpus One。お客さんを連れて運転手をさせられていたので、せっかくのワインを試飲できなかったという、悲しい思いでしか残っていない。

参照:
「Windows XPを使ったことある人なら何度も目にした草原の壁紙 実はあの画像は実在した場所だった」

Android Tabletでもハマる

普段はLenovoのAndroidタブレットを持ち歩いている。WiFi onlyモデルではあるが、Pocket WiFiと組み合わせることで、そこそこ使える。画面も7″ XSVGA(1024×600)とまぁまぁだ。惜しむらくは、携帯電話と認識されてしまうのだろう、ブラウザでは携帯モードのstyle sheetが適用されてしまい、せっかくの画面サイズが活かせない。

これを使ってAndroidアプリを実験的に作ってみようと考えた。まずはお決まりの「Hello World」なのだが、さて、PCにつないだところでデバイスドライバが無いと言われてしまう。Lenovoのサイトに行ってみた。英語のページにドライバのダウンロードを見つけたが、ダウンロードリンクをクリックしても延々と待たされたあげく、見つかりませんと言われてしまう。wgetを使ってみると、too many hops(だったっけ?)で打ち切られてしまう。

たまたまこういう記事を見つけた。リンクが途中で切れていて、最後にドライバのファイル名を追加しないといけないという。試してみると、おお!ダウンロードできた。

ということで、Eclipseをインストールした。

Eclipse(蝕)といえば後1ヶ月ほどで金環蝕だとか。晴れるといいなぁ。

dokuwikiでハマる

数あるwikiの中で、かなりお手軽に導入できるのがDokuWikiだと思われる。インストールも簡単で、tarballを展開し、しかるべきところに配置し、install.phpを走らせるだけでいい。お気楽極楽。

そんなDokuWikiを愛用していた…正確にはサーバの肥やしにしていたわけだが、久しぶりにアクセスしてみると、updateがあるから適用しろとのメッセージが出ていた。よろしい、仰せにしたがおう。

updateを入手してtarballを展開、古いものをarchiveして、そこへ上書きコピー。

げ! エラーだ。

The mediaolddir ('media_attic') does not exist, isn't accessible or writable. You should check your config and permission settings. Or maybe you want to run the installer?"

Gogleってみると、やはりコレで悩んでいる人が多いようで、いくつかヒットする。

dataの下にmedia_atticとmedia_metaというディレクトリが新設されているので作れ、パーミッションを正しくしろということだが、そのようなディレクトリはすでにできている。

あきらめて再インストールすることにした。単に古いディレクトリをリネームして、元の位置に新たにコピーするだけだ。当然、今までのデータが消えてしまった。

そこで気がついた。データはセキュリティのために、ドキュメントルートの外に作っていたことを。なんのことはない、そちらのdataディレクトリにこの2つのディレクトリを作るだけだったのだ。

ということで結論、実際にデータがあるディレクトリに、media_atticとmedia_metaを作り、パーミッションを設定すること。

epub

頼まれごとで、とあるドキュメントの翻訳をやっている。受け取ったのは拡張子が.epubなドキュメントと.pdf。.epubってなんだ? どこかで聞いたことがあるが。

“Electronic PUBlication” の略で、英語圏での電子書籍の標準規格。ああ、そうか。iBooksなどで読めるやつだ。PCではどうやって読むんだろう。

ファイルをダンプしてみると、見慣れた “PK” で始まっている。ということは zip で圧縮されているようだ。ということで拡張子を .zip に変えてみると普通にフォルダとして展開できた。なんのことはない、.html や .png などが詰まっていて、それを zip 圧縮しただけだ。やろうと思えば普通のテキストエディタでも編集し、フォルダごと zip して、拡張子を戻せば良い。

PC で読むためのツールを探したところ、Sigil というものを見つけた。これはビュアではなくエディタだそうだ。WYSIWYG なんて久しぶりに見たぞ。What You See Is What You Get – 見たままのものを得ることができる。

試してみると、なかなか使い勝手が良い。ブックビュー、分割ビュー、コードビューという3種類の表示方法があり、テキストをそのまま、あるいは HTML として編集することができる。また、目次も自動的に作ることができ、そこから該当ページへジャンプすることもできる。

iBooks Author というりんご屋さん謹製のもの試してみたが、ハデハデなものをゼロから作るには良くても、すでにあるものを編集するには使いにくい。余計なことをしすぎなのだ。

Sigil (認印という意味だそうな) は、Win / Mac / Linux に対応している。非常に使える。お勧めする。

TP-80

これはTP-80ではなくMP-801月の末にとある新製品を発表した。以前のモデルからほぼ1年たって、ようやく後継製品を出すことができたわけだ。それはいいのだが、12月に旧タイプを購入したという客から、購入店ではなく、別の販社にクレームが入ったそうだ。新製品が出るなんて聞いてないぞ!と。

それで思い出したのが、今を去ること30余年(げ!そんなになるのか)。初めて買ったプリンタのことだ。EPSON TP-80。PC-8001を購入してから1年ほど経っていたが、当時プリンタが欲しくてたまらなかったが、15万円ほどだからとても手がでなかった。それが多少安い価格になっていたものだから、思わずとびついた。金属シャーシのゴツイ奴、蹴飛ばすと足のほうが壊れるようなシロモノだった。

それから2ヶ月。新製品のMP-80が出た。サムネイルの写真がMP-80だ。

TP-80はドットインパクト、しかもアルファベットとカタカナ・数字、PC-8001のグラフィックスキャラクタしか打てず、左右に穴のあるファンフォールド紙しか使えなかったのに対し、新しいMP-80は各ドットを制御できて絵がかけるうえに、ファンフォールド紙以外にフリクションローラで普通紙にも印字ができるという優れものだった。TP-80は金属のプラテンだったのに対し、MP-80はフリクションローラにドットを叩きつける分、音が静かだ。しかも定価はほとんど据え置き。早まった。

だが時すでに遅し。諦めざるを得なかった。なにしろうさぎ亭主の真似をして、新製品発表の2週間前にTP-80を購入したという哀れな先輩がいたのだから。それと、MP-80はドットを1つづつ制御する分、TP-80よりも明らかに遅かった。

TP-80はそれから4年ほど後に熱転写方式のNEC PC-8825、さらには130桁のドットインパクトを購入するまで現役で使い続けた。もっともその間に、4色ボールペン方式のプロッタプリンタで遊んでいた時期もあったが。

サーバが飛んだゾ

またまた会社のサーバのお話し。前回はメールの受信サーバだったが、今回は送信用のサーバだ。うちでは訳あって送信と受信が別のサーバになっている。

前回のエラーの際に、送信できないことがあるという訴えもあったので、送信用のサーバの動作を疑っていた。果たしてHDDにエラーがあると出ていたので、軽い気持ちで fsck を走らせてしまった。これはlinux用のディスクチェックおよび修復プログラムだ。

結果は押して知るべし。起動しなくなってしまった。どうしよう。