しばらく前に開発の場所がkdeextragearからkdesupportへ移ったtaglib。その1.1がリリースされていました。
変更内容をみると、id3v2系の変更点ばかりなので、ogg/vorbisメインの私にはあまりアップデートする必要性は感じられないかな。とはいえ、id3v2がKDEでうまく使えるようになるなら大歓迎。
ところで、audiocd ioslaveなどでmp3にエンコードするときのid3-tagのバージョンはいまどうなっているんだろう。
私がMP3を使わない理由の一つがid3v1-tagの文字コードの問題もあるので。
以前にちょっと構想を書いていたKDE用エンコード自動認識クラスを制作中。
まだまだ練りは足りないけれど、とりあえずそこそこ形になってきた感じがするので暫定公開。
ライブラリの形になってますが、最終的にはkdelibs/kutils辺りへのパッチとする予定。
もうすこしAPIを検討しながら、kdelibs/khtml/misc/decoder.cppあたりにある関数を取り込んで行きます。
KDetectEncoding, KEncodingDetecterという名前の付け方はなんだかなと自分でも思うのでいい名前の提案を募集中。同時に、APIとその役割についてはもう少し考えておきたい。
後、doxygenあたりの使い方がよくわかってないのでMakefile.am等も含め、その辺はいろいろと作業がいるかな。
今後の予定としては、kdelibs/kutilsへのパッチ化の後、
khtmlをKDetectEncoding classを使うように変更、kdelibs/kateを同様に改造、KTextEditerInterfaceへの自動認識関連の機能の追加、kdebase/kateの改造を行なっていく予定。
暫定パッチだけでも今月中に作りたいところだけど、ちょっと微妙かな。
一通り出来たら KDE本家への提案へ行きます。
ゆくゆくはKMailのtext attachmentでの対応なども行ないたいところ。
KMailで添付されていたdiffファイルを開いたら、Kompareが立ち上がって、ちょっとびっくり。
手持ちのパッチを表示したときのscreenshotを参考に。
なれるまでは表示内容の把握が難しいかもしれませんが、これでパッチを表示させるのって面白い。
これでkonquerorからDnDでパッチを渡せたらもっといいのに。
昨日のエントリーで書いたKMailのAnti-Spam Wizardを試してみた。
CVS-HEADから持ってきたkdepimをコンパイルすると、確かにToolメニューにAnti-Spam Wizardがあるので実行。
ツールのスキャンが終わるのを待って「Next」。ちなみに対応しているのはSpamAssassinとBogofilterだけである。
次に使用するツールを聞いてくるので私はBogofilterを選択。
最後に出てきたチェックリストに全てチェックを入れて、SPAMの移動先を選択してWizardを終了。
念のために、filterの設定を確認してspam向けのルールが追加されていることを確認しておこう。
その後はまずはspamの認識。なぜかいっさい消さずに取ってあったspam専用のフォルダ─のメッセージをすべてspamとしてマークして、「Apply Filter」->「Filter Classify as spam」で認識。
この作業でspamメールが無事仕分けされることとなりました。
ただ、誤認識もあったことから、まともなメールに対して「Filter Classify as NOT spam」も実行しておいたほうが良さそうです。
もうしばらく認識をさせてやってまともなメールへの誤認識がなくなればかなり便利になりそう。
ただ、メール一通に対してbogofilterを一回起動させているようで、メールの取り込みがかなり重くなったのがちょっと残念。
どちらにせよ、しばらく様子見かな。
Kateの日本語自動認識パッチだが、先日時間を見つけてファイルのオープン時にダイアログでencodingを指定できるようにkdebase/kateの方にも修正を加えるパッチを作成してみた。
まだまだ検証が足りていないのとでexperimentalバージョンとしてkdelibs用、kdebase用を公開しておく。両方を当てて、実行してみて欲しい。(kdebase用がいかにいい加減かはパッチを見てもらえれば一目瞭然だが……)
ただし、このパッチでは”Auto”なるencodingが存在するかのように振る舞っており、それに対応せず、encoding()の妥当性をチェックしない環境では動作が保証できないこと、KateのInterfaceとしてはBICパッチとなっている可能性があることから以前のパッチよりもものとしてはいまいちと考えて欲しい。
現在、”Auto”ではなく、””を自動認識かどうかのフラグにしようと変更を行なっているが、正直いうとKTextEditor::encodingInterfaceの変更まで考えておいたほうが実用的だと思う。もっとも、そうなった場合にはQTextCodecのような雰囲気のKDetectEncoding(仮) classがあった方がいろいろとつぶしが効くし、便利だ。となると、どのようなメソッドがあればいいのかを含めて検討した方がいいなぁ。ある程度のめどがつけばKDE-3.3へ向けての提案として出せると思うが。
kdepim-3.2のKMail(KMail-1.6)には「Mark Message as Spam」なる機能がある。ただし、この機能、メッセージを手動でマークできるだけで、それ以上のことはなにもできない。
意味がないなぁと思っていたら、CVS-HEADではThe Anti-Spam Wizardなる機能が実装されているようだ。
kdelibsなどではlibqt-addonなどの関係でもうしばらくはHEADは触るつもりはなかったのだが、この機能のためだけにkdepimだけアップグレードしてみよう。
幸いにも、KDE-3.2以降はkdepimはKDE_3_2_BRANCHでコンパイルできることを条件としてHEADも開発が進むことになっているし。
Kate日本語自動認識パッチ 暫定版で書いたように、現在のKate用の日本語自動認識パッチにはファイルオープン時のダイアログでエンコードを指定しても無視されるというものがある。このダイアログの処理はkdebase/kate/app/の方にコードがあるが、ダイアログ自体はKEncodinfFileDialogをそのまま用いている。
この、KEncodingFileDialogについて若干の検証を行なった。
スペルミスの修正と、JapaneseCodeクラスのコンストラクタのミス、それからいくつかのスタイル的な修正を行なったので、パッチを更新。
これで、KateDocumentに対する変更をなくしたため、パッチとしてもすっきりしたかな。
機能的には従来のものととくに変わらないので、新たに当て直す必要はないでしょう。
KDE_3_2_BRANCHに対して当たる事を確認してます。
とりあえず、そこそこ形になったようなので、暫定公開。パッチとしてはKATE_AUTODETECT_JPを2ヶ所で定義するなど、気になる箇所は残っているけれど、機能的には問題なさそうなので。
立ち上げ時、ファイルのオープン時に文字コードを判定し認識していること、SJISのファイルを修正してセーブしても文字コードが変更されないことを確認。
もともと役にはたっていなかったけど、KateにはEncodingの設定メニューに”Auto”というものがあったため、これをいかせるような形で実装したつもり。View->Set Encodingでコーデックを選択した際にはその文字コードでリロードすることも確認。
既知の問題点としては、ファイルのオープン時にコーデックを指定できないこと。この部分に十分な対処法があるかどうかはまだ不明。
ってか、眠い。今後のパッチの詰めはある程度のフィードバックから検討かな。
BOOKSカテゴリーを作ろうかと思ったけれど、まあ、KDEのままでいいかと。
dot.kdeのエントリーをみて、そういえばとC++ GUI Programming with Qt 3が出たことを思い出す。で、昨日の朝にamazonで注文。在庫もあったため、本日到着。
まだ、パラっとめくったくらいにしか目を通してませんが、サンプルコードの量も多く、英語の得意でない私のような人間でもそれほど苦にせず読むことが出来そう。
とはいえ、この本の目玉は「QT 3.2.1 Non-Commercial Edition for Windows」だろう。まだインストール等はしていないため、ライセンスはきちんと確認していないが、dot.kdeのポストをみる限り、The Open Source Definitionに適合するソフトを作るなら問題はないようだ。
時間のある時にインストールして動かしてみよう。