Mar 28, 2005

IRcat 2.0b1

そんなわけで IRcat 2.0b1 (v2005/3/28)です.形態素解析によるキーワード検索を実装したので, これでCodeWarrior版IRcatとほぼ同等の機能がつきました.ということで, Cocoa flavored IRcat改め, IRcat 2.0の公開です.結局1.0はすっとばしてしまいました^^;;.日本語リソース入れて細かいbug fixをして早いうちに2.0にします. とりあえず一区切りつけないとですしね.あーライセンス文章も入れないとな…. バイナリにも修正BSDライセンスいれて問題ないのかな^^;;

ircat-20050328.tar.gz (source のみ)
ircat-20050328.dmg.gz (バイナリ)

主な変更点は以下の通り.

  • 形態素解析エンジンを用いたキーワードマッチ機能の追加
  • cmd+,/lでセパレタが選択できていた問題の修正
  • partしたチャンネルにjoinした時, そのチャンネルが選択できなかった問題の修正
  • Auto Join Channelが追加できなかった問題の修正
  • メインウィンドウがWindowメニューにでていなかった問題の修正

(以下技術的な話とぐち)

Language Analysis Engineですが, High Level APIがNSUnicodeStringEncodingで出力した文字列のparseをしてくれなくて困りました. 仕方ないのでLow Level APIで実装.Apple Event系はあんまり詳しくないんで結構手間取りました.

始めは NSStringを dataWithEncoding:NSUnicodeStringEncoding で NSDataに変換して[NSData bytes]で渡してたのですが, 何か2bytes 増えてる.なんだろうなぁと思っていると, BOM(Byte Order Mark)でした. ほっといてもいいのですが,Language Analysis EngineはBOMを1つの単語として処理してしまって気持ち悪い.しかもよく考えると, Byte Orderが違うとこの方法ちゃんと動かないよなぁ…ということで, NSStringをCFStringRefに変換してCFStringGetCharacters()でUniCharを取得することにしました.ここらへんだけ思いっきりCarbonです^^;; まぁ仕方ないんですけどね.

NSStringにも getCharactersがあればいいんだけどな…. もしくは Language Analysis EngineがBOMを無視してくれるか….

No comments:

Post a Comment