「ナマライザ」に関する日記(4)

<前 次>

無題

やっぱりジェネリックは使わず地道にGetTypeして中身調べることにしました。

無題

列挙型フィルタの原型ができました。
Enum型とジェネリッククラスを使って。
しかし編集画面はどうするべきか…。

無題

そして日付フィルタも扱えるようになりました!
あとは列挙型フィルタを完成させれば完成です。

無題

数値フィルタの編集もできるようになりました。
あとは、それぞれ専用の編集フォームを持つ列挙型と日付型のフィルタだけです。
もっとも、私が必要としている昨日はすでにそろってはいるのですが。

XML

ナマライザの開発してました。
今日は、文字列の長さに関するフィルタのUIの完成。
XMLからフィルタの復元ができないことがあったので調べてみたら、どうやら空要素だった場合に閉じタグが出てこないことが原因だった模様。
XMLって開始タグと閉じタグの間に何もなかったらひとつのタグにまとめてしまうのですが、XmlReaderではこのまとまったタグを元のふたつのタグとは認識しないんですね。
ちょっと盲点でした。

無題

ナマライザの文字列フィルタをいじってました。
おとといの数値フィルタの機能を継承して、文字列の長さフィルタの機能をつけました。
ユーザーインターフェースは途中で面倒になって放り出してしまいましたが。

無題

更に続いて文字列変換のクラスをアップしました。
三日連続の更新となりましたが、これで連続更新はもう終わりです。
本当はもう一つ作ったものはあったのですが、すでにあるクラスより、あらゆる面で劣化していたため使用を中止しました。
機能を限定して軽くしようと思ったのですが、意外と軽くならなかったのです。

ナマライザもついでに手をつけてます。
今度は数値に対するフィルタを作りました。
これでユーザーインターフェースを作れば更に幅広い、もとい、以前と同等の解析ができるはずです。
でも、文字列関係の強化や、統一的で分かりやすいインターフェースにより、更に使いやすくなるはずです。

無題

ナマライザのコードの中には、数値入力ウインドウやら例外を出さないクリップボードやら、昨日書いた全角半角変換やら、再利用しても便利そうなクラスが結構あるので、適当に公開してみようと思っています。

無題

ナマライザの検索フレーズに全角半角変換を入れました。
個人的な好みで全角英数字は半角に、半角カタカナは全角にしています。
他にも前後に付いた余計なスペースを省いたりしてます。

アンパンマンDBのアニメデータに、初登場キャラの強調表示をつけました。
日付しか見てないので前半のAパートで初登場だった場合は後半のBパートでも初登場扱いになりますが、初登場キャラはその日のうちに再登場することが少ないのであまり気にしないことにしてます。
あくまでも参考程度にということで。

無題

ナマライザの検索フレーズ解析を、GoogleだけでなくYahooやLiveサーチなどにも対応させました。
YahooとかBiglobeはリファラから文字コードが直接的に得られないため文字化けが多くなりますが、それを除けば大方よさそうな感じです。
全角スペースは半角スペースに変換するので、実質的に同じ検索フレーズは同じものとして扱われます。
このあたりは他に大文字小文字の区別をしないオプションもあるのですが、更に全角と半角を同一視する機能や連続したスペースを縮める機能もほしいところです。

無題

以前作っていたコメリストの、たまに画像が乱れる問題、原因が分かりました。
サーバーにリクエストを送って返ってきたレスポンスになぜかURLデコードをかけていたのです。
なので、データに%記号が含まれているとその周りのデータが壊れてしまっていたのです。

ナマライザのほうは、フィルタ編集画面の操作性をどんどん改善していっています。
まだまだ自然な操作に対応し切れていない気がします。

無題

集合フィルタの管理もできて、以前のフィルタ管理にあった機能は出揃いました。
それでいて以前よりずっと高速…のはず。
少なくとも編集のしやすさや全体の見通しのよさは以前とは比べ物にならないと思っています。

無題

ナマライザのXMLからのフィルタの復元処理に問題があったため修正していました。
そして、編集画面もそれなりに形になってきました。
たぶん3月下旬あたりには公開できるようになると思います。

無題

ナマライザのフィルタ編集画面を作っていて、対象のフィルタを直接いじっている今の仕様だと編集のキャンセルができないことに気付いて、急遽フィルタのコピー機能を作りました。
いったん文字列表現に直してから、そこから復元するという方法です。
いずれもっと効率的な方法を作るつもりではありますが。

無題

のんびりナマライザの、フィルタを全部実装しなおしました。
前々から今までのフィルタは無駄が多くて非効率的だと思っていたのですよ。
例えて言うならば、工具の中からプラスドライバーがたくさんほしいのにもらえるのは工具一式の入った工具箱ひとつずつのような、そんなイメージです。
そして、それに伴って使いにくかったフィルタ編集画面も一から作り直しています。
こちらのほうはまだ作りかけで、すでにあるフィルタをツリー表示できるだけの状態です。

そういえば、しばらくNeoMuplをMCI設定で使っていたのですが、以前にも増して不安定になったようです。
DirectMusicだとMIDIを鳴らしていたらその時点で落ちたのですが、MCIだと法則性の分からないところで強制終了になってしまいます。

1235919425.png

無題

NeoMuplをいい加減開発中のところから格上げしました。
というわけで0.24公開です。
とはいえ新規機能のMCI再生は現在DirectMusicとあまり変わらず不安定なので、使うのは控えたほうがいいかもしれません。
エラー処理とかタイトル付け規則入力に関しては本当に強化しているのでいいと思いますよ。

ナマライザのほうもいい感じにできてきています。
今日作ったのは、文字列項目の読み込み容量制限。
要するに、使わない項目まで読み込んでいるとメモリの無駄なわけです。
特にユーザーエージェントとかリファラなんかは長くなりがちなんで、不必要なときは長さ0で読み込まないとかなりの割合が無駄になるんですよ。
もっとも、私が一番気になるのはリファラなんでリファラはめいっぱい読み込むんですが。
後やりたいこととしては、フィルタ編集画面の抜本的な改善とか、検索語フィルタとか、ひとつの項目だけに反応するフィルタとか、フィルタ関連を強化していきたいところです。

無題

ナマライザのGoogleからの検索フレーズのデコード処理がほぼ出来上がりました。
時々UTF-8以外の文字コードがやってきたり普通とは違うエンコードだったりしたのでそのあたりで文字化けが極力起こらないようにがんばりました。
そして、統計を取るときに大文字小文字を区別しないオプションをつけました。

無題

ついに検索語解析を作り始めることができました。
とりあえず現在の状況は、Googleからの検索フレーズをデコードせずに(つまり%XXの形式を元に戻さずに)表示することができます。

無題

ナマライザの統計画面がほぼ以前どおりの機能になりました。
そして速度は圧倒的に高速に。

<前 次>