Category: "Java"

2011/12/24

2010年の上半期に、国際化の開発に協力したOSSプロダクトのひとつに、nixnote(旧Nevernote)がある。

Evernoteクライアントのフリークローンで、Java+QtJambiで書かれていて、プラットホームニュートラルに動く。そのころ、KoedoLUGで、紹介したことがあった。しばらく、開発協力した本人も使うことが無くなっていたのだが、KoedoLUG主宰のはとちゃんが地道に使い続けてくれていることが判明、ちゃんとみないと遺憾な、とgit repositoryをおいかけ直すことに。

ところで、この手のドキュメント管理ソフトウエアでは、全文検索のできがとても重要である。nixnoteは、データ保管には、H2 Database を使っている。H2は、Javaで実装されたオープンソースのDBMSである。

さて、nixnoteでは、設定可能な正規表現 [,\\s]+ で単語を切り分けて、インデックスを作成している。ご多分にもれず、これでは日本語の検索ができない。日本語などCJK言語の単語切り分けは、正規表現では表現できず、形態素解析を必要とするからだ。

さて、H2データベースには、内蔵の全文検索が2タイプあり、ネイティブとLucineによるものがある。Apache Lucineは有名な全文検索エンジンで、これを使うように改良できれば、nixnoteの機能も向上させられそうだ。そこで、H2データベースのLucineによるCJK全文検索をしらべると、H2追っかける日記にて全文検索を使う話が掲載されていた。

ということで、nixnoteのこの部分を改良する人、募集中なのである。(自分でやれ?)はとちゃんが、がんばれ!?

2011/01/16

  13:12:00 by , Categories: Freesoftware and Open Source Software, OpenOffice.org, Java, Ubuntu

Link: http://ubuntuguide.org/wiki/BigBlueButton#Install_BBB_.3C-.3E_Moodle_API

BigBlueButtonは、APIを持っており、CMSなどと連携させることができる。

デフォルトでは、APIのデモページがあり、JSPによる具体的な利用方法を理解することができる。

人気のあるCMSといえば、Joomla!やDrupalがあるし、BBBは教育用途を意図して作られているところもあるので、Moodleも考慮に値するだろう。

このページでは、MoodleとDrupalについて、連携方法を示している。

Drupalとの連携については、
http://drupal.org/project/bbbで、すでにモジュールも用意されている。

Moodleの連携については、 http://www.dualcode.com/bigbluebutton/に、プラグインが提供されている。

活用してみようと思う。

2008/11/23

Link: http://www.fiveflavors.com/mt/pas_mal/archives/2008/02/post_1.html

昨年より、Nokia E61というSymbian OS 9.1/S60 3rd editionベースのスマートホンを使ってきた。ほとんど、PalmOSから乗り換えられるが、2つだけ今ひとつ乗り換えられないアプリケーションが2つある。

一つは、パスワード管理ソフトウエア。Keyring for palmOSを使ってきていて、その代替となるフリーソフトウエアがほとんどない。おしいのは、safeというアプリケーション。ただし、キーの生成機能がない。

二つ目は、辞書引きソフト。これまで、EIJIROWDICの組み合わせで、ちょっと引きたいときに使ってきた。Linux distro上では、EBViewというアプリケーションを使っている。この辞書引きについては、EPWING形式を検索できるアプリケーションがS60上には存在していなくて、そんなQ&Aがインターネット検索をするとたくさんでてくる。MobilePocketというのを使うのが、今のところのworkaroundだが、変換が面倒。それは実は仕方なくて、EPWINGという規格がグローバルな標準ではなく、日本ローカルであって、Symbian OSベースのスマートホンを世界でもっとも出荷しているNokiaやモトローラの市場は、日本だけはその範囲外であったということだ。

EPWING形式を引くアプリケーションは作るのが面倒そうだな、と、思っていたのだが、じつはEBViewは、EB libraryを利用して作られている。そして、eb4jというEB libraryのjava実装があって、EPWING形式へのアクセスはライブラリに任せてしまえそう、ということに気がついた。
そして、このeb4jを使って、辞書引きソフトウエアを作った人がいて、LGPLで公開している。

Javaならば、Nokiaのスマートホンは、CLDC/MIDPアプリケーションを構築すれば、動かせるのだし、複雑な部分はライブラリ上にあるわけだから、GUIつまり、検索キーワードを受け取ってライブラリに渡して、結果をリスト表示する。程度のアプリケーションは、さほど難しくならなそうだな、ということで、作ってみたいとおもったのである

2008/04/21

  00:22:58 by , Categories: SymbianOS, Freesoftware and Open Source Software, Java

Link: http://www.da-cha.jp/?q=node/378

SafeというGPLのアプリケーションの改造を行っている。CLDC/MIDP上で動くJ2MEのアプリケーションだ。メインターゲットは、Symbian OSを採用しているNokiaやMotorolaの携帯電話。

このアプリケーションは、パスワード等の情報を暗号化して、携帯デバイス上で管理するソフトウエアである。類似のアプリケーションで、Palm OSでよく利用されるものに、Keyring for PalmOSがある。

Safeは、対称鍵暗号にIDEAを使用し、パスワードハッシュにMD5を利用している。現在アルファ版のKeyring for PalmOS v2.0を参考に、つぎのことをやろうとしている。

  1. AESを使用
  2. ハッシュにSHA利用
  3. AESの利用に当たっては、Initial Vectorをきちんと使用し、データストアにもIVを保存する
  4. データの構造としてtitle/contentという単純なデータ構造から、title, account, password, note, last modified dateという形にする。
  5. プログラムの構造を整理する

このうち、AES利用やハッシュ、IVの処理あたりを片付けた。さてと、データ構造の変更をかけようとしたら、データ定義、export, data storeへの書き出しなど、多箇所の変更を余儀なくされる状況になった。
これは、プログラム設計がよくないということ。そこで、リファクタリングである。

暗号化されていないデータ要素(element)、その暗号化された要素、データストアへの書き出し(ファイル、XML、GUI)、データストアからの取り込み(ファイル、XML, GUI)といったものを、DecoratorやAbstractFactoryパターンで表現できそうな気がしてきたところで、就寝時間である。