История создания

Предварительный этап

Программа имеет уже достаточно длинную историю. Началось все летом 2002 года, когда я увлекся скачиванием обоев для рабочего стола из интернета. При этом мне пришлось столкнуться с проблемой наличия большого числа дублирующих и поврежденных картинок. В начале я пытался очистить свою коллекцию вручную. Однако, при наличии более 10 тысяч изображений, это оказалось настолько трудной задачей, что я задумал как-то автоматизировать данный процесс. В то время я учился в аспирантуре ИФ НАНБ, шли летние каникулы. Поэтому в виду наличия у меня свободного времени и желания (я как раз осваивал C++Builder), я решил самостоятельно создать соответствующую утилиту. После пары месяцев работы появилась программа BEJpegSearch (Bad and Equal JPEG-files SEARCH), которую я затем использовал для собственных нужд на протяжении года. Одновременно проходила ее доводка до ума.

Серия AntiDupl-1.x

К осени 2003 года программа стабилизировалась, и у меня после ряда положительных отзывов от моих знакомых созрело решение выложить ее в интернете для всеобщего пользования. При этом мне пришлось поменять название на AntiDupl, так как старое было трудно произносимым и не запоминающимся. 17.10.2003 вышла первая публичная версия - 1.15. Далее серия с минимальными изменениями просуществовала до ноября 2005, когда вышла последняя версия с номером 1.17. Все программы серии имели следующие ключевый особенности:

  • Поиск похожих и поврежденных JPEG-картинок в заданном каталоге.

  • Возможность автоматического удаления полностью идентичных и поврежденных картинок.

  • В основном поиск ведется в полуавтоматическом режиме - до первого нахождения дефектной либо дублирующей картинки. После чего поиск прерывается запросом для того, что бы пользователь мог выбрать дальнейшее действие программы.

  • Простой, и даже можно сказать минималистический, интерфейс.

Подробнее о ней можно почитать здесь. Не смотря на ряд достоинств, программа обладала существенными недостатками:

  • Невозможность искать другие, отличные от JPEG, форматы изображений.

  • Полуавтоматический режим работы фактически полностью невелировал высокую скорость работы программы, и кроме того утомлял пользователей.

  • Программа не учитывала при своей работе результаты предыдущих поисков.

  • Было не возможно задавать более одного каталога поиска.

  • Минималистический интерфейс нравился далеко не всем.

Серия AntiDupl-2.x

Сразу после выхода AntiDupl-1.17 я стал работать над новой версией программы. В ней я надеялся решить многие из перечисленных выше проблем. К тому моменту я уже достаточно долго занимался программированием, и мне хотелось переписать программу с учетом приобретенного опыта. 09.04.2006 через пять месяцев работы она была полностью завершена, и вышла под номером 2.0. Фактически программа была написана заново, положив основу новой 2-й серии. Здесь находится ее подробное описание. Ниже приведены ключевые новшества этой серии:

  • Поддержка поиска изображений в форматах GIF, TIFF, BMP и PNG.

  • Улучшенный интерфейс.

  • Появились "горячие" клавиши.

  • Наличие html-справки.

  • Логирование основных этапов и результатов поиска.

  • Отложенные запросы (результаты поиска показываются после его окончания).

  • Возможность удаления обеих картинок, замещения одной картинки другой, просмотра изображения внешними средствами (начиная с версии 2.2).

  • База данных о неправильных срабатываниях программы (начиная с версии 2.4).

Не смотря на существенный прогресс второй версии по сравнению с первой, в ней оставались нерешенными многие из перечисленных выше проблем. А другие были решены лишь частично, кроме того выяснились дополнительные недостатки. С точки зрения пользователей основные из них были:

  • Неудобная обработка результатов поиска. Невозможно эти результаты сохранить.

  • Невозможно задавать более одного каталога поиска. Нет возможности сравнения отдельных файлов.

  • Поиск каждый раз нужно проводить заново (не учитываются результаты прошлых поисков).

Еще были недостатки с технической точки зрения:

  • 1-я и 2-я версии были написаны на C++Builder, а данная система достаточно устаревшая. В ней, например, нет поддержки Unicode, и неизвестно когда будет.

  • Программа однопоточная, что делает затруднительным использование возможностей современных процессоров.

  • Желательно разделение алгоритмической и интерфейсной части программы. Это упростило бы создание новых версий. Кроме того позволило бы сторонним разработчикам использовать в своих проектах алгоритмы AntiDupl.

Серия AntiDupl.NET-1.x

Решить выше указанные проблемы удалось только в рамках абсолютно новой программы, получившей название AntiDupl.NET. Работы над ней начались в сентябре 2007 года. Но из-за большого объема работ, а также из-за сложившихся обстоятельств, процесс ее разработки неприлично затянулся почти на полтора года. Тем не менее она наконец таки увидела свет...