メモリをある程度大容量で準備しておくか、USBメモリを大容量にしておけば、ページングファイルの置き場所としては十分なはずです。ReadyBoostがリードキャッシュということは、ライトキャッシュしてくれる場合と比較すると効果が半減って感じがしますので、いっそのこと、ライトキャッシュも利かせたらいいんじゃないか、と。
これ、どうなんでしょうね。
【4/1追記】選挙の演説の声がうるさいです。とりあえず、近所迷惑度の高い政党やら候補には投票しないことにします。
【4/2追記】USBの書き込み速度は、読み込み速度と比べると非常に遅いのだそうです。
とりあえず、続きの記事ということで。こちらの続きです。
日毎バックアップ手順の構築も終了して、初の日毎バックアップを取り終わりました。日毎バックアップを取ってみた結果、御神楽、メイドリアン、ねこシューの3つのプロジェクト関係のファイルが巨大すぎることがわかりまして、日毎バックアップ対象から除外しました。今後、これらのプロジェクトに手が加えられることはないと思いますので、とりあえず初回の日毎バックアップに入れておけばいいかな、と。TeraStationへの定期全量バックアップもありますので、日毎バックアップの対象にする必要もないでしょう。
バックアップも完了したので、この環境で初めてとなる「すっきり!! デフラグ」の実行を試してみることにします。
まぁ、テストとしては、Vista環境で何度も流したことがあるのですが、本格的な実使用Vista環境での運用は初めてのことになります。安全とは分かっていますが、ちょっと緊張する……。
オプションはこんな感じで指定しました。
すると、ドライブC (Windows Vistaが入っているドライブ)のデフラグが完了するのに 2時間20分 もかかってしまった。さらに、ノートンの実行も含め、全部の実行完了まで 6時間30分 もかかってしまった。真夜中に実行して正解でした。昼間にやっていたら、待ちきれないですねぇ、これだと。
そんなわけで、Windows Vistaのデフラグは、就寝中をお勧めです。
似たようなネタで。Visual Basic .NET でコーディングしていた時のこと。
If 〜 EndIf という構文があって、Sub 〜 End Subという構文があって……というのを連続して扱った後に、
For intCnt As Integer = 0 To objArray.Length - 1 : : End For
とクソまじめにコーデンィングしたものの、エラーを示す波線がなかなか消えなくて、おかしいなぁ……と思って数分悩んだ挙句、
For intCnt As Integer = 0 To objArray.Length - 1 : : Next
が正解じゃん、と気づいた時の自己嫌悪……。(Whileも同様)
先日、C++ でコーディングをしていたときのこと。
こんな感じで、STLを使って宣言した変数に対して、
vector<int> a;
一生懸命、
a.append();
書いていて、コンパイルが通らなくなりました。う〜ん、おかしなぁ……。と、散々悩み、vectorのメンバ関数にappend()がないことがわかり、それでもおかしいなぁ…と悩み続け……。
あ、push_back() じゃん!! と5分後くらいになって気づいた時の自己嫌悪……。
Windows Vistaになってから、NTBackup (Windows付属のバックアップ ユーティリティ) がなくなってしまいました。
そのため、バックアップ環境を一から作り直さなければなりません。Windows Vistaになってから付属するようになったバックアップツールは、なんとなく使い勝手が良くない(個別にファイルを指定する機能が、無いか、見つけにくい。NTBackupのデータを引き継ぐ機能が無いか、見つけにくい)ため、新しくバックアップのための方法を構築することにしました。
とりあえず目を付けたのは、BunBackup。フォルダ単位で大枠でバックアップ項目を指定し、その中で、除外フォルダとか除外ファイルを指定できるということで、まさに目的に合致していそうな感じ。
まぁ、最初にバックアップ項目を準備するのが大変そうですが、1度大変な思いをすれば後はラクそうですので、さっそく試してみることにしました。
バックアップ項目と除外項目を選択中、懐かしいファイルを見つけました。Borland C++Builder を使っていたころのソースファイルです。

Rnsfldrは、現在の Rnsfシリーズ (サブタイトル:「いじくるつくーる」) の最初のバージョンでして、当時は「Windows95を95%操るツール」というサブタイトルで名乗っておりました。ってか、自分でもこのサブタイトルは忘れていました。もっとも古いファイルのタイムスタンプを見ると、1998/05/27 となっています。この頃は確か、高校生と大学生の間のころだったかな。
ひろい世間では「ゲームボーイカラー」(任天堂)のニュースが踊っていたころだったでしょうか。狭い世間では、「大学入試2カ年計画」の真っただ中で、なんというか、受験勉強をサボってこんなことやってたのかぁと、軽く呆れてみたり。
でも、このときに作り始めたソフトが、8年以上の歳月を経て、1000を超える項目をもつ規模のソフトに成長していった……と思うと、なかなか、感慨深いものがあります。
このころは確か、電話回線でつなぐタイプのパソコン通信上でのみの公開しました。この1年間で2回のメジャーバージョンアップを行い、大学生になってからも、さらに1回のメジャーバージョンアップを行いました。このときはインターネットを始めていましたので、インターネットの自サイトでの公開を始めていました。このときのバージョンが、Rnsf ver.4 です。サブタイトルは、「Win95/98を2000%いじくるツール」になったり「Win95/98を2000%操るツール」になったりと、ぶれていたようです。
雑誌掲載や他サイトでの紹介も始まったりして、盛り上がってきたのもこのころでしょうか。その後、
と進化していったのは、更新履歴のとおりです。そういえば、誕生秘話なんてものも、過去に書いていましたね。なんともお恥ずかしい。
そういえば、懐かしさに浸っていたせいで、バックアップのことをすっかりわすれていました。BunBackupは、僕の意図を満足できるツールだったようです。このソフトのバックアップ機能で一つの場所にファイルを集約し、その完了を確認したら、バッチファイルで「7z形式に圧縮→TeraStationへ転送」を行い、バックアップ手順終了。久々にデフラグでもかけようかなぁ。
(で、このあと、すっきり!! デフラグを使ったら、完了まで6時間30分もかかっちゃったんですが、その話はまた後日にでも)
そんなわけで、64ビットOSを入れてみたのですが、何か利点でもあるのかというと、今のところ利点はありません。
これは、Windows 95が登場したての頃と、状況がよく似ているかと思います。当時、Windows 95が (NTと比べると不完全でしたが) 32ビットOSとして登場したものの、「Windows 3.1 (16ビットOS) と比べて、何か利点でもあるのか?」 と聞かれたところで、「ある」と即答するのは難しかったかと思います。
もちろん、技術的な側面から見れば、32ビットと比べて64ビットにすぐれた利点があることは間違いないのですが、実利用の観点から見れば、利点は少ないのではないかと思います。
特にデバイスドライバについては、64ビットへの「ネイティブな対応」が必須になるため、32ビットOS用のデバイスドライバを流用することができません。現時点でドライバの存在しないデバイスがあるとなると、むしろ「欠点」と呼ばれても仕方がないのではないかな、と。
アプリケーションについては、32ビット用のアプリケーションを64ビットOS上で実行させることができます。32ビットOSが16ビット用アプリケーションをWOW (Windows on Windows) 上で動作させていたのと同様に、64ビットOS上では WOW64 というプロセスが媒介になり、32ビット用のアプリケーションを動作させる仕組みがあるためです。
というわけで、64ビットOSに利点を見出すためには、我々のようなアプリケーションの製造元や、デバイスドライバの製造元が、がんばって64ビットにネイティブで対応するソフトウェアを作っていく必要があります。とはいえ、我々ソフトウェアの製造元としても、現在、市場に出回っているOSの多くが32ビットであることを踏まえると、32ビット用のソフトウェアを作らないと、使ってくれる人の数が少なくなるという状況であるため、なんとも悪循環です。
そういった良悪を度外視してまで64ビットOSを流行らせようという気もないし……なんとも難しいところです。
とりあえず、いじくるつくーるについては、WOW64のおかげで問題なく動いているらしい…というのが、今のところの状況です。すべてをテストできたわけではありませんので、ご了承ください。
64bit版のOSを2つ(Windows XP Pro[x64]とWindows Vista Ultimate[x64])もマルチブートで入れてみたという話を前に書いたかと思います。「そんなことできるんですか〜?」という質問をいただいたので、それに関するご回答でも。
現在、x86系の流れを継承する一連の一般的なプロセッサの場合、「64ビットCPU」と呼ばれるものは、「64ビットモードを持っている」という意味になります。386以降の32ビットCPUと呼ばれていたもののことを考えていただければわかるように、起動時は16ビットモードで動いていて、内部的な切り替えを経て32ビットモード、あるいは64ビットモードへ切り替えます。
おそらく、ブートマネージャ(PC起動時にOSの選択を行わせるプログラム)は16ビットモードで動作しているのだと思います。そしてそこから起動したOS自身が、32ビットモード、あるいは64ビットモードへ切り替えを行う、といった感じではないかと思います (もちろん、MS-DOSやWindows 3.1が起動されれば、16ビットモードのまま動作することになります)。
そんなわけで、32ビットOSと、64ビットOSの共存(というか、マルチブート)は可能となります。
いじくるつくーる等の公開からしばらく経過しまして、少し落ち着いてきました。新機能のキーワード検索の方もご好評のようでなによりです。
さて、この機能の中で、個人的に不足感を感じるもののうちの一つは、チェックボックスリストに対するハイライトの当て方です。目的とする機能にフォーカスが合うのは良いとして、チェックボックスリスト全体がハイライトされてしまいます。
ちなみに、チェックボックスリストというのは、こんなようなやつで、リストビュー コントロールの中に、チェックボックスが並んでいるもののことを言います。R-Scriptの用語です。

キーワード検索機能により、このチェックボックスリスト内の項目にフォーカスがあてられると、以下のような感じで、チェックボックスリスト全体がハイライトされてしまいます。これは、リストビュー コントロール全体としての背景色設定(ListView_SetBkColor, ListView_SetTextBkColor)しか行っていないためです。

このままだと、美しさ(?)の点で難ありなので、一考してみることにしました。リストビュー コントロールの「カスタムドロー」と呼ばれる機能を使って、行単位で色を変えてしまうのです。
というわけで、王道通りのプログラミングをしてみました。以下は、いじくるつくーるの編集ダイアログの、ダイアログボックス プロシージャのソースコードの一部です。この直前で、WM_NOTIFYを処理するコードがあります。
case NM_CUSTOMDRAW: // カスタムドロー
if (iHighLightItem != ERRORVALUE) {
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam;
if (lplvcd->nmcd.dwDrawStage == CDDS_PREPAINT) {
return CDRF_NOTIFYITEMDRAW;
}
else if (lplvcd->nmcd.dwDrawStage == CDDS_ITEMPREPAINT) {
if (lplvcd->nmcd.dwItemSpec == iHighLightItem) {
lplvcd->clrTextBk = cHighLightColor;
return CDRF_DODEFAULT;
}
}
}
iHighLightItemが、ハイライトの対象となるアイテムの番号です。cHighLightColorが、ハイライトするときの色指定。
で、一向にうまくいかねぇ。
数時間悩んだ挙句、どうやらダイアログボックス プロシージャはreturnで素直に値を返せないので、SetWindowLongをDWL_MSGRESULTで呼び出してやることにより、戻り値を教えてやる必要があるとのこと。さらに、returnではTRUEを返す必要があるのだそうだ。
case NM_CUSTOMDRAW: // カスタムドロー
if (iHighLightItem != ERRORVALUE) {
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam;
if (lplvcd->nmcd.dwDrawStage == CDDS_PREPAINT) {
SetWindowLong(hDlg, DWL_MSGRESULT, CDRF_NOTIFYITEMDRAW);
return TRUE;
}
else if (lplvcd->nmcd.dwDrawStage == CDDS_ITEMPREPAINT) {
if (lplvcd->nmcd.dwItemSpec == iHighLightItem) {
lplvcd->clrTextBk = cHighLightColor;
SetWindowLong(hDlg, DWL_MSGRESULT, CDRF_DODEFAULT);
return TRUE;
}
}
}
これでなんとか、うまくいくようになりました。ちなみに、チェックボックスリスト全体の背景色(ListView_SetBkColor, ListView_SetTextBkColor)としては、ハイライト色に66%の白を混ぜて薄めた色をつけてあります。

が、ここで問題が発生。カーソルを乗っけると、カーソルで色のついた部分以外のハイライト色が消えてしまいます。

いろいろ方法を模索したのですが、よい解決策は見つかりませんでした。(何か良い方法がありましたら、ご連絡ください。オーナードロー以外で)。
とりあえず、LVS_EX_FULLROWSELECT 拡張スタイルをつけることにより、ごまかそうかなぁと。行全体が塗りつぶしてあれば、見た目は何とかなるでしょう。

ただ、この方法でも、カーソルが乗っかった状態でタブキーを押してフォーカスを外すと、なんだか地味な色が出てきちゃったり……。まぁ、これは本当にどうしようもないですかねぇ。

次のバージョンを出すころまでには、何が良い見た目になるか、結論を出したいと思います。
このコーナーでの紹介が遅れましたが、いじくるつくーる、すっきり!! デフラグ、ListView to CSVの、それぞれの正式版の公開を行っています。
ありがたいことに、窓の杜NEWSでの紹介もしていただいちゃいまして、すげぇ良い感じです。
ところで、トップページの、いじくるつくーるのバージョン番号の表記が、公開から23時間にわたり間違い続けていた(正:7.60.11、誤:7.50.11)とのことで、やっちまいました〜〜〜。今は正しく修正されています。
先日失敗した、XPインストールなのですが、原因の究明を兼ねて再チャレンジしてみました。
概要は次の通り。ちなみに、XPのあとにVistaをインストールするのは、成功するのがわかりきっているため、やらない。
理論上はこれでできるはずです。
この中で、Windows Vista(x64)とWindows XP(x64)はテスト目的での利用のため、MSDNのライセンスのものを用います。Windows Vista(x86)と、Windows XP SP2(x86)は、通常の利用を行うため、通常のライセンスです。Vista(x86)をアップグレード版でないDSP版で購入したため、XP SP2(x86)のライセンスは引き続き有効。ということで、XP SP2のインストールを行いました。
ちなみに、このXP SP2自身は、アップグレード版であるため、旧バージョンのWindowsのCD-ROMが必要になります。
というわけで、懐かしの旧バージョンのWindowsのCD-ROMを出してきました。
眩しいまでの Windows Me。98 からのアップグレードのための、特別優遇版みたいなやつです。しかしながらこのWindows Meが、後に「史上最悪のOS」と呼ばれるほど酷い造りのOSだったなど、これを買った時には思いもしませんでしたな……。
さて、前回は 3. の手順まではうまくいったものの、どういうわけだかインストール中の最初の再起動後に「OSをロードできない」的な英語メッセージがでるようになってしまい、失敗となりました。
VistaのインストールCDを使ってMBRの書き戻しを行ってもダメ。事前にダウンロードしておいたMBMを使っても、ブートマネージャを書き込もうとしたとたんに「I/O error」みたいなメッセージが出ちゃって書き込みができません。
仕方ないため、しばらくはフロッピーディスクにMBMを入れて、Vistaのブート領域を直接駆動してOSを起動するという、なんとも面倒くさい手順を取らなければならなくなってしまいました。
先頭セクタ(secter 0)をぶっ壊しちゃったかなぁ。
で、3月21日。春分の日。休みであり、リベンジの日であります。
先頭セクタが壊れたとみられるハードディスクを、プライマリ(SATA)から切り離し、もう一台のハードディスクを買ってきてプライマリ(SATA)に接続。
Windows XPのx86とx64を、順にインストールします。この時点では、平和に ntldr が Windows XP達を起動しています。
で、ここに、先日、先頭セクタが壊れたとみられるハードディスクを、セカンダリ(SATA)に接続します。
Windows VistaのインストールDVDを使って、修復セットアップを選び、情報の収集を行います。
再起動を要求されるので、ここで再起動を行い、もう一度 Windows VistaのインストールDVDを起動。修復セットアップを選び、ブートセクタにbootmgrを書き込みます。
これで完了。bootmgrがWindows Vista(x86), Windows Vista(x64), ntldr の3つを選択させてくれて、さらに ntldr が Windows XP(x86)とWindows XP(x64)の2つのOSを選択させてくれます。
どういうわけだか、bootmgrのメニューの表示が英語になっちゃっているんですが、まぁ、実使用に問題はないから、まぁいいかな、と。
でも、できたら日本語のメニューにしたいので、解決方法を知っている方がいらっしゃいましたら、お教えいただけたら幸いです。
ちなみに、bootmgrは、設定ファイルがBCDというバイナリファイルに収められるようになっています。ntldrのときのように、boot.iniを編集してどうにかすることができません。bcdedit.exeというコマンドラインツールを使うことになります。
が、そんな事をするのは面倒くさいので、VistaBootPROを使いましょう。英語ですがGUIで直観的な操作ができます。XPからでもVistaからでも使えます。なかなか使いやすいのでお勧め。
下で気になっていた ReadyBoost なんですが、「HDDに配置される、ページングファイルのキャッシュ」としての役割があるそうです。
ページングの仕組みでは、データが多くなりすぎてメモリに収まりきらなくなった場合に、あまり使われないデータをメモリから追い出してハードディスクに一時保管する(ページアウト)するわけです。で、必要になったらディスクから読み出す(ページイン)わけですが、この時に働くわけですね。
まず最初にReadyBoostされたUSBメモリを見に行って、そこになければHDDから読みだす。まさにキャッシュ。
原理的には、USBメモリを抜いちゃっても、必要なデータはHDDに存在しているのでOKみたいです。ただ、やっぱりいきなり抜くと、ブルースクリーンになるという報告もあるとか、ないとか……。
それから、通常のキャッシュサイズの考え方と一緒で、「最適なReadyBoostの使い方」としては、メモリの1〜2.5倍程度のサイズは欲しいとか。うちは、メモリが2GBに対して、ReadyBoostされたUSBメモリのサイズが870MBなので、かなり小さめかなぁ。
まぁそもそも、2GBもメモリがあれば、ほとんどページアウトが起きることはないだろうし、起きたとしてもわずかな程度で、それこそUSBメモリの中におさまってしまう。なので、効果はあるかな、と。
また、あるサイトでは、速度の向上への期待もあるが、HDDへのアクセスを減らすことで、HDDの寿命を延ばすことができる(ReadyBoostで使っているメモリが壊れても、HDDが壊れるのに比べればそれほど痛くない)との記述もあり、なかなかイケてる仕組みかな、と思ったり。
おととい公開したβ版を、正式版に格上げしたものを公開しました。
既存の問題が見つかっていたこともあって、ちょっと予定を繰り上げての公開となっています。まぁ、元々予定が伸び気味になっていたので、ちょうどよいくらいかもしれませんが。
さて、Windows Vistaの環境の方ですが、今のところ問題なく動いています。Windows XPのデュアルブート計画の方は、ちょっとした問題があってとん挫してしまいましたが、その他の部分については、いたって良好です。デュアルブートはVistaのx64版だけということで。XPはVirtual PCで動かすことにしましょう(サブマシンやノートPCもありますし)。
Windows Vistaのウリは、とりあえずハデな画面グラフィックだと思いますが、それさえ克服すれば、あとはどうにかなりますね。今のところ思い浮かんでいる、Vistaを使ってみて「良かった点」と「悪かった点」でも挙げておきます。中には、改善案があるのに気付いていない…とかいう「悪かった点」も書いているかもしれませんが、そういうのに気付いたらお教えいただけると幸いです。
ちなみに、今のところフリーズはありませんが、「ファイルの移動を行おうとして、エクスプローラで切り取り操作を行い、貼り付けを行ったらエクスプローラがフリーズして、強制終了すら効かなくなった」ことから、リセットボタンを押して無理やり終わらせたことが1回だけあります。安定性はVistaのそれと変わらなそうです。
Windows Vista導入ということで、いろいろ買いそろえています。記録も兼ねて書いておきます。
| 種類 | 名称 | 記事 |
| プロセッサ | Intel Core 2 Duo E6700 2.66GHz | ![]() CPUとファンの大きさの差にビックリ。 ファン取り付け方が、わかりやすいと思わせつつ、なかなかうまくいかなくて、危うく壊しかけました。 CPUの温度モニタが100度を超えたときにはもう、どうなるかと…。 |
| ビデオカード | GF7600GS-E256H/EX | 玄人志向/GPU:nVIDIA GeForce 7600GS/256MB GDDR3/DirectX9,OpenGL対応/PCI-Express X16 |
| ハードディスク | ST3400620AS | Seagate製/SATA2/400GB |
| マザーボード | ASUS P5B | P965チップセット/Core 2 Duo対応/Dual Channel DDR2 800/667対応 |
| メモリ | CASTOR DDR2-1G 800 | ![]() 2枚購入。 今回購入した Core 2 Duo からするとオーバースペックですが、将来使いまわすことも考えてこちらに。 |
| OS | Windows Vista Ultimate (DSP) | ![]() 32bit版。 テスト用に使ったのはMSDNのテスト版であるため、正式利用のためにはちゃんとしたバージョンを買わないといけません。というわけで購入。 ちなみに、通常版のUltimateには64bit版が同封されるのですが、DSP版では同封されないようです。 ちなみにDSP版とは、これまでのOEM版と同じもので、ハードウェア機器との同時購入で入手できるものです。 |
心配だったのが、直前に購入してXPに導入したばかりのOffice 2007が、新環境でも動くのか……という問題。旧環境は破棄するため、ライセンス上は問題ないにしても、アクティベーションが通るのかという問題が残ります。
が、実際にやってみると、すんなり通りました。どういう原理かはわかりませんが、まぁ悪いことをしているわけではないから、いいか。
その後、Core 2 Duo を CCPU(環境情報の表示) がどう認識するかを確かめるために、いじくるつくーるのCCPUを動かしたところ、どういうわけだか「Pentium III/Pentium III Xeon」と表示されてしまいました。
今回購入した CPU の CPUID が "06f6" であるため、CPUIDの2桁目を見た段階で「Pentium IIIだ」と認識してしまったようです。(CPU名をCPU自身から取得するには、CPUIDの2桁目が f である必要があった)
もちろん、この判断は間違っていますので、CPUID命令の拡張機能番号の最大値が0x8000004以上ならば、CPU名称をCPUから取得するというロジックに変更することにしました。(CPU名称をCPUから取得するためのCPUID命令は、0x8000002〜0x80000004であるため)
ああ、今から思えば8年前、当時はBorlandのC++を使っていたんですが、CPUの情報を直接取得するにはアセンブリ言語の命令を書くしかなくて、Visual C++に乗り換えました。(今はどうかわかりませんが)有名どころの製品でアセンブリ言語を内蔵しているのがこれしかなかったもので。
そして2007年。いまだにアセンブリ言語をいじり続けているとは……。8年前の判断が今に及んでいるんですねぇ…としみじみ思ってみたり。
ちなみに、CPUの情報を得るための命令は、そのまんま CPUID 命令です。i486の一部以降のCPUから使用可能になっています。eaxレジスタに知りたい情報番号を入れて呼び出してやると、eax,ebx,ecx,edx の各レジスタに情報が返ってくるスグレものです。(詳しくは、Intel公開の文章でも)
最近のCPUでは(とはいっても5〜6年前ですが)、CPU自身が、自分自身の名称を教えてくれる機能(eax〜edxの各レジスタにASCII文字列が入ってくる機能)もでてきて、CPU種別の判別がとてもやりやすくなりました。
で、今回は、この機能を持っているか、持っていないかを判断する部分の不具合だったというわけです。
というわけで、下で述べた不具合を修正したβ版を公開しました。正式版の方も、なるべく早いうちに公開できるように調整したいと思います。
では、あとは今日の駄文ということで。
先日テレビを見ていたら、「シンデレラの靴は、夜の12時を過ぎても消えなかったのはなぜか?」みたいな話が出ていました。
たしか、シンデレラが魔女(女神だっけ?)からもらった「ドレス」「馬車」「馬」の3つは、魔女が魔法で変化させたもの(元々はカボチャだったりネズミだったりしたはず)で、ガラスの靴は、魔女からのプレゼントだったと思います。
なので、ガラスの靴だけは12時を過ぎても消えたり元の姿に戻ったりしなかったわけで。
…だったと思うんだけど、どうでしたかね。
Windows Vistaへの環境移行を整え、ついでにテスト目的ということで、MSDN から来た Windows Vistaの x64 Edition も入れたりなんかして、環境を整えています。
開発環境の方も整いまして、いくつかコンパイルを試してみるかなぁ……と思ってやってみたら、Boost C++ を使用するプロジェクトののコンパイルがとおらねぇ……。それもそのはず。regex 関連のコードはコンパイルされてVCのライブラリディレクトリに入れられるからで、さっそくコンパイルをやり直しです。
コンパイルの間、ヒマなのであちこちのソースコードを見ていたら……共有ライブラリの中心付近に不審な動きをするソースコードが……。
当サイトで公開しているアプリケーションには、ダイアログだけれども、ウィンドウサイズを変えられる(コントロールの再配置も行う)という動きをするやつがあると思うのですが、その動きを担っているのが、sizedlg.lib という、INASOFT共有ライブラリです。
この機能は、
などで用いられていて、結構、あちこちに使われています。
で、そいつが、「ゴミを拾って、ゴミが0(NULL)でなければ、開放(free)する」という動きをすることが判明。……やばい…。
次のような動きになります。
どうやら昨日、いじくるつくーるが落ちたのは、それが原因だったらしいです。とりあえず、緊急でアップデートできるように調整中です。
突然ですが、Windows Vistaを本格的に導入しました。今回はテスト目的ではないため、正規版を店頭で購入しています。ついでに、マシン内のあちこちを新調しました。まぁ、詳細は別途書くことにして、とりあえずこんな感じの評価です。


[前回との比較] 上がった!! 上がった!! (このようにして、PC業界のマーケティング戦略に釣られていってしまうのでした……。)
ちなみに、この環境で「いじくるつくーる」を動かしてみたら、いろいろ操作したあとに検索ダイアログを出したタイミングで落ちやがりまして、再び公開延期です……。
ずっと前にも書いたと思うのですが、うちでは「一太郎2005」をメインのワープロソフトとして使っています。
ただ、ここのところほとんどワープロ文書を使う機会がなくなってしまい、起動しなくなって久しいのですが、このたびVistaサポートプログラムが出たようです。
もしVista対応しなかったら、そろそろ使うのやめようかなぁと思っていた頃なので、グッドタイミング。
ところで、一太郎を使っている「ジャストシステム」というと、大昔に「ジャストウィンドウ」というグラフィカル環境を作っていたことを思い出します。実際、Google等で「ジャストウィンドウ」で検索すると、結構いろいろひっかかるようです。
国産のウィンドウシステムということで、熱く語っている人もいますね。Windows 95の登場がもっと遅ければ(あるいは、ジャストウィンドウの登場がもっと早ければ)、ジャストシステムが、現在のマイクロソフト見たいな立場になって頑張っていたかもしれません。そうなると、日本にDOS/V機がこれほどまでに入ってくることもなく、NEC の PC98シリーズが頑張り続けている if があったかもしれない……。
まぁ、ただの妄想ですけどね。
先月、ログイン画面での謎のフリーズ現象が発生しました。その時は、「ようこそ」(Windows XPのグラフィカルログオン)画面を使うのをやめて、クラシックログオンを使うようにしたらフリーズしなくなった…ということを書いたのですが…。
あれから一か月。どういうわけだか、クラシックログオンでもフリーズするようになってきました。
これも、Windows Vistaへ早く移行せよという、ゲイツ様の呪いだろうか……。
まぁ、イベントログを調べる限りでは、某ウィルス対策ソフトNが非常に怪しいわけですが…。
そうそう、Windows Vistaを使っていて、これは使いやすいなぁという機能があったので、ホメておかねば。
エクスプローラでファイルの名前を変更するときなのですが、ファイル変更開始時のデフォルトの選択状態が、拡張子(一番最後の . 以降の部分)を除く部分のみになりました。
ちょうどこんな感じ。

ファイルの名前を変更するときって、ほとんどの場合は拡張子を変えることがありません。最近ではバックアップを作る時も、「ファイル名.bk.txt」みたいな感じで、拡張子の部分は変えずにバックアップファイル名を作るようになっちゃっているし。
というわけで、使いやすいなぁと思ったわけで。(たまにはホメておかないと)
先日、名刺の用紙が切れかけていたため、パソコンショップへ出かけてきました。
そういえば、マウス用の単三電池のストックも切れていたなぁということで購入し、他にも買うモノがないかなぁと探し回っていたところ。
噂のWindows Vistaが売っていました。
一般販売されているパッケージを実際に目で見るのは初めてです。どうやら、Windows XPの時よりも小さいパッケージで販売しているようですね。
購入するならコレしかないだろうということで目を付けている、UltimateのDSP版(いわゆるOEM版のことで、なんらかの機器とともに購入する版)が、2万7000円ちょっと。
やっぱり、高いよなぁ……。
計画としては、メモリをさらに2GB付け足して合計3GBにする、ビデオカードをAGPx8の中の最高級のものにする(マザーボードの限界)などを画策していますが、支出が合計で5万円を軽く超えそうな勢いなので、ちょっと……ためらっています。
もう少し購入を送らせて、思い切ってマザーボード&CPUごと買い換えるというのも一つの手なんですよね。
現在、マザーボードの制約から、ビデオカードは最大でも AGPx8 のものに限られてしまうのですが、ここでPCI Expressが選べれば、もうちょっと選択肢の幅が広がるんじゃないかなぁと思ってみたり。
それから、Core 2 Duoあたりかなんかを買って、64ビットモードも試用してみたいんですよねぇ…。
ともかく、高い高い。
先日TeraStationに7万円をかけてしまった身としては、経済的事情からグッとガマンです。
ところで、雑誌などで「多くの人が移行を考えているエディションはHome Premium」と書いてあったんですが、あれってWindows XP Professionalからは素直にアップグレードできないんですよね。たしか。Professionalからのアップグレードは、Business以上だったような。
詳しい情報は分かりませんが、現行OSからのアップグレードを考えている方は、現行OSのエディションとVistaのエディション(SKU)との間の関係を整理しておいた方が良いですね。とりあえずマイクロソフトのページ参照、と。
それと、つい先日、入手した情報なのですが、「Windows Vistaのアップグレード用のメディアを使って、新規インストールはできない」のだとか。
これはどういうことなのかというと、Windows XPまでの場合、CDを入れてPCをブートし、途中で旧OSのCDの挿入を要求させてライセンス確認をする、といった手順が存在していました。ところがVistaの場合は、旧OSがインストールされた環境が必ず必要になるのだとか。
つまり、環境を「クリーン」にすることを目的とした「クリーンインストール」ができなくなっちゃうんですね。
なんだか色々しきたりが変わっているようで、実際の購入の前に調べておくべきことが多そうですね。
本業の方がどんどん忙しくなる方向に向かっている感じです。たまに、ピリピリとしたムードが出てくることがあって、まさに修羅場直前って感じ。「修羅場がことのあとに明らかに控えている」ことを肌で感じ取れるようになってきたあたり、まもなく社会人5年目突入のレベルに達したかなぁって感じです。
で、まもなく社会人5年目になるわけではありますが、趣味の継続は相変わらずです。前にも書いたかもしれませんが、主な趣味は「チャット+Webサイト+フリーソフト製作(INASOFT)」「PC自作」「ゲーム(一般)」「ゲーム(同人/エロゲ)」「深夜アニメ」「同人ゲーム作り(葦葉)」「読書(ライトノベル)」のカテゴリがあって、このうち「PC自作」はだいぶ前に休止でときたま復活、「深夜アニメ」は去年前半に休止、「ゲーム(一般)」は高校3年に休止していたものの今年1月に復活、といった感じで、消滅と復活を繰り返しながらその姿を維持し続けています。
さて、今日は「ゲーム(同人/エロゲ)」のジャンルから。
今年2月上旬に購入した「ナツメグ」(コットンソフト)がようやく終了しました。
以下、ネタバレそのものはないと思いますが、ネタバレにつながるかもしれない危ない表現は出てくるかもしれないので、囲みにしておきます。これからプレイされるという方は、あまり見ない方がいいかも
| 作品名 | ジャンル | 制作元/配布元 | 状況 |
| ナツメグ(初回版) | ADV-G | コットンソフト | 由佳子/円/実梨/セリス/ほとり 終了 |
|
以前のブランドのときは、何かしら「色」をつけた名称が作品タイトルとして付けられていたので、今回からは名称からして新ブランドに "脱却" したといったところでしょうね。「ナツメグ」ってどういう意味なのかなぁと思っていたら「夏が巡ってくる」から「なつ・めぐ」と。なるほど。 ……って、2月に登場するゲームの題材が夏なのはどうか…って気がしないでもないですけど、まぁ、別にいいか。作品の良し悪しに影響はないですし。 話は変わりますけど、Kanon(Key)っていうゲームがあって、冬が舞台になっているゲームだったりします。なので、大学の時なんかは、冬になると突発的にこのゲームのことを思い出して感慨深くなっちゃう人とか居ました。僕の場合、このゲームをプレイしたのが真夏でして、ちょうどゲームの大きな盛り上がり(あゆの最後です)を終えた直後に自転車で親戚宅に行かなくちゃいけなくて、すごくボーっとしながら、真夏の暑さの中で自転車をこいでいた思い出があったりしています。なので、僕の中では「Kanon=夏」だったりするわけです。そんなわけで、ゲームの舞台とプレイ時期の季節は関係ないわけですな。 さて、上の「状況」欄に書いてある名前は、クリア順となっています。なので、最初とか最後とか2番目のような時期を示す単語が出てきたら、それぞれ対応するキャラクターが誰なのかがわかるようになっています。まぁ、直観的なネタバレ防止のために、いろいろとボカしを入れていますということでご勘弁を。 とりあえず最初にプレイしたのが、メインヒロインでした。設定は幼馴染ではないようなのですが、属性は幼馴染でしょう。まぁ、内容としては、普通。想定通り。期待を裏切りもせず、上回りもせず。 次のプレイが、お姉さま属性ですかね。ここまで来て周囲を見渡してみると、最近流行りの「ツンデレ」含め、定番と言えそうな一通りの属性がそろっているんだなぁといった感触を持ちました。 3番目にプレイしたのが、サイト上で「太もも」「太もも」と言われていたサブヒロイン。ここでエンディングをじっくり見て気づいたんですけど、シナリオライターに渡辺僚一氏の名前が……。これって、あの、”ファッキン”渡辺氏ですよね……。なるほど、太ももだのなんたら連合だのが、このキャラ関連の周囲で大量に登場していたのは、そのためだったのか…と、不思議な納得をしてみたり…。 ここまでプレイしてみて、とりあえず「期待程度」の内容かなぁ…と思ってみたり。 本業の方が忙しくなってきたり、趣味の方も大変なことになっていたり(Rnsf8開発計画が頓挫しかけてきて、Rnsf7への統合を決意するかどうかのころ)して、一時プレイを中断していました。 本業の方の修羅場に向けたスケジュールが大まかにつかめてきて、趣味の方の筋道もついてスケジュールに終わりが見え始めたころに、再び再開。4番目のキャラの途中からです。 最初はツンデレ属性で貫くのかなぁと思ったら、どうやら一風変わった趣味が合ったようで、そっちの路線でもグイグイ攻めてました。ただ、「夏が終わると居なくなる」設定のキャラが1人だけじゃないんだなぁと思い始めたあたりで、このゲームへの見方が、ちょっと変わってきました。このゲームのランクが、中の上あたりにランクアップ。 で、最後のキャラ。なんか落ちが読めるキャラだから、まぁ普通に終わらせるか……と思ったら、終盤で急展開しはじめて……。 いや、まさかそういう展開に持っていくとはね……。そりゃ、Key系のゲームだったり、ToHeart2 をやっているんだったら、前作までのシナリオの作り方から、そういう方向性に持っていかれることは薄々感じる…というか期待しますけど、ナツメグでこれをやりますか……。さすが、木緒なちさん偉大です。 このシナリオで期待以上のものが見れたこともあり、本作品はランク的に上ランクのクラスに到達したかと思います。以下、明らかにネタバレなのであぶりだしで。 ランクの高いシナリオを見せてもらったところで、それに相応するランクの高い要望でも書いてみようかと。最後のヒロインの不思議系のシナリオ。作品全体というか、世界全体との関連が全くなくて、このシナリオに閉じてしまっている…というのが残念なところでしょうか。非常にレベルの高い不思議系シナリオを持つ作品になると、その世界全体を構成する要素の、「氷山の一角」として「不思議現象」が現れていて、「世界全体のルールから見た場合であっても、不思議現象に対する説明を行いやすい」ようにしてあることがあります。まぁ、今回のような系の作品だと、それを行うのは非常に難しいとも思いますけどね。朱とかクラナドみたいな、作品全体に不思議系を匂わせるような系の作品にしておかないと難しいですね。 そういえばお酒といえば。キャラクターたちが酒を飲んで酔っ払うシーンが何箇所かあって、いいのかなぁそれ…とか思ったんですが、よく考えたら全員が「18歳以上でなければならない」法律上の大前提があったので、そこは認められるんですな。 | |||
さて、次は何をやろうかな。候補は3つ。
どうしようかな…。月末になると、おそらく「マリア様がみてる」が超高プライオリティでやってくるので、それまでの期間になるか…。それ以前に、本業が修羅場になるしなぁ…。
いつになったら登場するのかなぁ…と思っていた、Windows Vista用のWinHelpなんですが、ようやく登場したようです。
WinHelpがWindows Vistaに付属しなくなった理由「多くのリリースでの主な更新はなく、Microsoft 基準を満たさない」の意味は未だわかりませんが、まぁとにかく今流行りのセキュリティ上の理由かなんかに結び付くのだそうで、標準付属されなくなったのだとか。
とりあえず、当サイトで公開している主力ソフトについては、すでにchm形式のヘルプに移行しているため問題はありませんが、自分が利用しているソフトのいくつかはhlp形式のヘルプを用いているものがあるため、Windows Vistaへの正式移行を行うことになった場合は、導入する必要があるかな、と。
そういえば、Windows 95にはchm形式のヘルプを表示するための方法が標準では準備されていませんし、Windows 95〜Vista への全OSに対応したアプリケーションを作ろうという開発者にとっては、困ったことになるんですよね。
そうなると、Windows Vista用のWinHelpが登場することにはとても大きな意義があるわけですね。
ヨガフレイム
カプコンの対戦格闘ゲーム「ストリートファイター2」のキャラクターでダルシムというインド人のヨガ使いがいます。
必殺技として「ヨガファイヤー」とか「ヨガフレイム」のような、口から火を噴く技が存在します。
先日、ゲームセンターCXという番組において、よゐこの有野さんがヨガファイヤーを連発していたことで記憶に新しいキャラクターだったりします。
ところで、火を噴く必殺技の「ヨガフレイム」。最後の「ム」の発音って、口を閉じるんだと思うのですが、口を閉じた状態で、どこから火を噴いているのか、ちょっと疑問に思ったり。
まぁ、スーパーマリオだって、集めたコインをどこに持っているんだか疑問だったりしますし、空想の世界に文句を付けちゃ、いけませんね。
というわけで、いじくるつくーるを作っておりました。
(本業の方も、半端なく忙しくなってきていますけどね)
上のページを見てもわかるとおり、本当はメジャーバージョンアップを計画していました。
……が、どう考えても、時間的・体力的・モチベーション的に無理なので、結局、現行のいじくるつくーるに併合する形での作成に切り替えています。
で、とりあえず、今日で、当初計画していた機能を一通り実装することは終了しました。あとは、β版→正式版と上がっていくのを見届けるだけです。まぁ、何か思いつきで追加機能をしたり、バグを修正したりすることはあるとは思いますが。バグや誤記を見つけましたら、ご連絡ください。
すっきり!! デフラグの方は、現在α版ですが、これ以上に機能追加をする予定はないので、このまま、β版→正式版と上がっていく予定です。何か問題を見つけられた方は、お早めにご連絡をいただけるとうれしいです。