Namazu の検索結果を RSS に! ― 2006年03月25日 12時54分15秒
ここのところ Search-Namazu で遊んでいるので、何か作ってみようと思い、Namazu の検索結果を RSS で出力する rssnmz.cgi というものを作ってみました。
CGI パラメータ query に検索語(エンコードする必要はあるが)を指定すると、検索結果が RSS で得られるというもの。
blog に貼り付ける RSS リーダー に仕込んで検索結果を表示すると面白いかもしれない。 例えば、将来は
- query=+uri: で日付順にソートすると、更新ページリストの表示が可能
- query=+uri: でアクセス数順にソートすると、人気のページリストの表示が可能
- 検索語トップ10の表示
- その他
といったこともできるでしょう。
Search-Namazu の機能的な制限により、できることが限られますが、そのうち公開します。 (よりしっかりしたものが必要なら C 版で作れば良いわけだし。)
rssnmz.cgi と同じディレクトリに .rssnmzrc という設定ファイルを用意し、そこでインデックスの位置やReplaceの指定を行うことにします。 現在は query を CGI パラメータで渡していますが、.rssnmzrc で指定する方が良いのかもしれません。 その代わり、rcfile の接尾語を CGI パラメータで渡して、.rssnmzrc.xxx を読み込むようにして切り替えられるようにしたいと思います。 これは、namazu.cgi の欠点である別の .namazurc を使いたい場合は、別ディレクトリに namzu.cgi と共に置かなければならないといった問題を避けるためです。
Namazu による RSS rssnmz.cgi 試運転開始!! ― 2006年03月26日 02時27分47秒
テストをかねて rssnmz.cgi の試運転を開始しました。
CGI パラメータなしで呼び出すと、日付順に全件表示モードで出力するようにしました。ただし、デフォルトは先頭4件のみ。
そうすると、検索結果の表示という意味からは外れ、単純な RSS フィード出力と同じ動作になりました。 それではということで、サイトの RSS 出力に rssnmz.cgi を使うようにしてみました。 サイトは、何らかのツールで RSS フィードに対応しようとは思っていましたが、Namazu で対応するとは昨日までは考えていませんでした。
RSS 出力のためだけに Namazu を使うのは少々オーバースペックな気はしますが、ちょっと面白い例かなと思います。
今のところは goo RSSリーダー ウェブ版での動作確認のみです。
OpenSearch にも対応したつもりですが、テストする方法が分からないので、まだ未確認です。 (goo RSS リーダーは OpenSearch には対応していないみたいです。あるいは rssnmz.cgi の OpenSearch モードの出力にバグがあるか。)
rssnmz.cgi の OpenSearch 対応 ― 2006年03月26日 10時14分20秒
OpenSearch 対応はしたものの動作確認ができず困っていましたが、 A9.com に登録して確認することにしました。
ユーザー登録後にサーチエンジンの登録が可能となります。また、ここでプレビューができました。登録前に動作確認ができたので、最初からここで確認すれば良いわけです。
動作確認中にいろいろと不具合が見つかり、結局ここでデバックしていました。うまく動作するようになったので、ようやく登録です。 サイトのアイコンを作ったりもしました。
goo RSS リーダーでうまく動かなかったのは、rssnmz.cgi の OpenSearch モードにバグがあったからでした。デバッグ後には通常の RSS リーダーでも RSS 2.0 モード、OpenSearch モードのどちらでも表示することができました。
rssnmz.cgi は元々 OpenSearch のような使い方を発想して作ろうとしていましたが、OpenSearch の方がよく考えられたシステムでした。(当り前か) また、普通の RSS フィード出力としても使えるとか、作っているうちに世界が広がってきたので、単純なプログラムの割には楽しめました。
MeCab 0.90 リリース ― 2006年03月27日 01時44分08秒
Namazu for Windows 2.0.16 ダウンロード数とインストール数に大差あり ― 2006年03月27日 09時42分08秒
3/12~3/27(本日)までの約2週間の
nmz2.0.16.001-win32.zip のアクセスログから次のようなことがわかり
ました。
[リクエストされたページ]
1. /public/nmz2.0.16.001-win32.zip 725
2. /PPMPackages/800/NKF.ppd 193
3. /PPMPackages/800/index.html 187
4. /PPMPackages/800/File-MMagic.ppd 175
5. /PPMPackages/800/Text-Kakasi.ppd 173
6. /PPMPackages/800/x86/nkf.tar.gz 145
7. /PPMPackages/800/x86/Text-Kakasi.tar.gz 142
8. /PPMPackages/800/x86/File-MMagic.tar.gz 139
リクエストされたページは、nmz2.0.16.001-win32.zip が 700 件ぐらい、
PPD は 170件ぐらいでした。
[ダウンロード数]
1. /public/nmz2.0.16.001-win32.zip 605
2. /PPMPackages/800/x86/nkf.tar.gz 145
3. /PPMPackages/800/x86/Text-Kakasi.tar.gz 142
4. /PPMPackages/800/x86/File-MMagic.tar.gz 139
5. /public/nmz2.0.15.004-win32.zip 53
6. /PPMPackages/800/x86/Search-Namazu.tar.gz 19
ダウンロード数は、nmz2.0.16.001-win32.zip が 600 件ぐらい、
PPD は 140件ぐらいでした。
7人に1人は nmz2.0.16.001-win32.zip のダウンロードの途中でやめ、
17人3人は PPM のインストールの途中で止めたということでしょうか。
Search-Namazu も 19件ダウンロードがありました。
[ブラウザ毎のセッションのドリルダウン]
1. Internet Explorer 623
2. Googlebot 417
3. Mozilla Compatible Agent 246
4. Mozilla 181
5. ppm 141
6. msnbot 35
7. Opera 25
ppm から 140 件ぐらいアクセスがありますから、先の内容とあわせて
おそらく ppm-inst.bat でインストールを試みた回数は 140 件ぐらい
だろうと思われます。
[リファイラ]
1. (no referral) 1,197
2. www.namazu.org/pipermail/namazu-win32-users-ja/2006-
March/001203.html
410
3. www.namazu.org/pipermail/namazu-win32-users-ja/2006-
March/001198.html
28
4. google.co.jp/search 27
5. www.namazu.org/pipermail/namazu-users-en/2006-
March/000184.html
24
6. namazu.asablo.jp/blog/ 16
namazu-win32-users-ja からは 410 件、namazu-users-en は 24 件でした。
先の内容から nmz2.0.16.001-win32.zip は 700 件ほどのリクエストが
あったので、260 件ほどは他(メーリングリストや、ブログとか)のサイト
からアクセスしたものと思われます。
namazu-win32-users-ja は MailMan のアーカイブからのアクセスですが、
www.namazu.org からリンクしているので、この数になっているのでしょう。
英語環境でインストールされた人はごくわずかだということですね。
(先の24件は MailMan のアーカイブからのアクセスですので、直接
namazu-users-en のメールからアクセスした数は含まれていません。)
nmz2.0.16.001-win32.zip をダウンロードした 600 件のうち、
PPD をインストールしたのが 140件ぐらいということは、ほとんど
ダウンロードだけしてインストールしなかったと考えるか、
PPM のインストールをしていないということでしょうかねぇ。
何にしても Windows 版の開発をやめてもいいかなと思うぐらいに
数としては随分と少ないようです。
nkf 2.0.6 チェック ― 2006年03月28日 07時35分38秒
EUC-JP UNICODE
0xA1F1 U+00A2
0xA1F2 U+00A3
0xA1EF U+00A5
0xA1F8 U+00A7
0xA1AF U+00A8
0xA2CC U+00AC
0xA1EB U+00B0
0xA1DE U+00B1
0xA1AD U+00B4
0xA2F9 U+00B6
0xA1DF U+00D7
0xA1E0 U+00F7
0x8FA2B1 U+00B8
0x8FA2B4 U+00AF
0x8FA2C2 U+00A1
0x8FA2C3 U+00A6
0x8FA2C4 U+00BF
0x8FA2EB U+00BA
0x8FA2EC U+00AA
0x8FA2ED U+00A9
0x8FA2EE U+00AE
0x8FA2F0 U+00A4
0x8FA9A1 U+00C6
0x8FA9AC U+00D8
0x8FA9B0 U+00DE
0x8FA9C1 U+00E6
0x8FA9C3 U+00F0
0x8FA9CC U+00F8
0x8FA9CE U+00DF
0x8FA9D0 U+00FE
0x8FAAA1 U+00C1
0x8FAAA2 U+00C0
0x8FAAA3 U+00C4
0x8FAAA4 U+00C2
0x8FAAA9 U+00C5
0x8FAAAA U+00C3
0x8FAAAE U+00C7
0x8FAAB1 U+00C9
0x8FAAB2 U+00C8
0x8FAAB3 U+00CB
0x8FAAB4 U+00CA
0x8FAABF U+00CD
0x8FAAC0 U+00CC
0x8FAAC1 U+00CF
0x8FAAC2 U+00CE
0x8FAAD0 U+00D1
0x8FAAD1 U+00D3
0x8FAAD2 U+00D2
0x8FAAD3 U+00D6
0x8FAAD4 U+00D4
0x8FAAD8 U+00D5
0x8FAAE2 U+00DA
0x8FAAE3 U+00D9
0x8FAAE4 U+00DC
0x8FAAE5 U+00DB
0x8FAAF2 U+00DD
0x8FABA1 U+00E1
0x8FABA2 U+00E0
0x8FABA3 U+00E4
0x8FABA4 U+00E2
0x8FABA9 U+00E5
0x8FABAA U+00E3
0x8FABAE U+00E7
0x8FABB1 U+00E9
0x8FABB2 U+00E8
0x8FABB3 U+00EB
0x8FABB4 U+00EA
0x8FABBF U+00ED
0x8FABC0 U+00EC
0x8FABC1 U+00EF
0x8FABC2 U+00EE
0x8FABD0 U+00F1
0x8FABD1 U+00F3
0x8FABD2 U+00F2
0x8FABD3 U+00F6
0x8FABD4 U+00F4
0x8FABD8 U+00F5
0x8FABE2 U+00FA
0x8FABE3 U+00F9
0x8FABE4 U+00FC
0x8FABE5 U+00FB
0x8FABF2 U+00FD
0x8FABF3 U+00FF
nkf 2.0.6 では、
EUC-JP UNICODE
0xA1F1 : U+00A2
0xA1F2 : U+00A3
0xA1EF : U+00A5
0xA1F8 : U+00A7
0xA1AF : U+00A8
0xA2CC : U+00AC
0xA1EB : U+00B0
0xA1DE : U+00B1
0xA1AD : U+00B4
0xA2F9 : U+00B6
0xA1DF : U+00D7
0xA1E0 : U+00F7
0xFCFC : U+00A6
0xA1B1 : U+00AF
0xA1A4 : U+00B8
この範囲の値は、UNICODE -> EUC-JP -> UNICODE 変換で元の値に戻ります。
また、--fb-xxx で削除されるデータを拾うことができるはずでしたが、うまく機能していないようです。おそらくバグでしょう。
nkf 2.0.6 の --fb-* オプション ― 2006年03月28日 08時06分33秒
U+00A1 U+00A4 U+00A9 U+00AA U+00AE U+00BA U+00BF U+00C0 U+00C1 U+00C2 U+00C3 U+00C4 U+00C5 U+00C6 U+00C7 U+00C8 U+00C9 U+00CA U+00CB U+00CC U+00CD U+00CE U+00CF U+00D1 U+00D2 U+00D3 U+00D4 U+00D5 U+00D6 U+00D8 U+00D9 U+00DA U+00DB U+00DC U+00DD U+00DE U+00DF U+00E0 U+00E1 U+00E2 U+00E3 U+00E4 U+00E5 U+00E6 U+00E7 U+00E8 U+00E9 U+00EA U+00EB U+00EC U+00ED U+00EE U+00EF U+00F0 U+00F1 U+00F2 U+00F3 U+00F4 U+00F5 U+00F6 U+00F8 U+00F9 U+00FA U+00FB U+00FC U+00FD U+00FE U+00FF
0a1,33 < U+0080 < U+0081 < U+0082 < U+0083 < U+0084 < U+0085 < U+0086 < U+0087 < U+0088 < U+0089 < U+008A < U+008B < U+008C < U+008D < U+008E < U+008F < U+0090 < U+0091 < U+0092 < U+0093 < U+0094 < U+0095 < U+0096 < U+0097 < U+0098 < U+0099 < U+009A < U+009B < U+009C < U+009D < U+009E < U+009F < U+00A0 4a38,39 < U+00AB < U+00AD 5a41,45 < U+00B2 < U+00B3 < U+00B5 < U+00B7 < U+00B9 6a47,50 < U+00BB < U+00BC < U+00BD < U+00BE 23a68 < U+00D0
nkf 2.0.6 リリース ― 2006年03月28日 08時12分41秒
nkf 2.0.6 の入手先を書き忘れていました。ここから取得できます。
http://prdownloads.sourceforge.jp/nkf/19481/nkf206a.tar.gz
MD5 : f4b07268b238ac85551e2777fa2c3836
SHA1: be81a8e3322b0c2567a1c38be9f0ba06b4431152
nkf206.tar.gz が最初にリリースされましたが、アーカイブ内の各ファイルのパーミッションがすべて 0777 になっていたので、nkf206a.tar.gz が作られました。 本質的には同じものです。
Re: NKF の UNICODE -> EUC-JP 変換における問題 ― 2006年03月28日 08時29分18秒
nkf 2.0.6 で次のように修正されました。
NKF 2.0.4 NKF 2.0.5 NKF 2.0.6.
I (U+0130) (0x00) 削除 削除
'
y (U+00fd) (0xc0) 削除 削除
-D (U+00d0) (0xc0) 削除 削除
_
E (U+0114) (0x00) 削除 削除
_
e (U+0115) @ (0x40) 削除 削除
'
g (U+0123) (0xc0) 削除 削除
'
O (U+01fe) (0xc0) 削除 削除
^
o (U+01ff) (0xc0) 削除 削除
\ (U+00a5) (0xc0) 削除 (0xA1EF)
(c) (U+00a9) (0x00) (0x00) 削除
(R) (U+00ae) (0x80) 削除 削除
* ここでテストした文字以外で不具合が生じる可能性はあります。
NKF 2.0.5 ではほぼ理想的に変換できない文字が削除されていますが、(c)だけは例外で 0x00 に変換されてしまいます。
NKF 2.0.6 では、理想的にすべて削除されています。U+00A5 が 0xA1EF に変換されるのも好ましい変換です。
NKF の PPM を更新し、2.06 にバージョンアップしました ― 2006年03月30日 01時15分56秒
NKF 2.0.6 がリリースされましたので、NKF の PPM ファイルを更新しました。
http://www.akaneiro.jp/PPMPackages/zips/8xx-builds-only/Windows/
にソースを含めてまとめた zip ファイルを置きました。
ActivePerl ビルド 800番台 専用です。500, 600 番台では使用できませんのでご注意ください。
なお、次の手順で NKF のバージョンアップが可能です。
C:\>ppm ppm> uninstall NKF ppm> install http://www.akaneiro.jp/PPMPackages/800/NKF.ppd -force ppm> quit
- ライセンスはソースのライセンスに従います。
- 予告なく PPM, zip の中身は更新します。


最近のコメント