ぱじ氏の脱出ゲーム「忘れもの」を検索してみると意外にプレイされていることが発覚。攻略ページとかあるし。ぱじさんにアクセス数を聞いてみたら「え?」っていう数で,2人でビックリしてしまった。ダウンロード型アプリケーションに対するFlashコンテンツの潜在的なユーザ数の違いを思い知った感じ。
CPU対戦の入力方式,まだおかしい。入力方式を同期するにしておいて,CPU対戦ページを一度も開かずにプレイヤーの入力方式を変更してOKを押すとCPUの入力方式が変わっていない。ver2.1.1でも同様。なんか,CPU同期機能は仕様が複雑になりすぎてどうにもならなくなってきてる気がする。いっそver2.1.1のときに互換性を切って入力方式同期なしで統一してしまった方がよかったのかも。まあちゃんとテストしろって話ですけど。
一応,プレイヤーの入力方式を変えた後CPUページを一度開けばOKという回避ができるので,対策版を出すのはもう少し後にしようかと思う。
そういえばver2.1から一部の文字列に日本語以外の文字が使えるようになったというのを,マニュアルに書き忘れていた。ちなみに使えるのはファイルのパスくらいで,プレイヤー名とかワードの中身とかロビーの発言とかはまだ。現ロビーでハングル文字とかを入れるとサーバから強制切断されてしまうので注意。
Weather Typing 2.1.2を公開。変更点は以下の4点。
- プレイヤー名に全角で12文字入力できるようになっていたのを半角換算で12文字に修正
- ロビーからWeather Typingを起動した場合,ゲームを開始しても「対戦中」にならなくなっていたのを「対戦中」になるように修正
- CPU対戦の入力方式をユーザに同期させないようにし,CPUの入力方式を変更し,ルールタブ,CPU対戦タブの順に移動するとCPUの入力方式が元に戻っていたのを,戻らないように修正
- ロビー,発言ボックスを縦に少しだけ広げる
現在Unicode化の第2段階とかコモンダイアログとアイコンのVista化とかしているのだが,安定していないので今回の修正版には入っていない。並行開発はなかなかめんどくさい。
ロビーで宣伝していたら,プレイヤー名についてつっこみが入ったので補足。ver2.1のときから,プレイヤー名の最大長がいわゆる半角12文字じゃなくていわゆる全角12文字になっていた。つまり全て全角で入力すると6文字長く入力できたことになる。これだと画面からはみ出てしまうので,今回のバージョンで以前の仕様に近い形に戻した。
で,ロビーでつっこみが入ったのはロビーのハンドル。こっちも12文字使えるようになっていたのだが,今回の版ではあえて対策はしなかった。長くなっても特に実害はないため。
#とはいうものの以前ロビーで「長い名前を使えるようにして欲しい」という要望があって,通信量が増えるので却下した覚えがある。まあ,当時は通信回線が遅くて通信量を気にしてたけど,今の回線なら全然問題ないってことで。
ぱじさんからWeather Typing Flashの第2弾が届いたので入れ替えておいた。
久々にロビーに行ってみた。そこでいくつかバグ報告を受けたのでメモ。2番目は結構大きいので対策版を出す予定。
- CPU対戦の入力方式をユーザに同期させないようにし,CPUの入力方式を変更し,ルールタブ,CPU対戦タブの順に移動するとCPUの入力方式が元に戻っている
- ロビーからWeather Typingを起動した場合,ゲームを開始しても「対戦中」にならない
Weather Typing 2.1.1を公開。変更点は以下の2点。
- 入力方式がQWERTYの場合,キー配列のaiueonがカタカナになっていたのを修正
- プレイヤーの入力方式とCPUの入力方式が中途半端に同期していたのを改善
先月後半からずっとハリーポッター7を読んでいたので日記をほっといたのだが,ようやく読み終わった。てなわけでそろそろ開発を再開しようかと思ったけど,夏休みはまだ先のようなので何もできなさそう。
掲示板のSPAM投稿は,対策以来裏掲示板の方にどんどんたまっている。こうなると逆にSPAM投稿が楽しみになる。
Windows Mailの迷惑フォルダを空にしようと思って検索をかけていると,ランキングのパスワード変更のメールが…。自動で振り分けられたのか,自分で見ないで振り分けたのか分からないけど,結局パスワードの変更を半月もお待たせしてしまった。最近またSPAMが増えてきててどうにもならなくなってきてる。
掲示板のSPAM投稿がうっとおしい。そもそもうちの掲示板は自作なので,ロボット書き込みはないだろうと思っていたのだが,掲示板書き込み支援ソフトと掲示板リストみたいなものがあるようで,それだと自作掲示板でも関係なくSPAMが来るわけだ。てことでそれ前提で対策版を作ってみた。
よくあるパターンとしては,画像に文字列を貼り付けて,書き込む人に文字列を打ち込ませるもの。ロボットは画像認識できないとすると有効な方法だが,なんか書き込む人に労力がいるのはイヤな感じ。もう少しシステム側で対処したい。
てことで今回は書き込み時にちょっと工夫をしてみた。とりあえず思いつきを実験してみた感じなので,有効な手なのかどうかは不明。ちなみにSPAM規制に引っかかると書き込みが保留される。その投稿を管理者が見て,正当な書き込みなら本物に移動する。管理者は気が向いたらチェックすればいいだけなので苦労はない。
最近掲示板にSPAMがくる。とりあえず見つけたら削除しているが,面倒なのでなんかチェックすることを考えないといけないか。
会社ではMS IMEを使っているのだが,パッチが出ているというので見てみると,「このパッチをあてると辞書が初期化されます」みたいなことが書いてあった。それはあり得ないのでは…。家ではATOKを10年以上使っているが,ATOKをバージョンアップさせてもOSを入れ替えてもずっと同じ辞書を使っている。そのくらい重要なのにパッチであっさり消えるというのはどうなのか。
机の上に見覚えのないものが置いてあったのだが,ふっとウィルスチェックしようと思ってしまった。本を読んでいるときについ検索しようと思って,いや無理だ,と思うのと似てる。って分かりますかね。
Windows Media Centerでテレビキャプチャをしてみる。使い勝手は思ったよりいい感じ。キャプチャした動画はdvr-ms形式だが,AutoDVRconvertを使えばMPEG2に変換できるので,あとはどうにでもなる。残る問題は副音声が出ないことか。どうにかなるんだろうか。
ともあれ,これでようやくほぼ全てのソフト+ハードがVista対応に。結構しんどい。
実家からメールが。振り込め詐欺電話があったらしい。とりあえず適当にあしらったようで,さすが。ぱじさんのところにも同じところ?から電話があったらしいけど,ぱじさん本人が出て偽物vs本物な状況だったとか。
エンベデッドは午後IIで10点足らなかった。で統計を見ていたのだが,小中学生が2人ソフ開に合格してた。小学校だったら算数の知識で合格って事に。すごい。ついでにDBに申し込んで受けなかった小中学生は何者? ドラゴンボールの試験と勘違いとか。
ちょっと面白かった出来事。職場で外国の方が日本語のソフトを使っていたのだが,ユーザ情報登録で「・・・で間違いはありませんか?」というダイアログで「いいえ」を何度か選択して悩んでいた。英語を少しでも知ってると分かる気がするが,間違いはないから「いいえ」を選択していたわけで,なんでダイアログが終了しないのかが分からなかったわけだ。ユーザインターフェース的にいうと「・・・で正しいですか?」みたいな肯定の表現にしておけばこんな混乱はないわけで,なんかUI設計のパターンに入りそうな感じがした。
Vistaを家で使っていると,Windows Mail起動時に数十分間,CPUを100%(デュアルコアなので50%くらいだが)使用し続ける。こういうものなのかと思ってずっと使っていたのだが,会社ではそんなことないので調べてみた。結果,どうやらLocal FoldersInboxに空のメールが6000通くらいたまっていたのが悪いらしい。といっても受信トレイには出てこないし,何でこんなメールがあるのか謎。日付を見ると,例えば1日にメールを100通ダウンロードするとして,そのうち4通くらいの割合で空メールがたまるっぽい。WinMailの不具合なのか,Nortonのせいなのか,他の原因なのかは分かっていない。とりあえずInboxの空メールを全て消すとCPU100%がなくなったってだけ。
Weather Typing 2.1とWorld Tester1.2を公開。Weather Typingについては,かなり長い時間をかけて大幅に変えたのだが,機能的にはほとんど変えていない。98系を対象外にしたのが一番大きい変更点かも。とりあえず今回のバージョンでの変更が今後のバージョンのベースになっていくとかそんな感じ。World Testerはいろいろいじってみた。ホントはデフォルトのフィールドを増やしたかったのだが,そこまでは間に合わなかった。
Weather Typingのテスト項目を消化しているのだが,いくつかバグを発見。元々あったバグもあるけど。そのうちの1件はなかなか興味深いのでメモ。
例えば以下のコードがあったとする。"abcあ"はSJISなら半角5文字なので6文字書式に入る。
printf("%-6s", "abcあ")
しかし,これを何も考えずにUnicode化すると
wprintf(L"%-6s", L"abcあ")
L"abcあ"は(多分)8文字分になるので6文字書式からオーバーしてしまう。…という記述はMSDNには見つからなかったんだけど,実験上そんな感じになっているっぽい。結局桁がずれることになる。
# その後実験してみると,上に書いたのとはちょっと違って,%6sはUnicodeで6文字,足りない分は半角スペースで埋めるという微妙な動作だった。つまりいわゆる全角文字が含まれると固定幅にはならないので,位置合わせに使うときは注意が必要。
解決策は…どうやるんだろう。結局文字列引数を1個ずつ分けて描画するみたいな非効率な方法にしてしまった。
すっかり忘れていたのだが,LobbyのPocketPC版をWeather Typing 2.1に入れなければならない。でVisual Studio 2005でビルドしてみたのだが,.NET Compact Framework 2.0に対応させないとうまくビルドできない。てことで.NET Compact Framework 2.0を調べてみたら,前に作ったときに困ってたInvoke,Splitterがサポートされている模様。もう少し作り込んでみようか。
今月のMSDNが到着。ってProfessionalなのにVisual Source Safe 2005が届いたんですけど。しばらく前からWebではダウンロードできるようになっていて,間違いなのかプレゼントなのか不明だったけど,使えということなのか。と思って公式ページを見ると,いつの間にかProにも提供されることになっていた。早速6.0からアップデートせねば。
Weather Typing 2.1とWorld Tester 1.2をゴールデンウィーク辺りにアップロード予定。Weather Typingの方は新機能はなし。最後に公開して以来内部的にいろいろ変えているのだが,新機能がないので公開はしないでいた。で,今回は一応Vista対応という大義名分があるのでこの辺りで公開しようか,てな流れ。World Testerは割といろいろ追加している。画面サイズ変更と効果音の追加が主なところか。
マニュアルもどうせならVista対応ということで画面キャプチャしていたのだが,普通にキャプチャすると背景が透けてしまったりで都合が悪い。まずはキャプチャソフトから作るか,と思ったら「Window Clipping」といういい感じのフリーソフトがあった。透明なウィンドウ枠をPNGの透過色で表現してくれるという高機能さがいい。
情報処理試験エンベデッドを受けてきた。エンベデッドの開発なんてやったことないけど,過去問で踏切の設計とかが出てて意外に問題が面白いので受けてみた感じ。航空機をレーダーで管理する問題はなかなか面白かった。これが受かってればあとはシステム管理でテクニカル制覇…なんだけど,システム管理は論文なのか。ロビー運営じゃあシステム管理の論文にはならないかなあ。
DELL XPS M1710をWindows Vistaで使っているが,スリープや休止を行うと,復帰時にUSBHub関連でブルースクリーンになるという現象がずっと発生していた。でちょっと調べていたのだが,MSのナレッジに載っているっぽい。パッチを当ててみたが,必ず再現するわけではないので直ったのかどうかいまいち分からない。
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化もやってみたいのでインストールしてみるか。