NoGoodの日記: [かみしゅ!]新たなるバグ 2
ruby 版では問題なく動作しているのだが…
php、パターンマッチング(正規表現の解釈含む)に弱いと見た。
一部のトピックがうまく検出できないという不具合が起きている。
以下に検出できない・できるトピックをサンプリングしてみたが、このデータを用いた原因の特定などは後日。
観測された検出不可能なトピック(観測順)
- アニメ・マンガ(済)
- 携帯通信(済)
- 変なもの(済)
- ハードウェア(済)
- 日本(済)
- プライバシ
- ネットワーク(済)
- ソフトウェア(済)
- サンマイクロシステムズ
- ビジネス(済)
- プログラミング(済)
- Linux ビジネス(済)
- メディア(済)
- バグ(済)
- リンク(済)
- 法廷(済)
- データベース(済)
- 検閲(済)
- ストレージ(済)
- アップル(済)
- 映画(済)
- 暗号(済)
- クリスマス(済)
- ターボリナックス(済)
- アメリカ合衆国(済)
- セキュリティ(済)
- ニュース(済)
- 入力デバイス(済)
- バイオテック(済)
- インターネットエクスプローラ
- 教育(済)
検出できるトピック(観測順)
- 日記
- 音楽
- 宇宙
- 書籍
- X
- TRON
- ロボット
- ノートPC
- スポーツ
- おもちゃ
- spam
- ゲーム
- Debian
- Ruby
- Wine
- インターネット
- ハンドヘルド
- アップグレード
- Java
- Google
- Namazu
- Windows
- スラッシュドット
- Digital
- Perl
- レッドハット
- 数学
- OS
- パテント
- マイクロソフト
- SuSE
- AMD
- KDE
- Linux
- お金
- 政治
- 娯楽
- テレビ
- Mozilla
- SGI
- Linux Mandrake
- enlightenment
- GNU is Not Unix
- GNOME
修正後に新たに検出を確認したトピック(観測順)
- ハードウェアハック
- 電力
- NTT
- スラッシュ
- PHP
- ガンダム
- グラフィック
- UNIX
- コーレル
- Linuxcare
- GNUStep
- Caldera
- Quickies
- Beanies
- Amiga
- Quake
- モニター
- Transmeta
- apache
- スラッシュバック
- スターウオーズ
- Intel
──────────
2005/11/29 19:55:
以下の対策により正常に検出できるようになった(ように見える)
- mb_ereg() は妖しいので使わないようにした
- 代わりに preg_match() を使うようにし、以下の検索式を用いることにした
'/<img.+src="http:\/\/images.slashdot.jp\/topics\/[^"]+".+alt="([^"]+)".+title.+>/'(済)は検出を確認したトピック(大多数のエントリが「日記」のままなので、全部(済)になるまでチェックすることはしないと思います…あと三つだけどな~)。
また、Slashcode 2.2 の頃の日記エントリでトピックが入力されていない場合、正しく"N/A"となることも確認できた。
…いずれ全面的に mb_ereg() → preg_match() 化しよう…
検索式や分割・連結などの条件式も「'」でくくっている式と「"」でくくっている式が混在しているので、「'」で統一したい。
──────────
「かみしゅ!」関連まとめ(サイドバー)
ぱっと見、 (スコア:1)
んー他に何かあるのかなー。
まぁソース見てないんでこれ以上は何とも(ぉぃ
#800エントリおめでとー
Re:ぱっと見、 (スコア:1)
既に php 上のマルチバイト対応パターンマッチング関数(mb_ereg())で一致境界に“年”が混ざっていると正しくマッチングできないという問題が出ているので、このトピック検出にも同じ mb_ereg()を使ってしまっているあたりが敗因かなと。うぉ、もう800ですか。
ありがとうございます。
mobile ID portable_NoGood [slashdot.jp] 併用中