山根さんとこで紹介されているようにKKJConvをBlackBerryで稼動することが出来ました。
これはMIDPのプログラムをBlackBerry用にパッケージしなおしただけのものです。ソースとかは一切必要が無いので、手持ちのMIDPプログラムをBlackBerry用に変換するのは難しくはありません。もっとも、山根さんの記事にあるようにKKJConvが不可解な落ち方をしているのでBlackBerry特有の不具合みたいなものは発生するかもしれません。
[ 必要なツール ]
BlackBerry Developers -> DownloadsにあるJDE Component Package
これはパッケージ作成に必要なツールだけが含まれています。フル開発パッケージであるBlackBerry JDEでも当然OKでしょう。
[ パッケージの作成方法 ]
変換したいMIDPのjarファイルとjadファイルを用意します。jadについてはjarに含まれているMANIFEST.MFから何とか作ることも出来るでしょう(ここでは詳細は省きます)。
jarを元にcodという拡張子のパッケージを作ります。
– スタート->Research In Motion->BlackBerry JDE Component Package->JDE Components Command Promptを開きます。
– 以下のコマンドを実行。
rapc import=.\lib\net_rim_api.jar codename=KKJConv -midlet jad=y:KKJConv.jad y:KKJConv.jar
これはCommand Promptを開いた状態のままでyドライブにjarとjadがある場合の例です。
これにてカレントディレクトリーにKKJConv.codが出来上がればOKです。
KKJConv.alxファイルの作成。
BlackBerryにcodを導入するにはalxファイルが必要です。alxの中身はテキストでjadと似ています。以下にKKJConv用にでっち上げたalxファイルを書いておきますのでjadと見比べて適当に作成すれば良いと思います。
<loader version="1.0">
<application id="KKJConv">
<name>KKJConv</name>
<description>KKJConv</description>
<version>0.72</version>
<vendor>Kozak N'sLAB</vendor>
<copyright>Copyright (C) 2006 by Nobumichi Kozawa</copyright>
<fileset Java="1.0">
<files>KKJConv.cod</files>
</fileset>
</application>
</loader>
私は、まだエミュレーターも動いていないので実際のテストは全て山根さんにお願いしています。山根さんありがとうございました。
BlackBerry自体に色々と未知の部分も有ります。この手順を試す場合は、くれぐれも自己責任で行うことをお願いします。
Peek_Dogさん、JackOneさんがレポートされていた問題の修正版です。(多分、直ってると思います^^;)
[ バグ修正 ]
– 辞書リソースのクローズをミスしていました。そのため漢字変換を多数繰り返すとメモリー・リークもしくはリソースのオープン限界数超えになり、辞書引きが出来なくなってしまいます。そこまで行くとキャッシュに入っている文字しか変換できなくなります。この現象はKKJConvを再起動すれば解消します。 -> 辞書のクローズが確実に行われるように修正。
– キャッシュの入れ替えロジックをひとつ組み忘れていたためキャッシュ内の優先順位が正しくなかった。-> その他、効率が悪い部分も含めて大幅に書き直しました。
– キャッシュ内の検索を効率よくするためハッシュコードを作っていますが、問題があって同じ語が複数キャッシュに入ってしまうことがあった。-> ハッシュコードを作るルーチンを修正した。現在、お使いのキャッシュの中に重複したエントリーが入っている可能性がありますが、いずれ淘汰されていきます。
Read the rest of this entry
最後の最後にバグが見つかり一度はあきらめて寝ようと思ったところで悪いところを思いつき慌ててパッケージにしましたバージョンのKKJConv v0.7です。何時もにましてテスト不足ですので前のバージョンに戻せる用意をしてテストに望まれることをお願いします。
今回の目玉は辞書キャッシュの搭載により、少しだけ賢くなったことです。世の中のFEPの学習機能がどうやって実現されているのかは分かりませんが、とりあえず思いついたのは変換結果をキャッシュすることでした。これにより過去の変換結果を素早く呼び出そうということです。無論、キャッシュ内では一番最近使ったエントリーが高い優先順位を持つようになっています。小さなデバイスが対象ですので無理をせず100エントリーもしくはUTF-8換算で読みと結果を合わせて2KB以内という規模でキャッシュを搭載しています。
Read the rest of this entry
週末になるとKKJConvのリリースをしていますが、今週はちょっと微妙なので現状報告と予定について書いておきます。
現在、学習機能(正確には辞書キャッシュ)を実装中です。ほとんど出来ているのですが、最後の詰めでちょっと小休止中です。これがうまく行けば明朝までには次のリリースを出します。それを過ぎると、水曜くらいまで時間が取れそうに無いです。
[ その他の変更予定 ]
– UIQでコピペ画面に改行が反映されない。
かわ。さん、ピードラさんのご協力のおかげで解決策が出来ました。次のリリースに反映予定。
– 「お世話になります」みたいな変換を簡単に。
うめさん、Peek_Dogさんから話があって、なるほどと思いました。頭に「お」が有る場合2文字めからの辞書検索を行います。これは実装済みです。
– E61での記号入力。
なかなか進んでいません。とりあえず記号入力パネルみたいなもの(E61のChrキーで出るようなやつ)を作ろうとしています。キートップに合わせた入力は、最後になってしまうかも、、、
– UIQでの文字種変更。
これも、まだ具体的な案はありません。適当なキーに文字種変更の役割をふるというのが現実的と考えています。
– ユーザー辞書。
作れるかどうか、まだ不明です。辞書登録の方法とか課題多し。
– 大型辞書。
今のより数倍大きい辞書もテスト的には搭載して動くことを確認しています。ただしレスポンスは悪いです。選択肢の一つとして、そういうパッケージも用意しても良いかも。
– ドキュメント。
遅々として進まず。
最初、いくつか書き忘れていたので追記(まだ忘れていることもあるでしょうね)、、、
– 部分確定機能。
これが出来ると学習機能との組み合わせで、単漢字の組み合わせを単語としてキャッシュできるので使い勝手がかなり向上するのですが、まだ具体的な構築方法については考えがまとまっていないです。
– 漢字入力画面での編集機能。
これは、ゴリゴリとコードを書けば出来そうです。
私事ですが月曜から日本に2週間ほど一時帰国します。前半は作業時間がかなり取れそうです。後半は家族サービスのため作業はあまり出来ないかもしれません。
私は日本に帰ると翼をもがれたモバイラーになるためブログのコメント、メール等のレスポンスが悪くなると思いますのでご理解をお願いします。中国に居る間はブログのコメントが付くとプッシュメールで、すぐに内容が分かるのに、日本では音声だけの携帯電話とダイアルアップのネット接続という生活になってしまいます。さすがにダイアルアップだけではキツイのでAIR-EDGEレンタルを計画中。国際慢遊契約もないのでSMSも受け取れないなぁ、、、
KKJConv v0.62をリリースします。今回は、細かい変更とE61以外の機種向けの対応が主です。
E61向けの記号入力も自分のE61のキートップに合わせた入力の対応中です。怪しい香港版E61では、いくらか記号入力を試すことも出来ます。
変更点
– M600, Freedom miniキーボード等のエンターキー対応
– 漢字モードでのスペース入力(全角、E61ではshiftを押した後にスペースを押すと半角スペースになります)
– かな->カナ変換で「の」が「ネ」に変換されていたので修正
– M1000で漢字変換が出来ないことへの対応(辞書をUTF-16LEからUTF-8に変更した)
– 記号を全角変換するときの候補が沢山出すぎていたことに対する対応
– 大文字の英字でローマ字変換がうまくいってなかったのを修正
– 単語の最後がnのまま変換できるようにした(例、shainを変換すると「社員」になる)
– 現在入力中の文字数を表示するようにした
– E61の漢字モードでShiftお押したままスペースバーの左の2つのキーで「」を入力出来るようにした。
– 漢字変換の方法を少し変えました(詳しくは後述)
ダウンロードは以下のurlです。
http://www.nkozawa.com/html/E61MyProgList.html
Read the rest of this entry

自分のブログで、まだ一度もKKJConvの画面の紹介をしていないのを思い出しました。
そこで手抜きなコザックはreveil師匠の作ったアニメーションGIFを盗用することにしました。みごとに変換の様子が再現されています。
盗用と書いていますが、一応事前に連絡しています(一方的に^^;)。
みなさんお待たせしました。やっと漢字変換が出来るようになりました。漢字変換部分はベータと呼んでもいいかも知れませんがE61の記号入力とか手付かずのままなのでアルファ版といったところです。
いまだドキュメント無しです。
前回からの変更点(忘れているものもするかも)
– 漢字変換機能搭載
– ←キーをバックスペースとして使うのを止めた
– ↑キーをシフトとして使うのを止めた
– シフトを押した後に文字種のボタンを押すと文字種を逆順で送る(E61だけしか効かないと思います)
– 機種判定を自動で行いE61にしか意味のない数記モードを他機種では表示しないようにした。
Read the rest of this entry
MIDP版漢字入力(まだ漢字は無し)プログラムKKJConvのメインテナンスバージョンv0.51を作りました。
修正した問題点は以下の通りです。
– nyuなどと入力すると最初のnが「ん」に変換されてしまう。
– 漢字入力画面が一杯になった後に「クリアー」をかけると、その後まったく入力できなくなる。
– E61のシフトキーが効かない
– M600iのバックスペース・キーが効かない。
– シフトキーにもキーリピートが掛かっている。
– 全角スペースが入力できない。
– 漢字モードのスペースが半角である。
– E61で漢字モードで長音を入力するすべが無い。
上の修正と関連しますが、新しいキーの割付は以下の通りです。
– Clearキー、M600iのバックスペースをバックスペースとして扱うようにした。
– Callキーに’-‘を割り当てた。これによりE61の漢字モードで簡単に長音が入力できます。もうニューヨークって入力しようとして困ることはありません。
ダウンロードは前と同じ以下のurlです。
http://www.nkozawa.com/html/E61MyProgList.html
その他の説明は昨日の記事をご覧ください。
週末になり、まとまった時間をコーディングに費やすことが出来ました。とりあえずローマ字変換だけ出来たのでpreview版として公開します。タイトルには反しますが、まだ漢字の入力は出来ません。
E61のキーボード(ちょっと特殊なんです)に特化したプログラムですが、その他のフルキーボード搭載機種でも稼動する可能性は大きいと思います。MIDP1.0が動く機種でフルキーボード搭載の機種をお持ちの方は、試していただけるとありがたいです。
MIDPの独立したプログラムであってFEPではありません。ちょっと回りくどい操作を強いられることをお許しください。将来的にはFEPが作れれば良いのですがS60のプログラミングの世界は、全くの未知の世界なので自分にも作れるのかどうかまだ分かりません、、、
Read the rest of this entry