S2Robot

ここ数日取り組んでいたことなのだけど、方向性が見えたのでSeasarにプロジェクト追加申請をしてみました。S2RobotとはWeb巡回ロボット(クローラー、スパイダー)を構築するためのフレームワーク(ライブラリに近いかも)です。

今まで、ポータル案件で話を進めると、全文検索の話もよくされて、対応に悩んでいたので、そのうち、Solr ベースで何か作ろうと思って、1 年以上経過している気がする。近頃は、Solr まわりにも触れる機会があったり、そんでもって、Apache の Droid を調べてみたりと(これはまだ使える気がしないのだけど)、いろいろと模索しながら経験値を上げていた。そんで、この手のロボットって、たとえば、作ったサイトのリンク切れチェックとか、サイト内のデータ収集とか、画像など特定データファイルの収集とか、いろいろな用途がありえるのだよね。つまり、これらのことが簡単にできれば、結構、いろんな場面で使うことが可能かと(Webでやることって多いし)。というわけで、それらのことができるようなWebロボットのフレームワークを作ってみた(まだ、完成はしてないけど、GWが終わる頃にはできるかと)。

仕組み的には、dicon に S2Robot を書いて実行すれば指定したURLから辿っていく感じ。アクセスしたURLは指定した Transformer インタフェースのインスタンスで処理する。つまり、Transformer を実装したクラスを用意すれば、HTMLだろうが画像だろうがその URL のデータを自由に処理できる感じ。あとは、DB も URL の保存とかに使うから、DBFluteも使っておく。DBFlute の Maven プラグインも使っているけど、pom に情報を書いておけば Maven でダウンロードからソースの生成までできるので楽チンだ。そんな感じのものですので、よろしくお願いします~。

Google Appsを利用

複数のメールアドレスの管理を個々にやっていたけど、今回、ドメインを新たに取得して、Google Apps を利用することにした。ドメイン自体は、livedoor で取得したけど、その管理画面で MX の設定がいまいちよくわからず(できるか疑問)、MX の解決は自前 DNS で Google Apps に投げるようにした。そして、無事に独自ドメインでGmailを利用することができるようになったので、管理をそこに集約してみた。今のところ、大きな問題がないけど、署名が複数から選んで利用できないことと、ラベルが複数付いていると一覧で件名が見えない、ということが気になっている。まぁ、引き続き利用していこ。

dbflute:replace-schemaへの対応

ある文字列きたら、キー入力を得て、y を返そうかと思ったら、Linux だと、y or n の文字列がくる前に入力待ちになっているみたいで無理っぽい。というわけで、事前にキー入力で y or n をチェックして、毎回 y を渡すように変更で対応。こんな対話的な自動入力をやると、expectj とか思い出すな・・・。