2007年3月のエントリ

Denasuが契約しているプロバイダHi-HOが「株式会社ハイホー」になってIIJに譲渡されるらしい。とりあえず一番気になるのはURLが変わるか? だが,連絡メールを見る限りではそのままのようなのでとりあえず安心。

某所でスイングバイの話が出ていて,World Testerなら簡単と思って5分でシミュレーションしてみた。スイングバイ。今作成中のバージョンだと画面を拡大,縮小思いのままなのでいい感じだけど,公開中のバージョンだと画面が小さすぎて見にくい。まあ見えなくもないのでとりあえず公開してみる。開発版のworldtesteritemsフォルダにフォルダ付きで展開し,WorldTesterを実行して重力を0にしてスイングバイを追加すればOK。・・・結構手順めんどいか。

今のPCのCPUはCore2 Duoなんだが,WorldTesterを実行するとCPU使用率50%で頭打ちになる。これは1つのスレッドで全て処理しているため,CPUを1つしか使わないから。そこで実験的に画面上のオブジェクトを半分ずつ別スレッドで処理するようにしてみた。具体的には,起動時にスレッドを複数生成し,当たり判定と物理演算処理を先程のスレッドにキューイングするように実装した。が,結果的には性能が1.2倍程度,CPU使用率最大70%くらいにしかならなかった。スレッド間で1つでも排他制御を入れるとシングルスレッドの方が早くなっちゃうし,複数のCPUを極限まで使い切るのは結構奥深いらしい。

私鉄とSUICA 2枚の定期券をPASMO1枚に変えてみた。窓口の対応がぎこちないのがいい感じ。一旦定期を払い戻すので新たに6ヶ月分の支払いが発生するのは予想してたけど,SUICAを払い戻す前に私鉄側で支払いを要求されるのはどうかと。瞬間的に全額近くお金が必要になるし。PASMO移行キャンペーン(?)を利用して手数料無し日割りで払い戻されることを防止してるのだろうか。

ウェザタイとWorld TesterのVista 64bit版ネイティブ対応をやっていた。World TesterについてはDirectX9対応すればネイティブ動作可能だった。ウェザタイについてはDirectMusicが64bit非対応なのでできなかった・・・って古いバージョンは未サポートとかではなく完全に使えないですか。そうですか・・・。音なしでも起動できるようにしないと。

ちなみに64bitネイティブ化する利点は・・・特にない。てか多分公開すらしない。

ぱじ氏がしばらく前から作っていたFlashゲームが完成。デナスサイトで公開してみる。いわゆる脱出ゲー,でいいのかな。「忘れもの」。

I・O DataからUSB2-PCADPGのVistaドライバが公開されていた。さらにVista x64版も公開されていたのでついでに入れてみる。これでx64でもある程度生活できるかも。やる意味があまりないけど。


新ノートが来てからWeather TypingとWorld TesterのVista対応,Visual Studio 2005対応,Unicode対応,64bit対応をやっている(つまり機能追加の全くないバージョンアップ)のだが,Vista対応はちゃんとやろうとすると難しい。問題は主に2つ。

1つ目はUAC。管理者権限でもProgram Filesなどが書き込み禁止になるというもの。MS推奨的にはユーザごとに異なるデータはAppDataに入れよ,とのことなんだろうが,フリーソフトとしてはアンインストールが面倒になるので辛い。市販ソフトは普通アンインストーラがあるのでMS推奨通りにやればいいんだろうけど,フリーソフトはたいていデスクトップとかドキュメントフォルダにダウンロードしてその場で展開,いらなかったらそのまま削除,といった手順になると思う。でも設定をAppDataに入れてしまうと,まずデータを消してからプログラムを削除になって面倒になる。結局今は中途半端な策として,プログラムがProgram Filesなどに入っていたら設定は書き込まない方針で実装中。つまりVistaに仮想化されて変な場所にファイルができたり,ファイルに書き込めなくて落ちるといったことだけはないようにする,と。インストーラのないフリーソフトのためのもっといい方法はないのかなあ。

2つ目はUIPI。アプリケーションごとに(というかカーネルオブジェクトごとに)権限が決められていて,自分より高い権限には手出しできないというもの。これに影響を受けるのは…ロビーの自動退席機能。ロビーを起動しておいて,例えば1分間マウス,キーボード操作がなかったら状態が「退席」になるという機能だが,UIPIによって,ロビーを起動中に管理者権限のアプリケーションで作業をしていると,マウス,キーボード操作をしていても「退席」になってしまう。対策するとしたらどうやるんだ。電子署名とManifestでいいようなことも書いてあったりするけど,フリーソフトで電子署名は無理っぽいし,マウスとキーボードドライバでも書くしかないのか。って64bitだとドライバにも電子署名必須だし。てことで現状こういう制限にするしかないと。

Vista x64を入れるため,パーティションを縮小できるフリーソフトを探していたら,Vistaでは標準でパーティションを縮小したり拡大したりする機能があることが分かった。てか,「コンピュータの管理」の「ディスクの管理」でできるんだけど,「ボリュームの圧縮」というメニュー名はどう考えても誤訳にしか思えない。「ボリュームの圧縮」って言ったら懐かしのDriveSpace,じゃなくてNTFSの圧縮機能を思い浮かべると思う。

とはいえ,Vista標準のパーティション縮小はファイルの位置をずらしてくれないので,いろいろ工夫する必要がある。SysinternalsのDiskViewで一番後ろのクラスタにあるファイルを他のHDDに移したり,Pagefile.sysを一時的に消したりして,なんとか15GBのパーティションを確保。

てことでVista Ultimate X64をXPS M1710にインストール。特に何事もなくインストール完了。ドライバとかソフトウェアとかが64bitに対応していないので何もできないのだが,とりあえずウェザタイの64bit版は開発できる。

Visual Studio 2005のVista用パッチが出ていたので早速入れてみる。


今使っているノートはVistaのx64版が入るっぽい。といってもHDDのパーティション切らないと入れられないけど。ウェザタイとかの64Bit化もやってみたいのでインストールしてみるか。

最近Vistaで休止状態やスリープから復帰するとブルースクリーンになっていた。カーネルメモリダンプをデバッグしてみてUSB関連ということは分かったので1つずつUSBデバイスを外していったら結局USBマウスが原因だったっぽい。このメーカーのUSBマウスなのかUSBマウス一般なのか分からないけど。

# その後マウスを抜いていてもブルースクリーンになったのでこれが原因ではないかも。


ウェザタイのUnicode化をやってみる。ライブラリとWorld TesterのUnicode化は既に終わっているのだが,ウェザタイは日本語をたくさん扱うのでかなり面倒。


MFCアプリケーションのデバッグをやっているのだが,以前はMFCのソースコードデバッグが行えたのだが,VC2005 SP1上ではアセンブリになってしまう。確か以前はMFCのソースの場所を聞いてきたのだが,VC2005 SP1ではPDBファイルに書いてあるパスしか読み込めないっぽい。XPのときはどうだったかなあ。