1.0.2sourceforge.net/projects/dresimimg/DREは、あなたのコンピュータに保存されている画像の中から、とくに類似しているものを重複として検出し、処分するソフトウェアです。Eraserから取られました。ソフトウェア、およびソースコードは、sourceforge.netから利用できます。右側の「ダウンロード」リンクからアクセスしてください。特徴ウィザードスタイルで、ステップに分けて段階的に操作を行います。類似画像検出のアルゴリズムは、複数の種類から選択できます。パッケージとして外部からの追加も可能です。しきい値、キャッシュの使用、マルチスレッドなど、さまざまなオプションが選択可能です。検出した重複画像は半自動で1枚に絞り込まれ、その他の不要になったファイルは移動または削除することができます。複数の言語に対応しています。コマンドラインからの使用も可能です。v3に従う必要があります。したがって、これらのライブラリを変更することなく使用する場合に限り、新たなライセンスによって頒布することができます。v3のライセンス規定の全文は、次のリンクを参照してください。Licenselgpl.txt付属外部ライブラリに関しては、それぞれのオリジナルのライセンスに従うものとします。使い方のガイドラインもしあなたが過去に他の類似画像判定ツールを使用したことがあるなら、いますぐにDREを立ち上げて、さまざまな機能を使うことができるでしょう。なければ、このガイドラインが役に立つはずです。このページでは、実際の手順に合わせて、DREの使い方を解説します。検出対象ファイルの選択ソフトを起動すると、ファイルリスト画面が表示されます。あなたが重複を調べたいと思っているファイルを、左側のリストに追加しましょう。追加にはリストの項目をクリックしてもよいですし、あらかじめ開いておいたフォルダからドラッグアンドドロップで追加することもできます。あるフォルダの中身すべてを比較したいですか?それなら、そのフォルダごとリストにドラッグアンドドロップしましょう。フォルダが追加されると、フォルダの中にあるファイルとサブフォルダの数が表示されます。サブフォルダの中身まで検索にかけたいなら、項目の右にある「下層」にチェックを入れてください。右側のリストは、二つのフォルダの間で比較したい場合に使います。左のリストにフォルダA、右のリストにフォルダBを追加した場合、AとBにあるファイルの間で重複検索を行います――Aにあるファイルどうしの比較は行われません。Aにあるファイルだけで重複検索をしたいときには、「検出対象と同じファイルから探索する」にチェックを入れてください。「次へ」ボタンを押すと、次の画面に移ります。TIPS右下の「パターン」ボックスを利用すると、検出対象となるファイルを正規表現によって絞り込むことができます。リストに追加された項目を右クリックすると、コンテキストメニューが開き、項目の変更・削除ができます。項目の削除はDeleteキーでも行うことができます。ドラッグアンドドロップは、左右のリスト間でも有効です。項目の入れ替えも可能です。ふたつのリストの間のスペースをドラッグして、リストの幅を調整することができます。これは、この画面以外にあるほとんどの画面分割部分でも有効です。検索を行うファイルを選んだら、次は検索の方法を選択します。あなたがやろうとしている目的に合わせて、左側のリストの中からひとつ選んでください。Duplicationパッケージがインストールされています。それぞれのパッケージには、検索を最適化するためのさまざまなオプション項目が用意されています。パッケージを選んだら、右側のオプションテーブルの値をクリックして、あなた好みのオプション設定を行いましょう。それぞれのオプションが何を意味しているのかは、このページの下の方に別記しています。「ワーカースレッド数」を増やすことで検索を高速化できます。類似画像検索は時間のかかる処理ですので、お使いのパソコンに合わせて設定することで無駄な時間をカットできます。「次へ」ボタンを押すと、いよいよ検索が始まります。TIPSワーカースレッド数を設定することで、CPUの負担を調整することができます。小さな値を設定することで、CPUの時間を他のアプリケーションに回せるようになります。「戻る」ボタンを押すと、ファイル選択画面に戻ることができます。類似判定の実行とくに操作することはありません。読み込みと比較処理が終了し、「次へ」ボタンが有効になるまで待ちましょう。「戻る」を押すと、検出アルゴリズム選択の画面へ戻りますが、途中まで処理されたデータはすべて破棄されます。TIPS読み込み処理時間のほとんどは、画像ファイルへのディスクアクセスとデータの変換に費やされます。パッケージオプションで「キャッシュを使用する」にチェックを入れると、一度読み込まれたデータが外部保存されて次回以降の読み込み時に利用されるため、2回目以降の読み込み時間を大幅に減らすことができます。処分するファイルの選択もし類似画像をただ眺めて楽しみたいのでなければ、あなたは検出結果として返された重複ファイルをどうにかしたいと思うでしょう。この画面では、ディスクの空きスペースを増やすために、どのファイルを処分するかを選択することができます。ここで選ばれたファイルは、次の画面で削除またはフォルダ移動をさせることができます。類似する画像が見つかったものがリストアップされています。リストの項目をクリックすると、「類似ファイルグループ」リストに、類似と判定されたファイルが表示されます。リストの項目を順番にクリックして、プレビュー画面で確認してみましょう。リストには、もとの画像に似ている順に候補が表示されます。プレビュー画面が小さくて、画像の違いが分かりづらいですか?それなら、ルーペ機能を使いましょう。ルーペ機能は、プレビュー画面下の「ルーペ」チェックを入れることで有効になります。半径や拡大率を指定することもできます。類似ファイルグループの中で、これはいらないな、と思うものがあれば、その項目の左にあるチェックボックスにチェックを入れましょう。ここでチェックされたファイルは、次の画面での削除/移動対象となります。検出されたファイルが多すぎて手作業では大変なときには、一括チェック機能を使いましょう。条件に合うファイルを自動的にチェックする一括チェック機能は、「一括チェック」タブから利用することができます。これによって、すべての類似画像間を上下キーだけで行き来することができます。元画像の項目は常にリストの一番上に、距離0として表示されています。ファイルリストにフォーカスがあるときにShiftキーを押すと、押している間だけ類似ファイルリストにフォーカスが移ります。Shiftキーを押しながら上下キーで操作することで、キーボードのみでふたつのリストを行ったり来たりしながら、検出ファイルを総なめにすることができます。チェックボックスのコントロールがスペースキーで行えることを考えれば、この画面での必要な操作はすべてキーボード上で行えることになります。一括チェック機能を使って安全にファイルを処分するには、多少の慣れとカンが必要かもしれません。「すべてのグループのうち、最も大きいサイズの画像を残したい」場合には、まず「すべてのファイルにチェック」したあと、「画素数が最も大きいファイルのチェックを外」します(なぜ単純に「画素数が最も大きいファイル以外にチェック」するのはいけないのでしょうか?考えてみてください!)。この直感的でない方法には改善の余地がありますが、この問題を解決するのはかなり難しいので、現状のままとしています。処分したいファイルを決めたら、次にそれらの処分方法を決めましょう。処分の方法としては、ファイルを削除するか、どこか別のフォルダに移動させるか、のふたつがあります。別のフォルダに移動させる場合には、移動先のパスを指定してください。「次へ」を押して処分が実行されれば、DREでの作業はすべて終了となります。TIPSOS標準の「ごみ箱」は、仕様上使用できません。ファイルの移動を使用してください。処分が終わったあと、「戻る」ボタンを押すと、処分するファイルの選択画面に戻ります。これを利用することで、ファイルを別々の複数のフォルダに移動させることもできます。パッケージオプションDREの操作の説明は以上ですが、ここで「検出アルゴリズムの選択」のときに後回しにした、主なパッケージオプションの説明を行います。キャッシュを使用するオプションは、一度読み込んで比較用に変換したデータを、次回以降の検索時に使用するかどうかを指定します。キャッシュを使用すると、以前読み込んだファイルを再度読み込もうとするときに元画像のデータにアクセスする必要がないので、読み込み時間が大幅に短くなります。キャッシュを保存するためにディスクスペースを消費しますので、ディスクの残り容量を考えて使用してください――とくに今すぐ類似画像を消さなければならないほど窮屈している状態では!スレッショルドオプションは、類似判定におけるしきい値を設定します。DREは2枚の画像の類似度を距離として計測しますが、比較途中で2枚の画像がこの値以上になることが確定した場合には、類似しないとして処理を打ち切ります。この値を小さくすることによって処理を高速化することができますが、一部の類似画像を取りこぼすおそれがあることに注意してください。逆にこの値を大きくしすぎると、すべての画像が類似と判定されることになります。距離関数オプションは、2枚の画像がどれだけ似ているかを測る方法を決めます。このオプションを変えたときの結果への影響はたいてい予測できませんが、ある方法で結果があまりよくない場合に、別の方法を試すことはできます。数学的には、Euclideanが2乗、Manhattanが1乗、Chebyshevが無限乗のノルム距離を表しています。ハッシュアルゴリズムオプションはファイル一致検索に用いられるオプションで、ファイルデータを短い数値データに変換するときの方法を指定します。複雑なアルゴリズムほど処理時間がかかりますが、異なるファイルを同じデータとして扱う危険性を減らすことができます。使用できるアルゴリズムは、単純な順にMD5、SHA-1、SHA-256です。その他のTIPS左下「設定」をクリックすると、アプリケーションのプリファレンステーブルが表示されます。使用者であるあなたにとってはほとんどがナンセンスな項目ですが、一部有用な項目もあります――たとえば、jp.thisnor.dre.app.DREFrame.langをenにして再起動すると、アプリケーションのテキストが英語表記になります。有用でしょう?さいごにさあ、これであなたもDREアプリケーションを使えるようになりました。あとは、自分なりの使用方法を見つけて、ツールを使いこなしていってください。あてにメールをください。どこがわかりにくいのかという意見は、作者である私にとっての貴重な情報であり、よりよいツールを目指すための糧となります。メールアドレスは、このページの一番下にあります。類似画像を検出するソフトウェアは、すでに数多く存在します。ここではこの分野の代表的なソフトウェアについて、機能や性能を比較していきます。実行時間を測定しました。ソフトウェアのパラメータはすべてデフォルト指定のままとし、スレッド数は各環境での最大数として計算しています。キャッシュオプションのあるソフトウェアについては、キャッシュ不使用、キャッシュ書き込み時、キャッシュ使用読み込み時のそれぞれについて計測しました。一度実行したあとで計測しました。結果の見かた結果の棒グラフは、各ソフトウェアでのトータルの実行時間を表しており、このうち赤い部分が比較処理、青い部分が読み込み処理の時間にあたります。比較処理と読み込み処理の区分がないソフトウェアでは、紫のバーで示してあります。実行時間の短いソフトウェアについては、スケールを拡大したグラフを薄い色で重ねて示してあります。1.6.0_24評価3タイプの実験の中で、ソフトウェアの差がもっとも大きく出ました。初回使用時の比較でも20倍近く、キャッシュ使用まで含めると100倍もの開きがあります。ハイスペックエンドでは、環境にあったソフトウェアを選択することで、作業効率を大幅に改善することができるということです。比較ソフトウェア中で、最短の処理時間を達成しました。他のソフトウェアでキャッシュを使用した場合よりも速いことに注目してください。マルチコアプロセッサを有効に使うことで、ハイスペックエンドでの効率を大幅に改善させています。全体としてはハイスペックエンドほどの差はありませんが、それでも初回使用時で10倍の差があることには注意した方がよいでしょう。全体の処理時間が同程度ですが、その内訳が大きく異なるのは興味深いことです。ほうがパフォーマンスがよくなることを示唆しています。この三者の比較処理時間はほとんど同じなので、読み込み処理時間の差がそのまま全体の差として表れているといえます。他の環境と比べて順位を上げていることに気づきます。その効果が表れた、ということでしょうか。精度テスト類似画像検出では、検出処理の速度だけでなく、その精度も重要になります。検出されるべき類似画像を取りこぼすとディスクの空きが増えませんし、誤検出があると検出後のチェックの効率が大幅に低下し、さらに悪い場合は大事な画像を誤って削除してしまうかもしれません。一般には取りこぼしよりも誤検出のほうが重いエラーであると考えられるので、誤検出をなくしつつ、取りこぼしをどこまで抑えられるかが重要です。今回は、自身で作成した類似画像のデータセットを対象に、取りこぼし数と誤検出数をエラーとして調べることにしました。対象とするデータセットとして、一般画像データセットと線画データセットの2つを対象としています。これは次のようにして作成しました。互いに類似しないようなオリジナル画像100枚を用意する。適当なサイズに縮小してから、元のサイズに戻す。リサイズにはバイキュービック法を用いる。適当な圧縮率でjpeg圧縮をかけて、これを保存する。画像検索「線画」にヒットした画像を、オリジナル画像として使用しています。取りこぼし数および誤検出数は、次のように定義しました。検出されるべき類似ペアのうち、検出されなかったペア数。類似ペア以外で検出されたペア数。エラーを表しています。色の濃いバーは一般画像データセット、色の薄いバーは線画データセットでのエラーを示しています。バーが短いほど、検出精度が高いとがいえます。精度がオプションとして設定できるソフトウェアについては、いくつかの設定で実験を行っています。ついたソフトウェアはしきい値を数値的に指定できるため、ここではデフォルトパラメータでの結果のみ示し、実験2にて詳細実験を行っています。一方で、取りこぼし数ではソフトウェア間で大きな差があることもわかります。誤検出を避けるためにどこまで余裕をもってパラメータをセットしているかが、この取りこぼし数の差に影響していると考えられます。線画データセットに対しては、デフォルトでも誤検出しないソフトウェアと、大量に誤検出するソフトウェアの2通りにはっきりと分かれています。0.16a結果の見かた各ソフトウェアについて、横軸をしきい値、縦軸をエラーとして、結果をプロットしています。色の濃いバーは一般画像データセット、色の薄いバーは線画データセットでのエラーを示しています。グレーの点線は、ソフトウェアでのデフォルトのしきい値を表しています。エラーのラインが、一般画像に比べて大きく左に偏っていることです。これは、線画データは一般画像と比べてより類似と判定されやすい、ということを意味しています。実際、イラストや線画のように背景色が全体に占める割合が大きい画像では、絵に描かれている線が違っていても、背景色さえ一致していれば類似として判定されてしまうのです。これはユーザーにとって、頭の痛い問題です。対象が写真である時とイラストである時で、しきい値のパラメータを変えなければならないからです。適切なしきい値を探すために何度も検索を実行ことになるかもしれませんし、そうでなければ誤って類似しない画像を消してしまうかもしれません。写真とイラストが混ざったデータセットでは、そもそも適切なしきい値が存在しないかもしれません。このような場合では、誤検出を避けるために、大量の取りこぼしが発生することを受け入れなくてはなりません。グラフに注目してください。エラーのラインが、ほぼ揃っていることがわかります。イラストや線画を正しく判定し、上のような問題をうまく解決していることを意味しています。対象に影響されにくいアルゴリズムを採用しているため、ユーザーは対象が何であるを意識することなく、同じしきい値を使うことができるということです。すべてよい結果を返しているといえます。エラーの余裕が小さく、データセットによっては誤検出が発生する可能性があります。この余裕を広くとっており、多少の取りこぼしを許容するかわりに誤検出の危険性を小さくしています。マイルストーンと更新履歴このページには、DREのこれからのリリース予定と、これまでに行ったアップデートの内容を記載しています。今後のリリース予定日や内容については変更されることもありますので、あくまで目安としてお考えください。以上で安定動作させる更新履歴バージョンリリース日更新内容1.0.22012.10.02存在しないフォルダを対象としたときにフリーズする不具合を修正。パッケージでキャッシュが保存されない不具合を修正。1.0.02012.02.13バグフィックス。Beta12011.12.18パッケージの多言語拡張。パッケージAPIの修正。0.4.32011.12.15内部コードを最適化。0.4.22011.12.14MacOSX、Linux版のバグフィックス。0.4.12011.12.07コンソール版のバグフィックス。0.4.02011.12.04コンソール版の実装、コマンドラインからの使用に部分的に対応。MacOSX、Linuxに試験的に対応。内部コード構成を変更。0.3.02011.11.01サブフォルダオプション、ファイル名パターンオプションを追加。一括チェック条件にファイル名オプションを追加。0.2.12011.02.12英語表示に対応。0.2.02011.02.11ファイル選択のインターフェースを、ツリーからリストに変更。0.12011.01.17ファーストリリース。DREを制作するときに考えたことこのページは、私がDREを制作するにあたって考えたことを、思いつくままに書き出したものです。そもそも、何がしたかったのか5年ほど前、インターネット上での壁紙収集を始めた私にとって、類似画像の検出はごく自然にたどり着いた問題でした。有志がさらにそのサイズ変更・圧縮したものを頒布しているため、ストレージには同じ内容のファイルが次第に増えていったのです。最近のHDDの容量は十分に大きく、実際にはストレージがいっぱいになることはまずないのですが、それでも私は類似画像を検出し、処分するソフトがあればと思うようになりました。リネーマーでファイル名を連番にしたあとに、まったく同じファイルを見つけると、なんともやるせない気分になるのです。そこで私は、Vectorなどのフリーソフト提供サイトで、いろいろな類似画像検出を行うソフトをダウンロードし、使い勝手のよいものを探しました。この種のソフトはすでにさまざまなタイプのものが出回っており、そのうちのいくつかは私の願いを確かにかなえてくれました。一方で、どのソフトを使っても、いまいちしっくりとこない、ということも感じていました。それはなぜなのでしょう?私は、この原因を見極めようと、問題点を考え、書き出すことにしました。類似判定アルゴリズムの精度不足まず私は、既存の類似判定ソフトが、ある特定の画像を類似として判定しやすいことに注目しました――線画です。ほとんどのソフトでは、鉛筆などで書かれた異なる2枚のポートレートが、ノイズの加わった写真と同等か、それ以上の類似度で検出されます。実はこの原因は、この手のアルゴリズムを少しでも知っていればわかる、簡単なことです。差によって判定しています。線のあるピクセルの影響が小さくなってしまうのです。その結果、2枚の異なる画像の特徴量は似通ったものとなり、比較のときに類似として判定されてしまうのです。これは、この分野においてはよく知られた問題であり、いくつかの解決策が提案されています。私は素朴なアイディアとして、データ解析におけるごく一般的な手法を、判定アルゴリズムに組み込んでみました(この詳細は、公開されているソースコードを参照してください)。驚くべきことに、そのアルゴリズムは既存のどのソフトよりも良好な成績を出してしまったのです!いったい、今までのソフトは、何を計算していたのでしょう?その答えは、おおよそ想像がつきました。実際のところ、既存のソフトが用いているアルゴリズムは、ただ画像を粗いグリッドで平均化してそれぞれの差を見るか、単にヒストグラムをブロックごとに比較するかしかしていないのです。これらは類似判定では教科書的な、ごく一般的な手法です、そしてその結果、ごく一般的な問題につきあたっていたのです。(作者さん、まさか問題を知らなかったとは言いませんよね?)。私が最初にこのアルゴリズムを公開し、自身でソフトを作成しようと決心したのは、このような"普通の"ソフトが横行する世界に風穴を空けたかった、ということがあったと思います。多機能から高機能へ次に私が感じていたことは、既存ソフトの"多機能"さです。私はただ、似ている画像があるかどうか調べたいだけなのに!もちろん、このような需要はもっともですから、これを提供することは制作側からみれば自然なことです。そのために、ソフトウェアの操作が煩雑になっていることも事実です。問題は、機能の数だけ方法が実装されていることにある、と考えました。別々のインターフェースで提供しています。どの場合でも、私たちがやりたいことは、結局、2つの画像集合間の比較なのです。フォルダAのフォルダ内比較は、Aを画像集合と見たときのAとA自身の比較と同値です。ファイルaとフォルダBの指定画像比較は、一点集合{a}と集合Bの比較と同値です。2つの画像集合が入力できるインターフェースさえあれば、3つの機能をたったひとつのインターフェースで実現できるのです。この考えは、GUIコンポーネントの単純化のほか、機能拡張の容易さにつながります。フォルダ内比較のためにテキストボックスひとつだけを用意していたソフトウェアが複数のフォルダ内比較に対応するためには、テキストボックス増やすかリストに変える大がかりな変更が必要です。一方で、最初から画像集合比較として実装されたインターフェースは、ふたつの集合の和集合を計算するだけです。Compareは、この要求に対して果敢な実装を行っています)。DREはそれさえもごく自然に実現しています。結局のところ、これまでの問題は、私たちが要求する問題のクラスと、ソフトが解決しようとする問題のクラスが異なっていることにあるのです。私たちは、2つのフォルダを比較したいのではなく、2つのフォルダに含まれる画像を比較したいのです。このことがわかっていれば、問題の数だけ実装がある"多機能"ではなく、より広い問題を扱う"高機能"を実現し、ユーザーの要求に応えることができるのです。処分作業の効率を上げよう!既存ソフトへの不満はまだまだあります。最近ではインターネット上で自動クローリングを行うソフトも増え、1万枚以上の画像をストレージにため込むことも少なくありません。なると、類似検索の結果も相当数が検出されるようになります。このとき、画面とにらめっこをしながらファイルをひとつずつ処分していくという作業は、恐ろしいほどの苦痛を伴うのです。これまでのほとんどのソフトでは、類似するグループのリストが表示され、ファイル名の横にあるボタンを押してファイルを移動するか、チェックを入れてあとで一括で処分する方法をとっています。処分するファイルを決めてボタンを押すという作業ひとまわりをこなすには、少なくとも10秒から20秒ほどかかります。類似画像のグループが100グループあれば、それだけで1時間近い時間を消費することになります。このような作業ではまず、キーボードインターフェースが充実していることが必要です。マウスを次の項目の位置に動かしてクリックするよりは下キーを一回たたく方が、チェックボックスにマウスを動かしてクリックするよりはスペースバーを一回たたく方が、たいていの場合は高速です。ソフトウェアによっては、処分するボタンがリスト上になくフォーカスを移動させなければならなかったり、そもそもキーボードをたたいてもなにも反応しなかったりするなど、キーボードを使いたくても使えない場合が少なくありません。類似画像の数が増えてくると、自動的に不要画像を選択してくれるような機能も必要です。自分の処分したいと思うファイルを漏れなくチェックしてくれるような万全の精度でなくても、一度自動チェックを行った後に流しながら目で見て確認することができれば、ひとつずつ項目をチェックしてマウスやキーボードを操作するよりはずっと速やかに作業が進みます。経験的には、チェックする作業がなくなれば、ひとつのグループを1秒以内で確認することができます。自動チェックがうまく働いてくれれば、100の類似グループを2分弱で片付けることができるのです。このようなことから、DREでは、処理画面におけるキーボード操作・自動チェック機能を充実させることにしました。ここでも「多機能から高機能へ」で述べたように問題のクラスを高く持つため、フィルタをAND・OR・NOTで組み合わせて幅広い条件を指定できるようにしています。それから、デザイン私が既存のソフトに対して持つ最後にして最大の不満は、見た目がなんとも乏しいことでした。小さいごちゃごちゃした文字やボタン、不必要なメニューバー、統一感のないコンポーネントサイズ......。ほとんどのソフトで、起動して次に行うことは、次にどのボタンを押せばいいのか、画面全体をくまなく探すことでした。機能的デザインとは、ユーザーに何を見せて、何を見せないかを決めることです。類似画像を行いたい人たちの欲求はじつに多様です。ファイルを比較してくれればいいという人にとって、検索結果の保存ボタンは不要の長物です。自動チェック処理のために精度を細かく設定したい人にとって、それを「あいまい」「ふつう」「厳密」のコンボボックスで選択することは不満でしょう。ユーザーは必要なものが見えないとがっかりし、必要でないものが見えるとうんざりするのです。視覚的デザインとは、文字通りソフトがどのようなビジュアルを持つかを決めることです。Bookは、私にデザインの楽しさを気づかせてくれました)。そのためか、脈絡のないコンポーネントのエッジラインや乱雑な視点移動を感じ、「こうすればもっと格好良くなるのに」と思うことが多々あったのです。新しく作るソフトウェアでそれを改善することにしました。1画面ですべて収めるという流儀が多かったので、まずはこれを壊すことから始めました。1画面表示は操作の全貌が見やすいため一見わかりやすいのですが、それぞれの作業ステップで注目すべきコンポーネントでも小さくせざるを得ず、不要なコンポーネントをつねに表示させつづけなければいけないからです。各画面で何をすべきかをユーザーにはっきりと伝え、判断に必要な情報を提供するようにしました。リストでは項目を2行に分けることで、項目についての詳細を表示できるようにするとともに、領域を大きくすることでの操作性の向上も狙いました。タブによるコンポーネント移動の順番がわかりやすくなるよう、コンポーネントの配置も工夫しました。したアイコンによって、画面全体が灰色に沈むのを避けました。DREの制作にあたっては、私がこれまでに獲得したデザインに関する知識が総動員されているのです。それで、結局なにが言いたいのかここまで読んできたあなたは、私がとても高慢ちきで、自信過剰で、どうしようもないやつだと思われたかもしれません。確かにそうかもしれませんし、それを否定することは私にはできないでしょう。私が自信を持って言えることは、いままで述べてきたことは少なくとも私の中では真実で、疑いようもない事実である、ということです。私はこれまでの同種のソフトウェアが、自然な発想から出てくる問題点をなにも解決しようとしていない、と言いたいのです。(7-ZipやWinSCPなどは、私のお気に入りです)。そのほとんどは、ソフトを魅力的たらしめる機能の優位性、デザインの優位性を持っています。私たちは常に考え、検討し、問題を解決しようとすることで、既存のものとは違う、改善されたソフトウェアを作り出していかなければいけません。いつまでもファイルの整理に穴空けパンチを使っているわけにはいかないのです。※このノートに関するご意見・コメントを、下のメールアドレスからお寄せください。お使いのブラウザで、JavaScriptが無効化されている可能性があります。本ドキュメントを表示するには、設定を変更してJavaScriptを有効にした後、ページをリロードしてください。windproject.sakura.ne.jp。