denasu.toの有効期限が切れた。

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

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

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


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

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

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


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


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

夏休み。てことで以前から動かないと言われ続けていた Windows + PHP + mySQL のシステム復帰を画策。メッセンジャでやりとりしつつ数時間。なんとか動くようになった。YN氏に感謝。結局動かなかった原因は,

  • データベーステーブル名の大文字小文字
  • php.ini の magic_quotes_gpc が ON になっていた

の 2 点。

Weather Typing を VS.NET2003 でビルド。

warning C4346: '...' : 依存名は型ではありません。

というエラーが出たのでヘルプで調べると,「依存名を型として扱う場合は typename キーワードが必要です。ISO C++ 標準に準拠するために行われた、Visual C++ .NET 2003 コンパイラでの互換性に影響する変更点」とのこと。というわけで『プログラミング言語C++第3版』で調べると確かにそんな仕様が書いてある。要するにテンプレート引数 template<class T> を使ったとき, T::x を使用したときにコンパイラがそれが型なのか関数なのか瞬時に判断できないので,型であることを知らせるために typename C::x としてくれという話。

ついでにライブラリを static にリンクして,DLL を落とさなくていいようにしようかと思い,static リンクに。しかし,いろいろなライブラリをリンクしているせいか,うまくいかない。最終的には全てのライブラリでランタイムライブラリの設定をマルチスレッド(/MT)にし,スタティック ライブラリで MFC を使用するにすることでビルドすることができた。結果,ファイルサイズもそれ程増えなかったので次のバージョンからはこれで配布する予定。これで DLL がなくて動かないという問題はなくなるはず。

というわけでテストも兼ねて開発版に VS.NET2003 でビルドしたバージョンを置いておいた。なんか使えないよ,って場合はご報告下さると非常にありがたいです。

# 機能的には何も変わってませんので…。


はっぱさんの日記で MSN Messanger6.0 の話があったので入れてみた。ログが XML で取れるようになったりその他いろいろ変わってたが,それより AirH" で安定動作するようになった気がする。前までは 2~3 分ほっておいたらいつのまにかサインアウトしていたが,そんなこともなくなったような。まあしばらく様子見。

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

Visual Studio.NET 2003 を購入。あまり変わってないけど,これでビルドするとまた MFC の DLL を変えなければならないわけで。ウェザタイをビルドするのは保留か。とりあえず C# で遊んでみよう。

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

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

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

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

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

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

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

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

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

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

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

brpuzzle Windowsアプリケーション版をアップしておいた。まあただの15パズルなわけだが,たまにはこういうプログラミングをしないと忘れちゃう。

日記を7月にするのを忘れていた。まあ書いてないわけだが。

近頃の動きとしては,裏で動いている計画のためにランキングを Hi-HO から移動させようとか,もっと前から停滞しているワードサーバ計画とか。そろそろ落ち着いてきているので開発できそうなんだけどなかなかやる気にならないのは PC デスクがないからってことにしておいて。


久々にロビーを覗いてみたところ,最近がラグが多いという話を聞く。しかし,サーバの状況が分からないので何とも言えない。サーバを手元で動かしたいところだ。


歯医者へ行ってきた。被せ物を被せ直すだけ,とか思ったらいろいろメンテしてもらうことに。しかしこんな噛み合わせだったかな。違和感ありすぎ

以前作った Windows + PHP + mySQL のシステムが Linux 上で動かない問題。結局 PHP のソースを EUC にして,MySQLの文字コードも EUC にしたところ動くようになった。あとは本番環境で動くか,なのだが,そこは YN 氏にお願いするとして,ここではインストールメモだけ残しておく。


PHP + MySQL 環境を RedHat Linux に作成。PHP は既に入っているので MySQL だけ入れればいいかと思ったら php-mysql のバージョンが合わずにうまくいかなかったので apache,PHP,MySQLをソースからインストール。

apache(httpd-2.0.46.tar.gz)インストール

// make
./configure --enable-shared=max --enable-module=most
make
make install

// httpd.conf
DirectoryIndex に index.php を追加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

// 起動
/usr/local/apache2/bin/apachectl start

mysql(mysql-4.0.13.tar.gz)インストール

// make
./configure --with-charset=ujis --with-extra-charsets=all --with-mysqld-user=mysql --prefix=/usr/local/mysql
make
make install

// 設定
scripts/mysql_install_db
chown -R root  /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf

// 起動
/usr/local/mysql/bin/safe_mysqld --user=mysql &

// データベース作成
mysqladmin -u root password (パスワード)
mysqladmin -u root -p create (データベース名)
mysql -u root -p mysql
grant all privileges on (データベース名).* to (ユーザ名)@localhost identified by '(パスワード)';
mysql -u (ユーザ名) -p (データベース名)

php(php-4.3.2.tar.gz)インストール

// make
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

InnoDB: Error: log file .ib_logfile1 is of different size 0 0 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!

というエラー。これは何度もインストールしてファイルサイズの整合性が失われたせいで,

ib_logfile
ibdata

を削除して直った。


PHPからMySQL接続時に

/var/lib/mysql/mysql.sock

に接続できないというエラー。これは MySQL の設定と PHP の設定が合っていないため。今回は PHP 側の設定を直して,DB接続時のサーバを

localhost
から
localhost:/tmp/mysql.sock

にした。


php コマンドで直接 .php を起動すると

File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2)
Character set '#12' is not a compiled character set and is not specified in the 'NONEXISTENT/charsets/Index' file

というエラーが出てくるのだが,今のところ実行には影響していない模様。ujis.conf がない,という意味のようだが,未解決。

情報処理試験,受かってたらしい。秋は何を受けようか。


ハリーポッター5巻を無理矢理上中下巻にしてみた。これで満員電車で読める。

以前作った Windows + PHP + mySQL のシステムを Linux 上で動かしたいらしいが,動かないらしい。調べないと。

ハリーポッター5を買ってくる。分厚すぎて電車で立って読めないのはどうにかならないか。

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


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

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


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

近頃ピタゴラスイッチが気になる。中学の3階から1階まで手摺り球転がしをしていた身としてはピタゴラ装置が気になるし,プログラマの身としてはアルゴリズムたいそうとこうしんが気になる。


ランキング。コメントが遅いけどレベル10ですか。現1位の方は前からランキング登録ができないと報告されてたので,本当は結構前からですね。申し訳ありません。

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


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

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

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

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

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

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

日曜でも普通に早起きするようになってしまった。でもなんだかんだで(いろんな)開発はあまり進まず。ウェザタイのテストは連休中にテスト PC に触れられるのでもう少しお待ちを。

なんだかんだの一環として久々にリファラーとか見てみる。で,ランキング CGI が重いというご指摘が。確かにその通りでどうにかしたいんだけど。他のサーバで機能拡張して作り直したいものだ。

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

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

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

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

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

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

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

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

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

情報処理試験のどれかを受けてくる。午前・午後Iはなんとかなるかもしれない。午後IIは問2を選択するのが正解だったのか。ともあれ情報処理試験は試験後の模範解答と掲示板の議論を見てるのが面白い。

なんとか時間を作って 15 パズル for PocketPC を作ってるのだが,だいぶできてきた。

2003041701

あとは 1 ドットごとに動く処理とか画像選択処理とかを付ければ完成。折角だから Windows 版も作って時間測定機能とかも付けるか。

で,開発してて思ったのだが,移植は結構楽かも。簡易 MFC とか STL とかあるし。リモートスクリーンキャプチャとかツール類も揃ってるし。思わず CF LAN カードを揃えてしまったほど。あとはエミュレータへのファイルコピーができればいいんだけど,うまくいかない。

というわけでウェザタイ本体はかなり大変だけど,これならウェザタイロビー移植くらいならできそう。…需要がないけど。

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


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

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

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


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

テーブルを買ってなんとか PC 生活できるようになった。というところでそろそろウェザタイの開発に復帰できるかと。まあ平日は忙しくて無理っぽいけど。

とにかく掲示板の回答が溜まってるので調査していかないと。