本日の成果

本日の成果を記録していきます。

タグ: Computer

  • 仮想マシンを作りまくった

    仮想マシンを作りまくった
    Category:

    本日の成果:仮想マシンを作りまくった

      ふと思い立って、手持ちのOSをひととおり仮想マシン化してみたよ。右のスクリーンショットは、左上がDR-DOS(笑)、左下がMS-DOS、中央がWindows 3.1、右下がWindows NT 4.0だ。(右上はVMware Fusionの管理ウィンドウ)

      Windows 3.1までは、ネットワークが使える状態まで行かなかった。DR-DOSはネットワークサポートもあるようなのだけど、試してない。MS-DOSとWindows 3.1は、ドライバは見つかったもののMS爛漫本体を持っていないので無理だった。
      Windows NT 4.0はTCP/IPレベルでは問題なく動作したものの、ファイル共有でLinuxサーバを見に行ったときに本来見えるべき共有が見えないという現象が発生してしまった。まぁこれはウチのサーバが、接続するユーザのユーザ名に応じて見せる共有を制御するという特殊なことをやってるせいもあると思うけど。ただ、Windows 95や98、2000以降では問題なくて、コイツだけ発生するというのが不思議。
      あれ? スクリーンショットにWindows 2000がないぞ。ああそうだ、仮想マシンは作ったのだけど、スクリーンショットの状態からさらに起動しようとしたら、物理メモリが足りないとゆうて蹴られたのでした。(ウチのMac Miniのメモリは1GB)

      上のスクリーンショットをとった時点で、手持ちの古いOSはアレで全部だったのだけど、なんとなく間を埋めたくなって、秋葉原の怪しいお店でWindows 95と98を探し出してきた。午後6時半に末広町に着いて怪しいお店を1軒平均1分ぐらいで探していったところ、箱入りでライセンス的にも問題なさそうな良品はみなプレミアついて馬鹿みたいに高い! どんなに安くても1万円以下で買うことはできないようだ。
      でコレは結局ズダーンな品をそれでも2千円ぐらいで買ってきたもの。正直Win95なんて数百円で投げ売りされてると思ってたのが甘かった・・・。
      VMwareの場合、セットアップディスクが仮想マシンのCD-ROMを認識しないらしく、CD-ROMの内容をあらかじめ仮想マシンのHDDに転送しておく必要があった。VMware Fusionの場合、簡単に仮想マシンのディスクをマウントすることができるので助かった。
      もう、インストール作業からして懐かしい。そうそう、95では「アダプタ」「プロトコル」「サービス」というカテゴリで分けられてて、それを「バインド」するのだった。「The Microsoft Network」なんてのもあった。IE4.0にはひどい目に遭った。なんか当時はディスク容量と戦ってた気がするけど、今にして思えばこんなにコンパクトだったんだねぇ。

      そして一緒に怪しいお店で手に入れたWindows 98。うわっ、ズダーンな証拠が起動画面にモロに!!!・・・見なかった事にして下サイ。
      Windows 98からは、 WINDOWS  OPTIONS  CABSあたりにセットアップファイルが丸ごとコピーされるようになったので、仮想ディスクイメージもぐっと大きくなった。でも普段使う分にはそのファイルは全く使わないので、削除したり退避したり、当時やってた人は多いはず。

      あと仕事でしばらく使ったことがあるので、Windows NT 3.51も欲しいところなのですが、おそらくWindows 95や98よりも入手困難であろう。

      や、でもさらにOS/2とかMINIXとかSolarisとか、そっち方向には行かないですよ? Linux系はフツーにLive USBとかあるからいつでも試せるし。(完)

  • clipboard.exeを作った

    Category:

    本日の成果:clipboard.exeを作った

      コマンドプロンプトで、dirの結果をエディタに貼り付けたりしたくなることがありませんか。ワードプロセッサで切り取った文章を、ちょっとしたフィルタにかけたいと思ったことはないですか。いわゆる、クリップボードと標準入出力とでデータをやりとりするニーズですな。個人的にはこれが標準で提供されないのが不思議でならない。

      例によって、そういうコマンドはフリーソフトその他ゴロゴロあるのだけど、

    • 標準入力→クリップボード と クリップボード→標準出力 の動作が1つのプログラムでできること
    • 純粋にクリップボードの内容だけを出力し、改行1個たりとも余分なものを出力しないこと
    • コマンド名が、思い出しやすいものであること(そう頻繁に使うものでもないので)

      などのこだわり条件を満たすものが見つけられなかったので、作ってみました。

      ドキュメントはありません。標準入力がファイルにリダイレクトされていると、それをクリップボードに格納します。それ以外の場合、クリップボードの内容を標準出力に出力します。以上。

    clipboard.zip

  • StartDaemon

    Category:

    本日の成果:StartDaemon

      PCをお使いのみなさんは、便利な常駐ソフト的なツールをいろいろお使いのことと思います。フリーソフトとか、同じような機能のツールでもいろいろ種類があって、聞いてみると皆様それぞれ無駄にこだわりがあるのが面白いところ。
      ところでそういうツールが5つも6つも増えてくると、Windowsのスタートメニューのスタートアップフォルダの中身が結構うるさくなってくるんだよね。そして、ログインするとそれらが一斉に、よーいドン! で起動されるから、実行間隔や順序が指定できない。その辺を改善してくれるツールもあるけれど、普通そういうのはバッチファイルを作って対応するよね、昔のAUTOEXEC.BATみたいに。・・・私だけですかそうですか。

      というわけで、そのようなログオンスクリプト的なバッチファイルをスタートアップフォルダに入れているのであるが、ひとつ問題があった。このバッチファイル、後々トラブルが発生したときに問題解決に役立つように、自分自身の出力をログファイルにリダイレクトするようにしてある。そうすると、そこから起動されたツールも、子プロセスなので親プロセスの開いているハンドルを引き継ぐのよね。つまりログオン処理が終わってもそこから起動されたツールが終了しない限りログファイルがオープンされたままになってしまうのだ。
      あと、起動時のカレントディレクトリも同様に、例えばエクスプローラで、新しいフォルダをつくって、コマンドプロンプトを立ち上げてそこに移動して、なにか適当な常駐ツールを起動したとすると、その後コマンドプロンプトを閉じても、さっき起動した常駐ツールを終了させない限り、最初に作った新しいフォルダを削除できないのだ。(ツールがカレントディレクトリを掴んでいるため)
      分をわきまえた(笑)ツールなら自ら標準入出力をクローズしたり、自分自身が格納されているディレクトリに移動したりするように作られているものだが、そうでないものも当然あるわけで、そのようなプログラムを、標準入出力をリダイレクト中のバッチファイルから問題なく呼び出すことは、バッチファイルの書き方の工夫だけでは無理だった。

      というわけでその辺を改善するツールを作ってみました。その名もStartDaemon。大したことはしてなくて:

    • 親プロセスのハンドルを引き継がずに、子プロセスを起動する
    • その際、起動するプログラムのあるフォルダに移動する
    • プログラムを起動する際、ウィンドウを最小化した状態で起動する

      というだけのもの。でもおかげで前述の問題が解決されてスッキリしたよー。(完)

    StartDaemon.zip

  • WinMerge Portrable 改造版を作った

    WinMerge Portrable 改造版を作った
    Category:

    本日の成果:WinMerge Portrable 改造版

      テキストファイルの比較は開発現場では頻繁に必要になります。Word/Excelべったりの人海戦術な現場でもないかぎり。(^_^;
      なので、比較のためのツールはCUI/GUI問わず長い歴史がありまして、私もWinDiffやDFやRekisaなどいろいろ試した果てに、今はWinMergeを愛用しています。というか、それのポータブル版のWinMerge PortableをUSBメモリに放り込んで持ち歩いています。
      Rekisaには劣るかもしれませんがそれなりに綺麗な表示で、差分を表示するだけでなくそのまま編集することもでき、プラグインでWordやExcelの文字部分の比較もできちゃうあたりが気に入っております。

      ところがそのWinMerge Portableですが、起動してオプションを変更しても、一旦閉じて再起動するとその変更したオプションがデフォルトに戻ってしまうという問題がありました。最初は、ああポータブル版だからレジストリとかに形跡を残さないようにしてるのね、それなら仕方ない、などと思っていたのですが、その後いろいろ試していたらどうも設定が残る項目とそうでない項目とがあるみたいなのです。なんだか腑に落ちないのでソースも覗いて調べてみたところ、作った人の思いとしては終了時に設定をファイルに保存した上でレジストリからは証拠隠滅(笑)して、次回起動時にファイルに保存しておいた設定を読み込むようなロジックは入ってるようでした。
      さらに調査を続けたところ、レジストリの中身をファイルに書き出すときは、それ用のライブラリを使っているのに対し、ファイルからレジストリに読み込む時には、同じライブラリではなくreg.exeを使っているために、最後まで読み込まれていないということが判りました。だいぶ昔のバージョンからずっとそうなっているらしいことを考えると、日本語環境独自の問題かも。そもそもなぜ、読み込むときだけreg.exeを使うようなコーディングになっているのかも謎です。reg.exeを優先して使うなら使うで、読み込みだけでなく書き出しにも使うようにするべきではないでしょうか。
      それともう一点、これは不具合か仕様か判りませんが、WinMerge Portableでは、ポータブル版独自の設定ファイルに、追加のオプションをあらかじめ書いておくことができます。できますけど、追加のオプションが毎回コマンドラインの末尾に付加されるので、一時的に打ち消すことができません。例えば、普段はいつも○○のフィルタを使いたいが、今回だけ××のフィルタを使いたい、という時に、設定ファイルを書き換える必要がありました。
      普通は、設定ファイルに書いたオプションと、コマンドラインで与えたオプションとでは、後者の方が強いべきではないかと思うのですが。

      というわけで、上記2点とあといくつか改善した版を作ってしまいました。1つ目の問題については、reg.exeを使わず、書き出し/読み込みともにライブラリ側の命令を使うようにしました。これにより、前回終了時の設定が復元されるようになりました。
      2つ目の問題については、コマンドラインを組み立てる時の文字列の連結の順番を変えただけ。

      せっかく作ったので、GPLに基づき公開します(笑)。

  • Cromium OS試した

    Cromium OS試した
    Category:

    本日の成果:Cromium OS試した

      なんかBitTorrentで誰かの作った仮想マシンが出回ってたので試しに動かしてみたよ。

    起動したところ
    ログイン中
    Gmailキター
    とりあえず自分のホームページを表示させてみた
    Twitterもフツーにいけそう
    ニコ動もいけました

      しかし、ウチのマシンが非力なせいか、仮想マシンとVMwareとの相性が悪いのか、とっても遅いです。そしてすぐハングします。これが専用のハードとそれに合わせてカスタマイズされたOSとの組み合わせならどれくらい軽くなるのか気になるところです。個人的には少なくともWindowsよりは軽く速くならなければ使う理由はないわけで。あと変なツノ生やさなくても常時接続できるようにならないと、コンセプト上つらいのではないでしょうか。もしくは「どこでも無線LAN」の類か。