‘Weather Typing’のエントリ

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 にしたいけど,おおげさすぎだろうか。

アイコンが上がったのでWeather Typing 1.8をアップしておいた。


VisualStudio.NET2003 になって,F4 キーで次のコンパイルエラーの場所にとぶのはどれなのか分からなかったのだが,F8 だというのが分かった。ビルドが F7 から CTRL+SHIFT+B になってたり,こういうのはあまり変えないで欲しいですね。VB がそうなのかなあ。

WeatherTyping,DLLを分離してロビーの方に試してもらったところ,重い現象はなくなったとのこと。というわけで正式に1.8として公開できそう。ぱじ氏からアイコンを提供してもらったら完成。

さて,1.8 で何が変わるのかというとあまり変わらないわけで。とりあえず

  • ワードクライアントが入ったバージョンを広めたい
  • DLL をいくつも配布するのは大変なので .NET2003 で統一したい
  • WeatherTyping ツールを一緒に配布したい
  • 1.7 から半年も経ってるし,そろそろバージョンアップしとこう

ということで一旦まとめようかという話。


そろそろ 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 をダウンロードしてみたが,何がなんだか。ネット上に(日本語の)情報もほとんどないし。一から調べないとだめか。

ワードサーバ。元々100ワードくらいはないと一般の人も登録しづらいと思って私とパジ氏で追加する予定だったが,ロビーの方達で100は超えたようで。この先とりあえずは私とパジ氏でワードを増やしていく予定なので,お気軽に追加して下さい。

昨日からの変化としては,ソート機能を付け加えた。検索機能も既に枠組みはあるので追加できるが,今のところ必要なさそうなので外してある。パラメータをごにょごにょっとやると検索できる,かも。

今後の展開としては,機能追加は置いておいて,一番重要なマニュアルを書かなければならない。特にウェザタイ用のワードの作り方は結構特殊なのでちゃんとした説明が必要だろう。


というところでそろそろ WeatherTyping1.8 にしたいところだが,目玉機能があまりない。半年かかってワードサーバ機能とDLL不要にしただけか。もっとこう,入力形式プラグインとか観戦機能とか付けたいところだが,結構大変。

ワードサーバを仮稼働させてみた。まだ機能的に不十分(検索とかソートとか)だが,一通りのことはできるはず。テストしてくれる方は,ワードサーバからワードを登録してみて下さい。ちなみに荒れるのを防止するためユーザ登録必須にしてあります。また,ふさわしくないワードが登録された場合もすぐ消します。

登録されたワードを使う側は,WeatherTyping開発版を落とし,ワードの選択欄から[公式ワードサーバ]を選択して下さい。


ロビーで「しぇ」を「SHE」で打てない,というのを聞いたので修正して開発版に置いておいた。のはいいんだけど,ついに Hi-HO の容量制限をオーバーしてしまったようなので,WeatherTyping1.6 は消しておいた。Internet Game Maker(IGM)などの関係で旧バージョンが欲しいという方は自分で用意するか,メールで連絡を。


ロビーでワードサーバを宣伝したところ,その場にいらした方がいくつか登録してくれた。こんな感じで一般の方も登録してみて下さい。ゆくゆくは他のタイピングソフト作者さんにワードサーバを使ってもらったり,他のプログラマさんがワードサーバ作ってくれたり,するといいなあ。

ワードサーバ。ワードサーバ自体はだいたい完成しているのだが,どこのサーバに置くのよ,ってところで難航中。今日サーバ管理者に会おうかと思っていたが予定が合わず延期。

ロビーにいる方たちにワードサーバを試してもらった。使い方はすぐに分かってもらえたが,

  • ひらがながちゃんとひらがなになっているかのチェック
  • 長すぎるワードのチェック
  • 全ワードダウンロード機能

などが必要なことが分かった。

ワードサーバのワード一覧を作ってみた。で思ったのだが,このシステム,ユーザの良心にかかってるというか,すぐ崩壊するような気がしないでもない。まあとりあえず運営してみて,だめそうだったらユーザを制限するなどしよう。

3ヶ月半ぶりに開発版をアップ。ワードクライアント機能に対応。ワードクライアント機能とは,ワード指定に URL を指定することでワードサーバからワードをダウンロードする機能である。かなり前から構想はあったが,やっとクライアント側だけ完成。

現在ワードサーバが未完成だが,テスト用問題を打つことができる。ルール設定のワード欄に「公式ワードサーバ」が追加されているので,それを選択する。するとエディットボックスに URL が表示されるので,そのまま OK を押せばいい。

今後,問題を誰でも登録できるワードサーバを作っていこうかと。まあ,変な問題が登録されたらどうするか,という問題もあるが,とりあえず私が定期的に見て手動削除する方針で。

ちなみにサーバ側はワードをそのまま返すだけなので,Webサーバがあれば誰でもワードサーバを構築することができるし,テキストファイルをアップすればそれを指定することも可能。また,他のタイピングソフトからでもアクセスすることができる。てことで,これに対応したサーバとクライアントがたくさんあれば,タイピングソフト使用者側はいろんなワードが使えるし,タイピングソフト作成者側もワード作らなくて楽,とか思ってるわけだが,そこまでは大変ですかね。

プロトコルとしては,GETリクエストに対して

漢字文章1
ひらがなぶんしょう1
漢字文章2
ひらがなぶんしょう2
・・・

を返すことになっている。「ワード自動生成」についてはサーバ側で組合せを行う仕様なので,ここでは考えない。これによってウェザタイのワードファイルを URL で指定することができないわけだが,この機能は汎用性を重視したいのでこういう仕様で。

ロビーサーバは14~18日まで停止し,復旧完了。また停止するかも知れないが,とりあえずしばらくは大丈夫かと。管理者様ありがとうございます。


いつのまにかカウンタが65536を超えていた。どうでもいいけど。

ロビーはなかなか管理者に連絡を取れない。サーバ PC 自体を再起動させれば直るのかも知れないが,どうなんだろう。


そういえば忘れてたが,先月の24日に宝島社『DiGi/USER』07月号に紹介されてたらしい。今日本屋で見てみたが,WeatherTyping と書いてロビーの写真が載っていた。なんでもいいから exe 実行してプリントスクリーンしとけばいいや,みたいな。ま,どうせ今時雑誌では何の宣伝にもならないのでどうでもいいんですが。

気付けば 6 月。生活は落ち着いてきたんだけど,環境がどんどん変わってるのでまだまだ落ち着かない。


親指シフトキーボードを見てきた。なるほど,親指キーはあんな風になってたのか。しかし,15000円くらいなので,テストのために買うのにはちょっと高い。多分対応できないと思うし。

ロビー。新サーバに移行してから何度かルータの再起動が行われていたようで,強制ログアウトしていた模様。今後は一応掲示板などで告知すると思います。

削除依頼を反映。今まで削除は手作業だったのだが,なんとか自動化することができた。データベースが使えればこんな苦労はないのに。

ランキングはこの前のまま変わらず。何件か削除依頼もされているのだが,ランキングの調整が終わるまでは待ち状態で。

と言っても明日からまた忙しくなるわけで,早くやらないと。ルービックキューブやってる場合じゃない。

ウェザタイランキングをちょっとだけ高速化。ソートとかファイルからの読み込みを早くしてみたが,あんまり変わらないか。

時間が少しあったので掲示板を見てみる。とりあえず 1 つとして原因は分からない。とりあえず細かい話題しか書けない段階なので日記の方に書いておく。

MFC70.DLL はパスの通っている場所に入ってればいいはずなんだけど。レジストリ登録はいらないはずだし。というわけで原因不明。

フルスクリーンモードで起動すると強制終了というのはメールでログを送ってもらったのだが,DDERR_WRONGMODE というエラーだった。このエラーは DirectDraw のサーフェスをリストアするときに,サーフェスを作成したときのモードと違ってる,というエラー。最初からフルスクリーンにしてから作成してるはずだが。とりあえず直すにはサーフェスを最初から作り直す必要があり,これは途中でフルスクリーンとウィンドウモードを切り替えるのと同じくらいの手間がかかるわけで。

BGM が流れないというのは Me で試してないというか引っ越し元に実験 PC を置いてきたので試せないわけだが,そもそも Wav なのか MIDI なのか,DirectAudio 全般で流れないのかウェザタイ上だけなのか。

何もしていないのにエラーが発生し強制終了というのは再現不能。エラー時のスタックダンプとかがあると少しは分かるかも知れないけど,そこまで要求していいものだろうか。

「同じ名前のメンバがいます」は一旦強制終了するとタイムアウトするまではログインしっぱなしなので,約 90 秒ほどはそうなる。

親指シフトキーボードは親指シフトキーボードの構造がよく分からない。そもそも親指キー単独では文字コードを出さずに他のキーとの組合せで初めてコードを出す場合,もしくは IME を有効にしなければ使えない場合は対応は不可能。ウェザタイは IME を使っていないので。次にキーボードは普通? でドライバとかエミュレータで対応する場合は親指キーのコードが DirectInput で反応すれば大丈夫なんだけどいろんな書き込みを見る限り無理なんでしょう。ともかくそのキーボード自体を見たことがないし何も知らないのでその辺の情報がない限りは対応は不可能。せめて手元に親指キーボードがあればいいけど,どんなのがあるかどこで手に入るのかも分からない状態だし。

以上。何か分かったら掲示板に報告しますので。

忘れた頃に親指シフトスレで話題が出るわけで。ドライバって普通にアルファベットを打つときも配置違うのかな,とか,親指同時打鍵の判定っぷりはどうなのか,とかありますが,その前に掲示板の書き込みですね。回答する時間がなくて申し訳ありません。ロビーも全然行ってないけどちゃんと動いてるかな。

掲示板に返信。といっても情報提供のお願いばっかりだけど。


メールで指摘があって気付いたのだが,Internet Game Maker(IGM) さんが復活していた。ただ,ウェザタイについては 1.6 のままなので 1.7 だとうまく使えないようだ。

というわけで Weather Typing1.6 をしばらく置いておきます。ただ Hi-HO に置ける容量に制限があるので,いつまで残すか分かりません。必要な方はお早めに。

# というかスクリプトをこちらで提供させてもらえばいいんですが,ロビーもあるし,いいかな,ということで。


ようやくBASICマガジン最終号を読んだ。今後の展開はないのかなあ。

ロビーサーバ復活。結果的に 1 日半くらいのサービス停止で済んだのかな。新サーバ管理者に感謝。

本日24時,ロビーサーバを一時停止しました。一応区切りなのでちょっとデータを。

ロビーサーバ開始日時
2002/05/15 01:33:28
ロビーサーバ稼働時間(途中再起動時等も含む)
311日22時間26分32秒
総ユーザーアカウント
3992人
最大同時ログイン数
47人

ちなみにユーザーアカウントについては1人で複数アカウントを使っている人が結構いるので実際何人かは分からない。

復旧については新サーバの準備が完了次第なので明日かも知れないし1週間後かも知れない。というか管理者に連絡が取れないよう。