掲示板に一気に返信。最後に書いたように,2/17にロビーサーバのメンテナンスを行います。
WeatherTypingに対して上がっている要望一覧をまとめてみた。今後は要望が上がったり進展した場合はこのファイルを更新していく予定。
掲示板に一気に返信。最後に書いたように,2/17にロビーサーバのメンテナンスを行います。
WeatherTypingに対して上がっている要望一覧をまとめてみた。今後は要望が上がったり進展した場合はこのファイルを更新していく予定。
今週の土日はInsideDCOMとかを衝動買いしつつアセンブリを読み続ける。
OLE32.DLLの中をトレースしていたのだが,以前インストールしたXPSP1用シンボルがロードされない。最新のシンボルはシンボルサーバにあるらしいのでWinDBGのシンボルサーバを「SRV*c:websymbols*http://msdl.microsoft.com/download/symbols」のようにしてデバッグを開始し,シンボルをダウンロード。ダウンロードしたPDBをXPSP1用シンボルに上書きすればVCのデバッガからでもシンボルがロードできる。この方法があってるのか分からないけど。
土日が忙しいと趣味開発もできないわけで。掲示板の返信も結局できなかったし。本当はウェザタイ2とか新ロビーとかいろいろやりたいんですけどね。
久々にランキングを見てみるとトップの方がレベル11に。トップがレベル6だったときが懐かしい。
ウイルス。先月末は2日で50通近く行ってたのが今は2日で20通程度。落ち着いて来たのかな。一応書いておきますが,私のメールアドレスからのウイルス付きメールはほぼ間違いなくアドレス偽装なので苦情メールとかはご遠慮下さい。
連休も終わり。ちなみに3月末まで連休はない,らしい。
で,何故かプログラミングC#(日経BPソフトプレス)を買ってきたので読んでいた。ウェザタイC#を作るわけじゃないけどロビーを移植くらいならできるかな。
関連してモルニウム(?)のコードを見直してみると,当時は自分で書いてて意味が分からなかったコードも分かるようになっていい感じ。
ロビーに対する要望で,「無視してる人には自分の発言が見えないようにしてほしい」というのがあったのだが,考えてみるとサーバに「私はこの人を無視してます」というのを送ることになるので,管理者には誰が誰を無視してるのかバレバレってことですよね。相手にさえ分からなければそれでいいのかなあ。
ロビーで年越し。で,入力形式プラグインの検討を行っていたのだが,新しく1から作り直した方がいいぐらいかも。
明日から冬休み。この間にウェザタイのバグ修正と入力プラグインでも,って感じですかね。手始めにロビーの音が鳴ると落ちる現象を調査。どうもwaveOut系APIの使い方が間違っていたようで,複数の音が一度になるとまずかったらしい。これは修正完了したので開発版にアップしておいた。
ロビーを複数起動すると落ちる問題。これは手元のWin98では再現しない。Win98SEだけってのはあまり考えられないかなあ。
やっぱり年越しはロビーで,ってことで今日からロビーに入っているわけだが,WindowsCE版の需要が(ごく1部で)あったりで面白い。
久々に時間がとれたので一気に掲示板に返信を。しかし,もう少しさかのぼると解決していない問題がもっとありそうな気がする。一回書き込みを見直さないとダメそう。
先週は忙しくて日記ネタもなかったので何も書かずにいようかと思ってたけど,タイピングスレを見てちょっとだけ。
TODはカナとローマ字の記録が分かれていないというのが挙がっていたので,ウェザタイはどうだったっけと思って調べてみた。
ウェザタイの場合,入力方法とワードの組合せごとに最大50位まで,記録全体で最大1000位まで保存できる。よって,入力方法5種類をフルに使う場合,ワードが5種類以上になると下の記録が消えていくことになる。すると入力方法の1つが極端に点数が低い場合はその入力方法の記録が全て消えてしまうということになる。今のところ入力方法5種類をフルに使う人はそういないと思うが,これから入力方法プラグインで入力方法を増やしたら困る場合も出てくるか。
ちなみに,対戦履歴ファイルは全て残すことが重要だし自分で編集できるので保存数無制限にしてある。しかし成績ファイルはユーザが自分で中身の管理はできないからサイズ制限をかけざるをえない。プラグインサポートしたときは10000位くらいまでは残せるようにしようかな。
ワードサーバ,明らかに誤記または前半後半が間違っていると思われるものを直してみた。ワードサーバを始める前はもっとワードがグチャグチャになるかな,と思っていたが,実際に運用してみると割ときちんと登録してもらえているのでありがたい限り。ただ,明らかに登録者の意図とは違うな,とこちらで判断したものは予告なく修正させて頂きます。もし,元のままで間違ってないよ,というものがあればお知らせ下さい。
一般から募集する限り,ルールは最低限にして自由に作ってもらった方がいいという考えで,ワードの作り方は特にマニュアル明記していなかったのだが,1つだけ補足。
私とぱじ氏がウェザタイ用ワードを大量に作成したときの経験からいうと,前半ワードは後半に名詞がくることを前提に,後半ワードには名詞が来るようにすると,うまくワードがつながって面白いものができやすいです。今登録されているものだと,前半ワード「剣と魔法と」後半ワード「くま太郎」なんかがいい例ですね。この辺は次のバージョンのマニュアルに付記しておきます。
ローマ字入力のC。「し」の時に「SHI」を使うとうまくローマ字表記が出ないというバグがあった。で,それを直したものを開発版にアップした。しかし,今度は「C」を使用すると「しゃ」「しゅ」「しょ」のときに「CIXYA」「CIXYU」「CIXYO」と出るようになってしまった。ウェザタイのローマ字認識のやり方だとこれに対応するのはちょっと難しいので対応はもう少し先。
DvorakのCに対応した版を開発版にアップ。
ローマ字入力のCに対応した版を開発版にアップ。
Norton Anti Virus2004をダウンロードで購入。早速2002からバージョンアップしてみると,ウィルスメールをちゃんとはじいてくれる。2002では何故か反応してくれなかったのだ。まあプレビューすると反応してたからいいんだけど。
#でもHi-HOメール,近頃ウィルスとspamが大量にくるのだが,なんだろう。
ウェザタイテスト用に仮想PCソフトを入れようと思い,VMWareとVirtualPCを試してみる。VMWare上のWindows98では音声がとぎれがちになる以外は問題なく動いた。VirtualPCはもっと音がとぎれる感じ。ま,買うとしたらMicrosoft版VirtualPCが発売されてからか。
ローマ字入力のCの話。うちのATOK14の標準設定の立場は・・・というのはさておき,かなり使っている人がいるということで,CA CI CU CE CO かしくせこ? に対応しますか。今のウェザタイはバージョンが違ってもつながらなくなくことはないですし。この連休中かな。
で,気付いたが1.8をVectorに送るの忘れてた。既に2ヶ月だし開発版出してるし今更って感じだ。1.81にしてしまおうかな。
VS.NETでリモートデバッグを行う方法。
msvcmon.exe ATL71.dll MFC71.dll msvcp71.dll msvcr71.dll msvci70.dll debug.bat DBGHELP.DLL NatDbgDM.dll NatDbgTLNet.dll PSAPI.DLL
をリモートマシンに置いておく。でリモートマシン上でmsvcmon.exeを実行。
次にローカルマシンでプロジェクトのプロパティのデバッグでリモートデバッグを選択し,デバッグ対象の実行ファイルを選択。この実行ファイルはローカルとリモートで正確に同じ場所にする必要がある。
デバッグを実行するとリモートマシンでプロセスが立ち上がる。
リプレイファイルに関して修正したものを開発版にアップ。リプレイビューアでファイルが開けないという話はちょっと前にロビーで聞いていたのだが,なかなか調査もできなかった。で,今日試してみたところ,ファイル名にスペースが入ってる場合に失敗するのが分かったので修正してみた。
不具合とか要望とかそろそろ分からなくなってきたので整理しないと。
ウェザタイ開発版をアップ。プロキシサーバを指定できるようにした。今まで,ランキングアップロードやワードサーバにアクセスするためには,直接サーバへアクセスできる環境でなければならなかった。今回のバージョンでは,最初のダイアログの[プロキシサーバ]ボタンからプロキシサーバの設定を行えば,プロキシ接続でWebが閲覧できる環境ならサーバにアクセスできるようになった。LAN環境などで今まで不便だった方はどうぞ。
で,プロキシ認証をDeleGateで試していたので最低限の動作方法をメモ。
認証用のアカウント作成
delegated -Fauth -a mortarco:password denasu
プロキシサーバ起動
delegated -P8080 SERVER=http AUTH=proxy:pauth AUTHORIZER=denasu
HTTPクライアントを修正してみた。今までウェザタイで使っていたのは単にポート80でサーバにつなぐだけ,という実装だったのだが,今までの掲示板の書き込みなんかでもあったようにこれではさすがに機能不足。ということでプロキシサーバと認証に対応。これで例え学内・社内LANの中で新記録が出てもプロキシサーバ経由ですぐ記録が送れるはず。ただ開発版はもう少し調査してから。
これでHTTP1.1に対応できればいいんだけど,持続的接続とかチャンク形式とか一気に実装が難しくなる。
TOD2004ですか。「従来の常識では考えられない、滑らかな通信対戦」というのが気になるところ。ドリルモードの対戦てのは面白そう。とりあえず買っておくか。
1台のPCだけで対戦しよう,って需要はあるのだろうか。てのは置いておいて,DirectInputって複数キーボードの対応はしてなかったんだっけ。
久々に逆リンクをたどっていると,ワードファイルをURLで指定すると上から順に出題されるというようなことが書いてあった。なるほど。確かにそういう仕様になりますね。つまりストレンクスモード(って何だ)にしたい場合はワードをWeb上に置いてURLで指定すればよいと。但しワードの自動生成はできないよ,と。
掲示板のウェザタイ音楽再生の話。その後自分のマシンで試すとちゃんと再生されていた。Win98で試さないとダメかな。てところで止まっている。
ちょっと前からPocketPCのMSN Messengerにログインできないと思ったら,PC版も含めて古いバージョンのクライアントではログインできなくなったいたのか。独自のメッセンジャクライアントもダメになってしまうのだろうか。
サーバ問題についてはまた動きが出たのだが,前の時の例もあるのではっきりするまでは発表しない方針で。
ロビーとワードサーバに使っているサーバに再び危機が。時期的には11月中とのことだが,どうなっていくのか。
入力形式プラグインだが,よく考えてみると対戦時にそのプラグインを持っていないと対戦できない。解決策として,まず相手のマシンから勝手にダウンロードというのは危険すぎるので論外。DCOMでリモート呼び出しという話もあるが,速度的に厳しそうだしそこまでやるのもどうかと思うし。なかなか難しい。
26日の収録のメール。よく読んでなかったが,今読んでみると掲載の報告とある。返事しなくていいのね。じゃあいいや。
久々にはっぱさんとチャット。タイピングのクセを学習させて仮想CPUを作るにはどうすればいいかを聞いてみるとHMMとの答えが。勉強しなければならないのか。いや,きっとはっぱさんが作ってくれるだろう。
しばらく前に松4氏にウェザタイ 1.8 をやってみてもらったところ,リプレイが見られないとの話を聞いた。松4氏のことなので特に気にしてなかったが,今日ロビーで同じような話を聞いたので,ちゃんと調査を行うことにする。
今週 1 週間,ウェザタイの入力方式・仮想CPUプラグインを考えていたが,COM でやるには問題が。COM でプラグインを実現する場合,プラグインの DLL を個々にレジストリ登録,解除する必要がある。また,特定のインターフェースをサポートするオブジェクトを検索する手段は(全オブジェクトにQueryInterfaceする以外に)ないのでプラグインの GUID(CLSID)一覧をどこかに登録しなければならない。もちろんプラグインごとにインストーラを用意すればいいのだが,それば非現実的なので他の方法を考える。1 つ目の問題はプラグイン登録ツールか何かをこちらで用意すれば解決できそうだが,2 つ目の問題は何か工夫が必要。GetGUIDs メソッドを用意させるか別途テキストかなんかで用意するか。どうするのが一番いいのかな。それとも私が COM を知らないだけなのか。教えてはっぱさん。
ベタ DLL で作ればいいというのは…。つらい。
前回ウェザタイの紹介でロビーの画像を貼り付けていた雑誌(2003/06/07日記参照)からまた収録のメールが来ていた。当然のごとくver1.7。まあ断る理由もないので適当に返事を出しておこう。
# 後でちゃんと読んだら同じ雑誌ではなかった。出版社は同じだけど。
ウェザタイの入力方式と仮想 CPU をプラグインにしたいのだが,何で作ろうか迷っている。今 COM 勉強中なので COM にしたいけど,おおげさすぎだろうか。
松4氏が書いたC++コード。ちょっと変えてあるけど。
class A { public: void f(); }; void A::f() { std::cout << "hello." << std::endl; } int main() { A a = NULL; a->f(); return 0; }
一見 NULL Pointer Exception が発生しそうだが,VC でも GCC でも BCC でも通る。アセンブリレベルで見ると絶対アドレスで関数を呼んでいる。なので仮想関数だったりするとアウト。コンパイラ依存ぽいけど。
アイコンが上がったのでWeather Typing 1.8をアップしておいた。
VisualStudio.NET2003 になって,F4 キーで次のコンパイルエラーの場所にとぶのはどれなのか分からなかったのだが,F8 だというのが分かった。ビルドが F7 から CTRL+SHIFT+B になってたり,こういうのはあまり変えないで欲しいですね。VB がそうなのかなあ。
WeatherTyping,DLLを分離してロビーの方に試してもらったところ,重い現象はなくなったとのこと。というわけで正式に1.8として公開できそう。ぱじ氏からアイコンを提供してもらったら完成。
さて,1.8 で何が変わるのかというとあまり変わらないわけで。とりあえず
ということで一旦まとめようかという話。
そろそろ 2.0 問題が近づいてきた。すなわち,リビジョン番号は分かりにくいので致命的バグ以外では極力使わない作者としては,2.0 まであと 1.9 しかない。2.0 といえばメジャーバージョンアップだ。つまり,がらっと変えないと納得してもらえない。てことで 2.0 では結構変えるつもり。
2003/09/07のインストーラの話。よく見たらVS.NET2003が作成できるプロジェクトの中にインストーラプロジェクトがあった。これ使えばいいのか。でビルドしてみたら 2.5MB。うーむ。インストーラなし版も必要だからかなりプロバイダ領域を消費してしまう。やはり DLL だけパッケージを置いておくのが一番か。
ついでにいろいろ見ていると,C# 開発環境上で WindowsCE 用開発ができるようになっている。って VS2002 からあったのか知らないけど。さっそく試してみたがいい感じだ。iアプリは今更作る気しないので C# で PPC 開発をやろうかな。
WeatherTyping1.8 用にインストーラを調べた。昔 Microsoftさんが送ってきた VisualStudio Installer を使おうと思ってダウンロードしようとするが,VisualStudio6 のプロダクト ID を入れろと言われる。そんなのとっくにアンインストールしてるって。で,引き出しを調べると前送られた CD があったので入れようとしてみるが,ID を入れろと言われて断念。というわけで WindowsInstaller SDK をダウンロードしてみたが,何がなんだか。ネット上に(日本語の)情報もほとんどないし。一から調べないとだめか。
まっちーさんに触発されて COM の勉強を始める。『InsideCOM』を借りてきて読んでいるのだが,やっぱり Inside シリーズは詳しくていい感じ。といっても他は『InsideVisualC++ version5』しか読んでないけど。『InsideVisualC++ version5』の新しい版は出ない(出せない)のが残念。
本を読みながらロビーを覗く。どうも WeatherTyping1.7.2(相当)は対戦・動作が重いとの報告を受ける。.NET2002 から .NET2003 に変えたせいとは思えないので,やっぱりスタティックリンクが原因だろう。そうすると次バージョンは DLL 配布しかないか。DLL を付けたインストーラでの配布+DLL なしの圧縮ファイルという形式が一番か。
ワードサーバ。元々100ワードくらいはないと一般の人も登録しづらいと思って私とパジ氏で追加する予定だったが,ロビーの方達で100は超えたようで。この先とりあえずは私とパジ氏でワードを増やしていく予定なので,お気軽に追加して下さい。
昨日からの変化としては,ソート機能を付け加えた。検索機能も既に枠組みはあるので追加できるが,今のところ必要なさそうなので外してある。パラメータをごにょごにょっとやると検索できる,かも。
今後の展開としては,機能追加は置いておいて,一番重要なマニュアルを書かなければならない。特にウェザタイ用のワードの作り方は結構特殊なのでちゃんとした説明が必要だろう。
というところでそろそろ WeatherTyping1.8 にしたいところだが,目玉機能があまりない。半年かかってワードサーバ機能とDLL不要にしただけか。もっとこう,入力形式プラグインとか観戦機能とか付けたいところだが,結構大変。