NamazuのXULフロントエンドNaMoz

今最初に作ってみようと思っているのは、全文検索エンジンNamazuのXULフロントエンドです。
この世界には既にTkNamazuというTcl/Tkで書かれた使いやすいソフトがあるのですが、比較的簡単に実現できそうな例として、また、拡張していけば、TkNamazuよりも表現力の高いものが作れるかと思い(というのも、Mozillaでは、すばらしい表現力を持つGeckoレンダリングエンジンが簡単に利用可能だからです)、とりあえず作ってみることにしました。
ソースおよび、開発過程を公開、紹介しようと思っていますので、XULによってアプリケーション開発などをしてみようと思われている方々の参考にでもなればと思います。
ライセンスですが、さしあたってはフリーライセンスで配布するつもりです。NamazuはGPLのソフトウェアですが、Namazu本体を含まなければGPLの影響をうけない…と思うので(ちゃんと勉強しないとだめだって…)、将来的にはMPLあたりにするかもしれません。

おおまかな流れ(大まか過ぎるので必要に応じて変更します(^−^;;

  1. 機能の実現(1)
  2. 機能の実現(2)
  3. ユーザインタフェイス設計(は適当にやるかも)
  4. 実装
  5. 一応の完成!?

NaMoz-1. 機能の実現(1)

個人的には、とりあえずウィンドウ作って作業を始めることが多い粗忽似非プログラマなのですが、なによりもまずすべきことは、これから作ろうとしているアプリケーションがその環境で実現可能であるか考察することだと思います。
まあ、考えてみれば当たり前ですが、せっせとメニューやボタンやテキストエリアを配置してさあ、機能を実装するぞ!となったときに、実際に作ろうとしても、どうやって実現すればいいのか分からない、もしくは実現できない、となったらそこまでの労力は水の泡になります。
最初、LinuxでTkNamazu使っていて、なんだかTcl/Tkのインターフェイスが自分になじまないと感じたのが作ろうと思ったきっかけなんですが、実現できそうだという見込みは、piroさんのContextMenu-Extensions for Netscape 6 & Mozillaでも有名ですが、oliverさんのExecute Applicationsがヒントになりました。
外部アプリが起動できれば、Namazuの実行は実現できそうです。
そして、Namazuを実行するだけではダメで、Namazuからの出力を受け取る方法を考える必要があります。
今のところNamazuが動くプラットフォームがある程度限られているようなので、最悪でも

という方法でなんとかはなりそうです。
さて、実現の目処は立ったようです。しかし、もっといい方法があるかどうかは調べておいて損は無いでしょう。
とやっていると、時間になりましたので、具体的なところはまた次回に。

NaMoz-2. 機能の実現(2)

前回はリダイレクションで出力を考えていましたが、改めてnamazuのコマンドラインオプションを見てみたところ、ファイル出力オプションがありました。
これならば、nsIProcess.run()でも普通に呼び出せそうです。
本当は、プラットフォームに独立な形でユーザが確実にファイルを作れる場所(すなわち、ユーザプロファイルディレクトリの中)に一時ファイルを作りたいのですが
その方法は一応わかっているので、後回しにすることにして、とりあえずLinux上で動くように
/tmp/namoz_result.txtに出力するようにしました。
そして、<browser>タグにidをつけてブラウザにそのファイルを表示すれば、とりあえず検索結果が見られるでしょう。
というか、結局のところ、機能の実現が可能か実験するためちまちまとウインドウ作って、とりあえずのUIを載せて、実装してみました。(前回言ってたことと違うような…(ぉ))

今のところ、まだLinuxでしか実験が成功してないので、次はWin32で動かしてみるつもりです。
そこまでいけば、後はひたすらUIと足りない機能を追加していけばいいだけのはずです。
足りない機能というのは、URL、パスに自動的にリンクはったり、単語検索であったり、この辺は他にも色々例があるので、実現は可能だと思われます。
というわけで、今回はここまで。ではまた来週(嘘

スクリーンショット


Copyright (C) 2002 ゲルソフト. All Rights Reserved.