2009年04月03日

Debian GNU/Linux device driver check & report version 2.0

「lspci -n」の結果を貼り付けるだけでLinuxドライバの対応状況がわかるWebサービス、「Debian HCL - Debian GNU/Linux device driver check page」について、一昨日から懸案の改良に着手しました。

これまでのものは結果の表示後に結果投稿した先はwilikiに送っていたのですが、マシン名をずらずらと並べているだけで探すにはわかりにくく、調査ページと別々になっているためにいまいち有用性の低いものとなってしまっていました。

今回のバージョンでは下記のような改良を施しました。皆様の情報をお寄せください。

  • ドライバ調査と報告データのページを統合。相互の行き来がずっと楽になりました。
  • ベンダごとのツリーで、ユーザから報告されたデータを表示。より見易い形で情報にアクセスできるようになりました。URLはベンダ/モデル という構成にしており、今後検索エンジン経由に探査されることで検索をそちらに任せられるようになることを期待しています。
  • 国際化作業の簡易化。メッセージの国際化にgettextを使用するようにしたため、扱いやすいpo形式で翻訳作業が可能です。現在、英語、日本語、ポーランド語、イタリア語、フランス語、スペイン語(アルゼンチン、メキシコ)、ドイツ語、ポルトガル語に対応しており、ブラウザの言語設定に基づいて表示されます。手動選択も可能です。

ここ最近読んだ書籍から学んだいろいろなことを実装に反映してみました。



/

この書籍でプレースホルダ+トランザクションの有用性を再認識した気がします。ちなみに編集組版を担当してたりします。



/

監訳なので手前味噌っぽいですが、これは本当に本当に良い本です。問題のまったく出ないエンタープライズサービスというものを作るというのは不可能だけれども、もし問題が出たときにどうすればそれを最小化できるかということに重点が置かれています。主にJava言語でのお話が多いですが、考え方自体は言語・サービスによらず通用すると思います。何より文章がとても美しい本です(レビューアも豪華です)。本書のプラクティスからは、サーバの負荷を上げないためのキャッシュ活用。各ページのコンテンツはDBのデータから静的に作るようにして、軽量なeRubyページで取りまとめと翻訳を実行させています。投稿されたデータもすぐにデータベースに反映せず、キューに入れてバッチ処理します(なぜかDBIのトランザクションが変になることがあるのですが…)。キューの処理はcronで半自動です。



/

本アプリケーションはRestfulではないのですが、WebアプリケーションにおけるサービスベースのURL構成概念を参考にしました。ベンダとモデルからなるURLは、Apacheのmod_rewriteを使ってeRubyのパラメータとして渡しています。書籍のほうはおもしろいところもあるんですが、わりと退屈なところも多いです(誤字もちらほら)。4ページくらい読んでは寝る、の繰り返しです…。

今後の改良予定は下記のとおり。ぼちぼちとやっていくつもりです。ご意見などあればお寄せください。

  • キューの半自動処理をもっとインテリジェントおよび簡易に
  • ロゴを今の適当にgimpで作ったのからもうちょっとちゃんとしたものに
  • AJAX使ってなにかできないか。登録まわりのクライアント側チェックコードも必要
  • ブラウザ言語設定以外での言語選択方法の提供。クエリパラメータは面倒なので、Cookieが今のところ有望→DONE
  • ボトルネックとなっているキャッシュ生成の時間短縮→ほぼDONE
  • 国際化強化(英語blogやdebian-1i8nなどで宣伝予定。その前にdebian-l10n-englishで直してもらったほうがよさそう)→進行中。呼びかけでけっこう増えた