日記(983)

<前 次>

分散処理

とりあえず読んで大体の流れはつかめるようになったのでRubyでCGI組んでししゃもを会話するチャットを作ってみました。
どうもししゃもはそれなりに動いてくれてはいるようですがどうにもブラウザに出力する時点でCGIクラスにエラーが起こってるみたいです。
正直、私の良く知っている言語と見た目の大きく異なるRubyはあまり使いたくないんですけどね。
とりあえずししゃもを動かすCGIが完成したらRubyからはとっとと離れるつもりです。
ちなみにししゃもで何をやりたいのかというと、アルニックにね、特定の確率でししゃもによる会話を織り交ぜようと考えているんですよ。
本来ならゆいと同じ辞書方式で事足りるはずなんですが何せ辞書を作れるのが私しかいないということで、どうしても辞書の量が足りなくなっちゃうんですよね。
あと、複雑なアルゴリズムで返事を決めようとするとどうしてもサーバーに負荷がかかるので、そういう重くする原因になることは分散して処理させようという考えもあったりするのですよ。
うちのサーバーではRubyが使えないんですが自分のパソコンでなら使えるので、例えば、サーバー上でアルニックが喋るとき、CGIからうちのパソコンに人工無能の返事を考えるようにリクエストを送って、それでうちのパソコンが頑張って答えを出してサーバーに送り返す、そういうのをやってみたいんですよ。
これをやると必然的にうちのパソコンに繋がらないときアルニックはあほあほになってしまいますが、まあそれも愛嬌です。

ルビーと呼んではいけないもの

Rubyをインストールしてました。
巷の優れた人工無能ちゃんは大部分がRubyで書かれていたりするので。
とりあえずロイディとししゃもをダウンロードしてきました。
しかしうちのサーバーではRubyは使えなさそうなので、自宅サーバーと繋げて使うようなやり方ができるかなと考えています。
しかしまあ、予備知識が無いとほとんど読めませんな。
変数の命名規則がかなり独特で、わかる人には一目瞭然、わからん人には誤解を招くという、ちょっとRubyで書かれたプログラムを見てみたい人には厳しいものがあります。
Ruby→http://www.ruby-lang.org/ja/
ロイディ→http://www.rogiken.org/SSB/reudy.html
ししゃも→http://yowaken.dip.jp/sixamo/

ルールを

久々にメテオスやってみましたよ。
腕は衰えておらず相変わらずレベル5相手に10回に8回は負けてます。

そうそう、掲示板にルールをつけようと思います。
やはりいつまでもノールールというのもどうかと思いますので。
ミディビについてもほとんど投稿のない今のうちにルールを作るというのもありかもしれません。

そうそう、掲示板への迷惑書き込みへの対策を考えてます。
別にうちは今迷惑書き込みは受けていませんが、まあ、迷惑書き込みに対する対策はあるに越したことは無いと思うので。
アイディアとしては、自動書き込みプログラム防止のため、フォームの名前をランダムにする。
もちろん完全にランダムにしてしまうとまともな書き込みさえも何がなんだかわからないことになるので、もちろんある程度の法則性は持たせておきます。
それと、NGワード機能。
以前使っていた改造掲示板ではNGワードが含まれていると機械的に投稿を拒んでいましたが、今度は、とりあえず保存しておいて、NGワードを含む場合は管理人がチェックしてOKを出すまで見られないようにします。

火の鳥

爆ボンのフレアバードとグレッグのページを作りました。
いや意外や意外。フレアバードって気絶させて持ち上げることができるんですね。
しかも敵にも問答無用でダメージを与えたりして、以外に面白い性質を持っていたりします。
細かいところもきっちり作られているんですね。

ErrorSafeのアホタレ

今回のNeoMuplはリストにファイルを追加するときの挙動を改善。
いったん余分めに配列を用意して配列の拡張を減らすようにしました。
今考えるともっとよい方法がありそうだったので今回はアップしていませんが約五千曲で3秒と、まあまあよさそうな結果です。
もっとも、追加処理ができるまでに、ファイルの受け取りそのものにかなり時間がかかって、それはVBの問題であってこちらじゃ解決できなかったりするんですが。

アキヤメのレゴのページを作りました。
今回は4種類紹介です。
愛夢以外には実は名前も設定もなかったのですがWWW公開用に名前と設定を付けてみました。
ちなみによくある車のほうは実際に昔遊んでいたころの設定を使ってます。

今日の画像は迷惑ヤローの主張。
ある掲示板に入ろうとしたらいきなり飛ばされてあれよあれよという間に怪しいチェックが入りました。
「エラーは見つかりました」とか「データ損失ができなくなります」とか、怪しさ満点です。
とりあえず画像に載っているサイトにはアクセスしないように。
そして間違ってもそんな迷惑ヤローの言うセキュリティソフトなんてインストールしないように!!

1145717598.png

VBCHECK

こっそりパネルαとじゃんけんαを更新ですよ。
VBのコードの問題点を指摘してくれるソフトをたまたま見つけたので、あたっている部分だけ修正してアップしました。
ついでに著作権情報や一部アルゴリズムも変更しておきました。

そのソフトを見つけるきっかけとなったのがNeoMupl。
NeoMuplの動作が極端に遅いということ、そして解決法は先日書いたとおりですが、ソートアルゴリズムや文字列-データ対応のプログラムなんかはいかにも誰かが作っていそうだったので手近なところでVectorで探していたら、目的のものは見つからずに他の便利そうなソフトが見つかったというわけです。
結局ソートアルゴリズム周りで楽はできそうにないので再びC#も視野に入れ始めたのですが、現段階の問題として、VC#2005がExpressEditionだからなのかあるいはC#だからなのか、エクスプローラからのドラッグ&ドロップができなくて、一歩踏み出せずにいます。
これさえあればもう迷わなかったんですけどね。
C#でエクスプローラからのドラッグ&ドロップの方法を模索しつつVBで効率のよいアルゴリズムを作るとしましょう。

そうそう、アキタラヤメル企画にレゴのコンテンツを追加しようと思います。
今レゴでオリジナルの作品がいくつもあり、それらを分解する前に作っておいたLDrawのデータがあるのですよ。
うちのキャラのいくつかはレゴで作ったものが元ネタだし、こういうのがあってもいいと思うのですよ。

時間の問題

NeoMuplに新たな問題ですよ。
まずソートプログラムがO(n2)の処理時間なので数が多くなるとソートが圧倒的に遅くなること。
予想はしていたんですが項目が数千個になるとかなり時間がかかりますよ。
そしてもう一つ、こっちのほうが深刻です。
リストのロードとセーブに時間がかかるんです。
計算したらやはりO(n2)の処理時間。
項目のソートに関してはクイックソートを使うことで、ロードとセーブについては読み込んだ結果の参照が遅いということがわかっているので読み込んだ時点で読み込み結果をソートして、ソートされていることを前提とした検索で目的のデータを探すことにすれば、いずれもO(nlogn)の処理時間に抑えることができそうです。

<前 次>