KWIC Finder のリニューアル版の KWIC Finder 4 がほぼ完成したので、beta版を先行配布することとしました。
試用期間は30日あり、11月には正式版の配布とVectorでの販売を開始する予定です。
旧版のユーザの方は是非試用いただければ幸いです。
KWIC Finder のリニューアル版の KWIC Finder 4 がほぼ完成したので、beta版を先行配布することとしました。
試用期間は30日あり、11月には正式版の配布とVectorでの販売を開始する予定です。
旧版のユーザの方は是非試用いただければ幸いです。
KWIC Finderリニューアル作業はほぼ完成に近付いており、現在はマニュアルの作成などリリース準備と最終テストを行っているところ。
前回の報告以後大きく変わったのは、テキスト表示のエディタコンポーネントを、C#のRIchEditBoxから、Azuki editor engineに変更したことである。
KWIC Finderでは、検索に一致したファイルの箇所を強調して表示している。この時にエディタコンポーネントを使用するが、C# の標準部品ではTextBoxとRichEditBoxが利用できる。TextBoxは文字の修飾ができず、テキストのサイズも64Kまでという制限があるので、RichEditBoxを使用するしかない。ところがC# のRichEditBoxは、なぜかCR+LFを内部で勝手にLF 1個に変えてしまうので、検索に一致したファイルのオフセットとRichEditBoxのテキストのオフセットがずれてしまう。また、ファイルサイズの制限がないのは良いが、数百KBを超えると極端に動作が遅くなる。
何か代替になる日本語に対応したエディタコンポーネントを探したところ、Azukiが見つかった。右端で折り返すモードで大きなサイズのファイルを読み込むと流石に遅くなるが、RichEditBoxよりは良好なようだ。他にも行番号の表示の有無や、制御コードの表示の有無など、細かく設定できる。
良質なコンポーネントを利用しやすいライセンスで公開してくださっている作者の方に、感謝したい。
はてなダイアリーが2019年春で終了するということで、はてなブログに引っ越してきました。過去ログのインポートを行ったところ、混雑しているのか数日かかりましたが、移行はうまくいったようです。今後の開発関係のお知らせはこちらのブログで行わせていただきます。
前回の報告後に実現できた新機能をご紹介する。
全文検索について、Hyper Estraierだけにすると告知していたが、Windows Search4.0に対応できることになった。Windows Search はWindows Vista以降はOSに統合されており、マシンの空き時間にインデックスをバックグラウンドで作成している。通常はファイル名だけの検索だが、指定によってファイルの中身もインデックス化できる。
ただし必ずしも期待するようなインデックス化がされているかどうかわからないので、
特定のディレクトリを対象に漏れのない全文検索を行うには、Hyper Estraierのほうが向いていると思う。
iFilterに対応できる見通しがついた。iFilterを使用すると、例えば富士ゼロックスDoduWorksの文書を検索することができる。
Adobe Readerがインストールされていれば、ブラウザモードでPDFをインライン表示できる。
現在は基本的な機能の開発はほぼ終わっており、実際の利用現場に近い環境でのテストとバグ出しを行っている。従来のKWIC finderよりも操作性が向上しているので、なるべく早くリリースしたい。10月一杯をテストとマニュアル作成に費やし、11月にはリリースできると思う。
前回KWIC Finderのリニューアルについて公表したが、2ヶ月経過してかなり具体的に進んでいる。リリースは年内を目標にしている。
ファイル検索ソフトには、ファイルシステムの中からどこに保存したかわからないファイルを探し出すもの(Everything等)と、ファイルの場所自体は分かっていてファイルの内容を検索するGrep系に大別できると思う。KWIC FinderはGrep系になるが、Grep系では最強の検索ソフトを目指している。
新バージョンの特長は以下の通りで、操作性がかなり向上している。
ファイルエクスプローラ画面。選択したファイルの内容を右下画面にプレビューできる。
検索例。検索結果のKWICコンコーダンスをリスト形式表示している。ヘッダをクリックするとソートできるので、検索に一致した後続文字列で並び替えることもできる。zipの内部ファイルを検索している点にご注目。
検索結果を、同じくツリー形式表示したもので、従来のKWIC Finderと同じ表示形式。左側のペインはタブで検索条件ペインに切り替えている。
htmlをブラウザで表示した例。左側の検索条件ペインは画面の好きな位置にドッキング配置できる。
バージョンアップではなく新開発になるので、既存のユーザには、優待価格でのアップグレードを予定している。
ここ数年、かつて2000年代に作成したアプリの書き換えを進めており、EBWin4に続いて昨年はEBStudio2をリリースした。残る大物アプリがファイル検索ソフトのKWIC Finderである。
KWIC Finder
KWIC Finderは基本的にファイルブラウザ+GREP検索+KWIC索引のアプリで、OfficeやPDF文書をプラグインなしで検索できることから長く利用されてきた。だが近年Windowsの利用環境の変化により、不便に感じることが多くなってきた。作者が考える致命的な問題点は次の2つである:
KWIC Finderからテキスト抽出フィルタの機能を独立させたxdoc2txt については、すでにUnicode対応を行ったver2.0をリリースしている。いよいよ本体のKWIC Finderに手をつけようかと考えている。
KWIC FinderのソースはVisual C++6.0なので、現在のVisual Studio では再コンパイルも難しく、C#で全面的に書き直すこととしたい。
KWIC Finderリニューアルの目標:
現在のKWIC Fiderから削除する機能:
開発を始めた証拠に、最初のスクリーンショットを掲載しておこう。最終的なUIはかなり変わると思う。
期間は半年から1年ぐらいを考えているが、自分で満足のいくものができたタイミングでリリースしたい。
5/31頃からAndroid4.4(kitkat)で読書尚友での青空文庫のダウンロードができなくなったという報告を受けた。現象としてはAndroid5.0以上は問題なくダウンロードでき、4.4以下が全てダメらしい。調べたところ、どうやら青空文庫のaozora.gr.jpのサーバーがSSL/TLS1.0を無効化した為ではないかという推論に達した。
青空文庫のSSL化については、以前から告知されており、4/1以降は https: のURLでないとアクセスができなくなっている。
2018年03月31日 青空文庫のSSL化対応についてのお知らせ
https://www.aozora.gr.jp/soramoyou/soramoyouindex.html#000497
だがTLS1.0の無効化については告知がない。たぶんサーバー管理会社の方針でおこなったものではないかと思う。
SSL/TLS1.0の脆弱性は以前から指摘されており、無効化の期限が切られている。
脆弱なSSLおよびTLSからの移行期限の変更について | NTTデータ先端技術株式会社
SSL/TLS 1.0 はいつまでに無効化しなければならないか? | NTTデータ先端技術株式会社
大手のサーバーは軒並み2018年6月をめどにTLS1.0を無効化する見込みで、青空文庫も追従することは仕方ないかもしれない。
問題は既存のアプリへの影響で、iOSはiOS5以降TLS1.1/1.2に対応しているが、Androidの場合はTLS1.1/1.2に標準で対応するのは5.0(Lollipop)以降である。
実は4.1〜4.4はTLS1.1/1.2が既定で無効化されているだけなので、アプリ側の対応でTLSを有効にすれば回避できる。
この辺の事情については次が参考になる。
Android4系端末のTLS1.1&1.2対応について
https://qiita.com/ntsk/items/9f31fc7b44c04ea45e0b
具体的な実装は下記の通りで、OkHttpClientを使っている場合は比較的簡単に対応できる。
Android 4系(API16-19)のTLS1.1, 1.2対応 - 怠惰を求めて勤勉に行き着く
support enabling TLSv1.2 on Android 4.1-4.4. #2372
https://github.com/square/okhttp/issues/2372
AndroidでHTTP通信を行う方法には変遷がある。
最初はHttpClientが標準だったが、Android5.1から非推奨になり、現在はHttpURLConnectionが標準ということになっている。
一時期Volleyが流行った時期があったが、HTTPClientに依存しているために現在は非推奨になってしまった。
HttpURLConnectionにも標準ではリダイレクトに対応していないという問題があって、リダイレクトさせるには自分で色々実装が必要になる。
[Android]URLConnectionでリダイレクトにも対応してみた | T.Muroiのblog
サードパーティー製でOkHttpClientというのがあり、こちらはリダイレクトにも対応していて活発に更新されているので、今はOkHttpClientを使っているアプリが多いと思う。
読書尚友ではHttpURLConnectionを使っていたが、kitkat以下の場合はOkHttpClientを使って上記の方法でTLSを有効にすることで、なんとかAndroid4.1-4.4でも青空文庫からダウンロードできるようにした。
Android4.0.3以下については、どうあがいても青空文庫サーバーから直接ダウンロードすることはできない。実際、端末のブラウザから青空文庫ホームページを見ることすらできない。
TLS1.0の無効化がすすむと、古いAndroid端末は実用的には使えなくなると思う。Yahoo! JAPANも6/1以降TLS1.0/1.1のサポートを順次終了するとアナウンスしており、「見られるホームページがほとんどない」という事態になるはずだ。
読書尚友の有償版では別のサーバーからの一括ダウンロードができるので、現在までに公開されている作品については一括ダウンロードで読むことが可能である。
だが作品一覧のデータの取得ができないので、新規作品を読めない。作品一覧をミラーサーバに置くとかすれば対応できる可能性があるが、今後メンテしていけるかどうかが不透明だ。
miniSDKVersionを16(4.1Jelly Bean)にして、4.0.3以下は切り捨てることも考えないといけないかもしれない。4.0.3以下の端末で読書尚友を利用しているユーザがまだ2%くらいいるので、悩ましいところだ。
読書尚友で青空文庫の作品一覧の更新ができなくなったので慌てて調べたところ、4/1からSSL対応され、URLが https: に変わったためだった。
2018年03月31日 青空文庫のSSL化対応についてのお知らせ
https://www.aozora.gr.jp/soramoyou/soramoyouindex.html#000497
すぐに修正したが、メンテナンスされていない青空文庫関連アプリだと脱落するものもありそうだ。多くの青空文庫ビューアで使用されている青空プロバイダもエラーになってしまっている。
青空文庫OPDSも今の所3/31で更新が止まっている。こちらはたぶん対応してくださると思うけど。