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

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 生活できるようになった。というところでそろそろウェザタイの開発に復帰できるかと。まあ平日は忙しくて無理っぽいけど。

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

日用品をお買い物。なんとか暮らしていけるレベルに。でも机がないと不便すぎ。


<< 最 終 通 告 >>が届いた。しかも最終通告なのに 2 通。ちなみに文面

メール開いて,ちょっと読んで爆笑。ネットで検索してみると 3 月から来だしてるらしい。

引っ越し完了。引っ越し前準備が半日で後片づけが半日。こんなのでいいのか。とりあえず PC(とネット環境)だけ整ったけど,他に何もない。

引っ越し準備のために家にいた,はずなのだが結局ずっと PocketPC 開発環境を整えていた。

まず STL と標準 C++ ライブラリがないという問題。全部最初から作るならなくても構わないが,今までのソースを使いたいのでネットをあさって STLPort を使わせてもらった。しかし,コンパイルして使おうと思っていたのだがいろいろ試してもダメだった。で,stream を使わないように設定すればコンパイルせずに動くのでそれでいくことに。

ここまでで string とか vector とか sort とかが動くようになったのでなかなか使いやすくなった。次に stream が使えない問題だが,必要な部分だけ(ifstream::open iofstream::open ifstream::read ofstream::write くらい)CFile を用いて実装。

次。標準の例外処理が使えない問題。ってかなり致命的な問題な気もするが,MFC のソースを見ていると CException TRY CATCH マクロを使っているようなのでこれなら使える,ってことで CException から派生させてマクロで対処することにした。

ついでに画像ファイルを読みたいので zlib libpng を探すと,WindowsCE パッチが作られていたのでそこからライブラリを構築。

ここまでで画像を PocketPC に表示させることは成功。とりあえず 15 パズルでも作ってみるか。練習には丁度いいし。

エクスプローラで上書き保存のとき,Shift+いいえ で全いいえになる。って実は常識なのだろうか。

PocketPC 用 DirectPlay というのを見つける。Play だけ(?)というのがなかなかいい。Embedded Visual C++ には簡易 MFC もあるし,PPC 版ウェザタイとか PPC 版ロビークライアントとか作ったら面白いだろうか。でも STL がないとかなりつらいか。

というわけだかなんだか,もはや CLIE しかなくなってしまった Palm から PocketPC に乗り換え。初代ザウルスも持ってるから,Zaurus-Palm-PocketPC と一通り使ったことになる。PocketPC は開発環境も整ってていい感じ。


「マイコンBASICマガジン」休刊ですか。物心付くか付かないかの頃から読んでたし,投稿プログラムコーナーにも 2 回ほど載せて頂いた私としてはかなり残念。まあ近頃は読むところも OF コーナーくらいだったし,仕方ないんですかね。

在庫のある分のスキャンとか PDF とかを DVD かなんかに入れて発売してくれれば絶対買うんだけど,出してくれないかな。