wss

wss

Multimedia screen saver の直訳(笑)。

[1] 1999年夏に、稲垣徹氏がわかばに、 Windoze 付属の「伝言板」 screen saver の絵が出る版が欲しいと 頼んできたので、 (ありそうな気もしたけど探すのが面倒だった, なんせ1999年だよ(藁)。) VB でつくってしまったプログラム。 略称 oss または bss あるいは wss (なぜだ!)。

[2] >>1 ss はすべて Screen Saver。 o は Okuchuu, b は不明, w はたぶん Wakaba (笑)。

[3] 稲垣さんの要望は単に絵が出る伝言板 screen saver だったんだけど、ついでに WAVE とか MIDI が鳴らせるようにもしてしまいました。更に AVI 再生の実験 (結局うまくいかなかった。) や、当時出たばかりの WMP2 ActiveX Control 組み込み版もつくりました。 (WMP 版は WMP OCX の install が必要なんで、 (当時それが入ってる機械なんてそんななかったし、) 時期尚早ってことになって、そのまま世に出ませんでした。)

[4] wss という一種の script (もどき) をつくって、それで色んなものの再生を制御できるようにしました。 (wss 再生モードでないときは、特定メッセージ又はファイルをずっと表示しておくか、特定ディレクトリの中身を無作為に再生する。)

wss の形式は構文解析や I/O の手間を省くため(笑) INIファイル形式を流用しました。 entry の name=value のところの name が行番号(笑)で、 value が処理内容です。

[5] >>4 行番号は行番号ですが、 timer を使うことで秒数とかになりました。手元に遊びで作った版(謎)がありましたから、抜粋します。

[list]
1="timer 10"
2="playmidi %ad\心の瞳.mid"
3="changetext  "
4="move text false"
53           ="changetext 心の瞳♪          "
348="changetext      "
355="changetext こ    "
357="changetext ここ   "
359="changetext こころ  "
362="changetext 心    "
365="changetext 心の   "
370="changetext 心のひ  "
378="changetext 心のひと "
380="changetext 心のひとみ"
385="changetext 心の瞳  "
390="changetext 心の瞳で "
456="changetext  "
460="changetext き      "
465="changetext きみ     "
468="changetext 君      "
474="changetext 君を     "
478="changetext 君を見    "
...
4771="changetext 心の瞳で君を見つめれば"
4921="end"
[list.cancel]
1="end"

見てのとおり秒数は hard coding されていて、しかも正確に測ったのではなくて感覚(謎)です。なんせ MCI 制御でしたし:-) (WMP 版はもうちょっと状況は良くなったんですが・・・。)

[6] この wss (拡張子が wss になったのをきっかけに、 略称は wss になんとなく統一されました(藁)。) は、奥中CD-ROM'99の multimedia(笑) viewer として採用されました。例えば写真のディレクトリで、 そこの写真を無作為に表示してくんです。

[7] >>5-6 wss mode の時は default では全画面表示になりませんし、 mouse や keyboard を叩いても終了しません。

wss mode では終了は wss が制御します。利用者が終了を望めば (たしか) 'cancel' という section が呼ばれます。終了 menu は wss で無効にすることも出来たはずです。

但しこれでは危険なので、(たしか) Ctrl + Alt + Shift + "A" を押すと無条件で終了します。

[8] という wss ですが、(稲垣さんはその後使ってますか?) やっぱり廃れていきました。 Code が段々スパゲッティ化してってねぇ。 それに VB の限界っていうか柔軟性のなさって言うか、 そういうのが嫌になっちゃって。

[9] wss の source は何度か思い切って消しましたが、 backup と称して何度も復活して(藁)、とうとう最後の版は 未だにわかばが保持しています。 (コンパイル可能な source tree であるかはわかりません。)

いっそ historical として公開しようとも思いましたが、

  1. あまりにもスパゲッティで恥ずかしすぎる
  2. 自由でないモジュールを組み込んでいる ので公開出来ません。 2 を直すのは膨大な手間だし、 1 の理由から直す気にはとてもなりません。それに直しちゃったら もはや historical としての価値もないしね。

ってことで、どうしようもなくて、 (でも捨てるのもちょっとあれで。 もうほんとに backup すらないですから。) とりあえず保管してます。 だけど、もし欲しいって人がいても、何億円払ってくれても、 公開しません。そんな金があるなら自由ソフトウェア財団 辺りに寄付してください(笑)。

もしわかばがこの世から消えたら、でその時に wss の source が残っていたら、有無を言わさず消去しちゃってください。 よろしく。 --わかば

[11] (2002-01-14 に <IW:SuikaNews:suika.software> に書いた記事 今から3年くらい前に、スクリーンセーバーを作った事があります。 で、去年、妹のためにおんぼろ計算機にそれを入れてやったんです。 (極悪人だ(笑))

結構気に入っているみたいですが (だって他に選択肢もないし(藁)) さすがにおんぼろだし(謎)、例えばスクリーンセーバーが既に 起動しててもお構い無しに時間が経ったら別のスクリーンセーバーが 起動されるのでメモリーが段々減っていくとか (そんなこと Windoze の方で適当に処理しとくれ:-(), ランダム順再生なのに 非ランダム順再生ができないとか、こまったことが色々。

直したくても、この前、もういらんだろと思ってソース消しちまった し、もしまだどっかに探したらあるかもしれないけどそれ使っても、 ソースはスパゲティで読めないし(爆) その他、スクリプトもどき ファイル(謎)の仕様もあんまり良く覚えてない (ソースのスパゲティ 解読すればきっとわかります:-) とか。

今思えば良くあんなもん作ったなあとか思うもんです。 もし時間さえあれば、一から書き直すんですけどね。 でもあれは VB なんです。もう VB でプログラム書く気ってしないでしょ。 かといって、 Perl でコンソールに文字を出すスクリーンセーバー(謎) って面白くも何ともないし(藁。 Tk とか使って GUI 出せば いいんですけど、それわかばは良く分からんですし。

なんて馬鹿なことせずに、きっとそれくらい無料なソフトウェアで あるんじゃないかと思ってみたり。

でも結局、それさえ面倒だし(無料ソフトウェアって質のいいのがなかなか ないですし)、妹にはこの糞スクリーンセーバーであと数年我慢して もらうしかないかなあ、とか(爆)。