История создания CDC
6 September 2008, 13:00
У каждого человека есть своя история, которая всегда состоит из рождения, жизни и смерти… У программ тоже есть своя “жизнь”. Она состоит из планирования, кодирования и распростронения и, в некоторых случаях, закрытия проекта :(. Camel Disc Catalog тоже имеет свою историю. Она не претендует на звание “очень интересно!”, но всё же она есть и нам хотелось бы рассказать её вам.
Всё началось в октябре 2005 года в одном из чатов локальной сети небольшого южного городишки. У одного из нас в глубинах мозга уже давно пылилась идея создания каталогизатора, так как коллекция из тысячи с лишним дисков никак не хотела организововаться :) Как раз в этом время у каждого из нас не было никакого серьезного проекта и мы решили попробовать. Изначально программа называлась Off-Drive Explorer (ode). Это название закрепилось за ней всего лишь на несколько месяцев. Camel Disc Catalog было принято после долгой дисскуссии с людьми, далекими от программирования :)
Выбирая инструменты для создания CDC мы пытались смотреть как можно дальше в будущее. По этой причине мы выбрали С++ (компилятор gcc), wxWidgets (кроссплатформенный фреймворк), кроссплатформенную IDE CodeBlocks и кроссплатформенную базу данных SQLite, метя тем самым на мультиплатформенность в будущем. Первые версии были малофункциональны по сравнению с их сегодняшними аналогами и скорее подогревали наш интерес к проекту, нежели решали поставленную задачу. К слову, у нас сохранилась заготовка одного из самых древних захоронений :)

Заготовка первых версий CDC %)
Мы начинали, совершенно не имея опыта разработки подобных проектов. Также сказывалась географическая отдаленность (мы жили в разных городах) и врожденная лень :( Поэтому первые версии удавались, мягко говоря, плохо. Много времени уходило на решение тривиальных задач, а так же на самоорганизацию. Недавно в разговоре с одним из разработчиков я вдруг осознал, что ни у кого из нас нет законченного технического высшего образования. Это многое объясняет %)


Версия 0.1
Лично мне иногда казалось, что проект может затянуться на “века” или закроется вовсе, если мы будем продолжать работать в таком темпе. По поводу темпа — это вообще отдельный разговор. У каждого из нас была основная работа, которая приносила нам деньги, поэтому заниматься CDC получалось лишь в оставшееся свободное время. А времени как всегда не хватало :(. Иногда мы неделями не кодировали и это, разумеется, сказывалось на CDC. Но шло время и мы развивались профессионально (книжки, интернет и т.д. сделали своё дело). И как-то всё само собой решилось :) Вышла версия 1.0. Это произошло в ноябре 2006 года. Выглядела она так:

Версия 1.0
Это чудо инженерной мысли даже могло сканировать диски, имело 2 плагина (поддерживало 61 расширение), категории, расширенный поиск, 3 темы и другие фишки, от которых мы сходили с ума %)
Одновременно с этим один из нас собирал CDC под FreeBSD. Как это выглядело можно увидеть на рисунке. По функциональности версия под фрю была несколько обрезанной из-за некоторых несовместимых с FreeBSD моментов. В частности, не все плагины могли работать под эту ось, т.к. не все модули или используемые библиотеки были портированы. Не было поддержки устройств, таких как диски, все решалось проще: в список добавлялся просто путь к которому устройство примонтировано :) К сожалению, смена места обитания привела к смене рабочей ОС и FreeBSD сборки прекратились. Но в будущем мы планируем собирать CDC под Linux и FreeBSD (а возможно и под другие ОС). Пока это только вопрос железа и времени, т.к. очень много функционала было добавлено с тех времен и все это ни разу не проверялось на других платформах.

Версия 0.1 в FreeBSD
После выхода еще нескольких версий 1.хх произошел достаточно продолжительный застой. Мы полностью переписали все внутренности, начиная от базы данных и заканчивая GUI, так как пришли в некоторый “тупик разработки” (к сожалению, так бывает с многими приложениями). На всё про всё ушло около года…
Следующей отправной точкой стал новый графический интерфейс, который мы реализовали в 3 часа ночи в квартире многоэтажки на одном из последних этажей в тогда еще чужом для нас городе (дааа, было время :). Он основан на “плавающих окнах”, которые могут прикрепляться внутри главного окна CDC. Мы сделали возможным сохранять расположение и размеры всех окон и тем самым пользователь мог настроить их так, как ему было удобно. А при следующем старте программы они будут находится там, куда он их поставил. В сочетании с новой темой MadNut‘а интерфейс смотрелся просто отлично, что вдохновило нас на дальнейшие подвиги. Работа с базой данных тоже претерпела кардинальные изменения — изменилась схема хранения элементов для более быстрой выборки (версии 1.х испытывали определенные трудности в скорости при отображении элементов на гигантских базах), добавились заготовки новых возможностей. Например, вложенные категории, юзера, локации, картинки – все это уже было реализовано еще в первых версиях базы, оставалось только сделать соответствующий функционал в GUI, что и делалось на протяжении всего этого времени. Вообще, работа с БД — это тема для отдельной статьи. Все так сразу не опишешь, не расскажешь :)

Плавающие окна
Так, шаг за шагом мы пришли к тому, что имеем сейчас. Потраченные годы не прошли бесследно. Мы выпустили 2 продукта (для англоязычного и русскоязычного рынков) и в будущем собираемся развивать их так, как этого хотят наши пользователи. Мы очень рады тому, что среди пользователей нашей программы есть люди, которым не безразлична её судьба. Мы благодарим всех тех, кто не поленился и написал в анкету регистрации и форум свои замечания и предложения. Мы будем стараться следить за всеми вашими пожеланиями и реализововать их. На первый взгляд может показаться, что все, что вы пишете в анкете регистрации или на форуме, уходит “в никуда”, но это не так. Мы очень внимательно прислушиваемся к каждому пожеланию и обговариваем возможность сделать ту или иную фичу, которую попросил пользователь, следим за всеми сообщениями об ошибках и стараемся исправлять их своевременно, чтобы к новому релизу наша программа была лучше и стабильнее. Мы переживаем, если у кого-то случаются нестандартные ошибки, которые у нас не воспроизводятся и стараемся исправить их вместе с вами. Поэтому, большая просьба, не игнорировать наши сообщения и не “пропадать”, ограничившись одним лишь сообщением об ошибке и недовольными репликами в адрес программы. Как известно, программ без ошибок не бывает, и вполне в ваших силах помочь сделать так, чтобы вам понравилось пользоваться нашим продуктом ;)
На момент написания этой статьи готовится к выходу CDC v2.2, в которой появится плагин для создания отчетов, плагин для работы с freedb.org сервером (работы с Audio CD), плагин для работы с pdf файлами и плагин для обработки fictionbook файлов. Внешний вид программы версии 2.2.0 показан на рисунке.


CDC v2.2.0
опубликовал DeadbraiN в 13:00.
Прикольно написано! Мало чего поняла, но захотелось попользоваться вашей программой и ДАЖЕ разобраться в ней!
оставил(а) Христина · 11 09 2008 - 02:01
Спасибо :)
А что Вам мешает ей пользоваться? Помощь на русском языке есть на сайте
оставил(а) DeadbraiN · 11 09 2008 - 11:35