日記(960)

<前 次>

機能停止とファイル解析と確認画面

今日メモちらしが原因不明の動作停止をしました。
元々暴走が怖かったため動いてるか動いてないかわからないぐらいの低速で動かしていたのでずいぶん長いこと気付きませんでした。
とりあえずソフトを再起動したら直ったのですが、止まる条件はプログラムの終了以外になかったはずだったので少し気持ち悪いです。

のんびりナマライザのログ読み込み部分の中枢が出来上がりました。
先月27日に言っていたところのファイル解析です。
まず、速度は多少遅くなるのですが、エラー処理を正しく行い、可読性の高いコードになるように、そしてもちろん正しいデータに対しては最低限正しく動くようにしました。
読み込みの都合や実際に解析するときの必要性などから一部のデータを使わないことにしたり場所を色々移動したりもしました。

掲示板の迷惑書き込み対策、もっと単純でなおかつ当たり前の方法がありました。
投稿内容反映の前に、投稿内容確認画面を入れて1ステップ多くするのです。
これにより一般のお客様には利便性が上がり、迷惑書き込みをする人には面倒になるのです。
一般のお客様から見れば、投稿結果のイメージが投稿前に確認できるし、やろうと思えばその場で修正もできるし、不適切な表現があれば警告が出るし(出せるようにしたい)、チャットのようにガンガン書き込みまくるということもないので便利さだけが大きく上がるのです。
そして迷惑書き込みをする人にとっては、一手間多くかかる(つまり2倍面倒になる)、機械での投稿がしにくくなる、ということで書き込みにくくなるのです。

Following

NeoMuplの最新版をアップしました。
今回の改善点は演奏準備中の表示をすることにしたことです。
機能追加というほどのことでもありませんが、今演奏しようとしている曲とタイトルバーに表示されている曲が一致しないという気持ち悪さは避けられます。
ただ、同時に色々未実装な物も乗せてアップしてしまったので使い勝手はむしろ全体として悪くなっているかもしれません。

Bomber丸WorldのライブラリのページのCBWTextDIB32とshared_resourceのページができました。
あまり説明らしい説明にはなっていないのですが。
あと、キャラの行動アルゴリズムのFollowとGotoの改良を考えています。
経路を考えるのが、経路を考える必要ができた瞬間1Fだけであり、たくさんのキャラクターが同時に動こうとしたとき処理落ちが起こる可能性が高いのです。
また、負担軽減のため探索深さを少なめに設定していたせいで探索範囲が狭くなり、遠くから追いかけるということができなくなっていました。
これは、探索する側が最短経路を探すから遅いのであって、追跡される側のほうが最短経路を求める手がかりを残しながら歩いていればよかったのです。
そして、手がかりは、一度に全部用意するのではなく小出しにしていくことで処理の負担を和らげます。

投稿フォームのこと

掲示板にの一般の利用者に迷惑のかかりにくい迷惑書き込み対策については、一つの案として、レベル別の書き込みフォーム&投稿内容制限の変化を考えています。
まず書き込みフォーム。
元々用途に応じて様々な形態の書き込みフォームを使うことを考えているので、普通の投稿にも様々な投稿フォームがあってもあまり問題にならないのです。
非常に大まかに分けると、簡易コメントフォームと通常書き込みフォーム。
簡易コメントフォームはテキストだけのシンプルな画面構成で誰でも書き込むことができますが、載せられる情報は少なく、ちょっとしたことで投稿内容審査に引っかかり、封印されます。
通常書き込みフォームは、クッキーと画像を使って、利用者別の投稿画面が自動的に割り当てられます。
画像には適切な代替テキストを用意せず、目で見ないと何が書いてあるかわからないようにし、入力フォーム自体の形や配置も毎回変化します。
これでロボットによる書き込みフォームの判別は難しくなります。
しかし、各入力欄のname属性がわかりやすい名前であると意味がないので、一見意味のない文字の羅列をname属性に使い、投稿された時点でCGI側で、じゃなくてPHP側で元の名前に読み替えます。
そして、元の名前と意味不明な名前の対応も、一定時間で変化します。
すると変化する時間をまたいでの投稿がまずいことになりますが、そのあたりの時間差は考慮して、正しい対応を取れるようにします。

迷惑書き込み対策

いやぁ。急にNeoMuplをいじりだしました。
色々やるべきことがたまっていたりするので、まずはランダム演奏で当たる確率の調整機能を作ろうかと考えていたのですが、そのためにプロジェクトを開いてファイルの内容を見ていたら読み込み部分がなんとも不恰好なことになっていたのでこっちを先に改良しようかなどと思って改変を始めたのですが、なんだかんだで結局準備の準備段階ぐらいまでで両方とも終わってしまいました。

掲示板のロボットによる迷惑書き込みへの対策を考えています。
私が目指すのは、投稿者に少しの面倒をかけて確実に迷惑書き込みを排除する方法ではなく、一般の利用者には迷惑書き込み対策なんて意識させずにロボットだけが困るようなやり方です。
それでまず考えられるのが、HTMLソースのスクランブル。
完全にまぜこぜにするのではなく、入力フォームのname属性を意味不明な言葉にしてやるのです。
しかし結果だけいうと、それでも迷惑書き込みは来ました。
ロボットかどうかは定かではないのですが。
いろんなブラウザにそれなりに対応しつつ、迷惑書き込みはできないようにしたいのです。

属性

メモちらしのページに暴走について記述しましたよ。
ちょっと数値設定に対してデリケートすぎるんですね。
こちらのほうでは時間を掛けてやっと傷跡が戻ったところです。
とにかく極端なパラメータ変化は危ないようなのです。

Bomber丸Worldの属性攻撃について考えてます。
私は敵の属性がわからず力押しで戦ってしまうことがたびたびあり、自分のゲームでも同じようなことがみんなに起こったら嫌だなぁと思うのです。
属性を色分けしてみるとか、いっそのこと誰かが教えてくれるとか、ちゃんと考えてプレイできるような方法を考えているところです。

大暴走!?

昨日の計算は、結局うまく係数を消すことができて、答えを導き出すことができました。
それに伴い学習帳を更新しました。

それで、メモちらしのほうもうまく機能追加できたのですが、新機能が悪かったのか、こっちの操作が悪かったのか、暴走が始まってしまいました。
時々暴走に備えてバックアップを取っていたのですが最近はバックアップをほとんどしていなくて、戻せませんでした。
う~ん、やっぱり根本的な対策が必要なのかなぁ…。
とりあえず今のところはゆっくり時間を掛けて暴走した傷跡を元に戻していこうと思います。

1159798470.png

字句解析

んで、更新しちゃいましたよ。
スクリプトのところ。
これで構文解析と字句解析ができたので一度小手調べに簡単な数式を解釈するインタープリタを作ろうともくろんでいます。
まあ、それなりに時間はかかりそうなので、途中に他の更新をはさむかもしれませんが。

メモちらしの自動調整の計算、どうもおかしいと思っていたら最初に考えた式が間違っていました。
もっとも、その間違いを直したからといって式が特別簡単になるということはなさそうなのですが。

<前 次>