Создатель одного из первых (и на данный момент чуть ли не единственного из) бурятских сайтов ИТ-тематики Bur-IT.ru Антон Аксенов по моей просьбе подробно рассказал о своём проекте ABTool, развивающемся во благо отечественных (а в обозримом будущем не только российских) . Далее по тексту повествование от первого лица — прямая речь Антона.
О программе
Утилита ABTool предназначена для упрощения установки большого пакета программ и твиков для Windows. Она пригодится работникам сервисных центров и любых других организаций, где время от времени возникает задача массово и стандартизированно обслуживать компьютеры и ноутбуки.
ABTool полезна только в тех случаях, когда пользователь утилиты (скажем, типичный работник СЦ) находится в прямом доступе к компьютеру, на котором необходимо проводить установку софта и настройку ОС. ABTool не избавляет от многих и многих других рутинных операций — таких как, например, автоматическое нажатие кнопок в окнах инсталляторов.
Основной функционал утилиты заточен на установку всех программ разом, без манипуляций со сценариями движения курсора, отлова окон, нажатий в них кнопок и прочего. При этом остаётся возможность контролировать процесс установки всех программ. Но основная задача утилиты состоит всё же не в упрощении всего и вся.
Запускать инсталляторы по отдельности теперь не имеет смысла, если есть ABTool :-) Да и сам пользователь учится складывать все свои пакеты программ в определённом порядке.
Работа программы основывается на ini-файлах. В версиях до 0.5.2b включительно для настройки списков программ и утилит использовались строго два файла с именами soft.ini и tools.ini, плюс имелось усложняющее использование ABTool требование к строгой фиксации папок для своего набора программ.
В версиях 0.6.* и выше можно использовать множество других ini-файлов и хранить инсталляторы где угодно. Переключаться в интерфейсе ABTool можно между тремя пакетами (по три как для программ, так и утилит), а вышеупомянутые два файла остались обязательными по умолчанию.
Пакетом условно называется каждый ini-файл с перечислением списка программ. Каждый пакет делится ещё и на подгруппы и секции. Таким образом ABTool позволяет заранее настроить множество пакетов программ и утилит под разные нужды и три наиболее востребованных указать в настройках в качестве основных.
Как выглядит работа с программой:
- Скачивается ABTool (установка не требуется).
- Скачанный архив распаковывается на носитель и запускается.
- На носителе появляется папка ABTool_ini, где уже есть заготовки пакетов программ.
- Эти заготовки редактируются в текстовом редакторе под нужды пользователя. О том, как это сделать, подробно рассказано в справочном файле в архиве с программой и в разделе онлайн-справки.
- Запускается пакетная установка. В дальнейшем ABTool просто используется, по желанию пользователя пакеты и инсталляторы поддерживаются в актуальном состоянии.
Казалось бы, не так уж много шагов, но предпоследний занимает очень много времени. В самом идеальном случае на подготовку одного пакета программ может уйти минимум полчаса.
Зато в дальнейшем пользователь может просто отмечать чекбоксы и запускать цикл установки. Конечно, хорошо бы следить за обновлениями программ. В случае, если имя нового файла отличается, его необходимо изменить на тот, что указан в пакете. Или наоборот — скорректировать в пакете путь к новому файлу. Разницы здесь нет, в конечном счёте можно довести всё до такого состояния, что вмешательство в пакеты не потребуется.
Поддерживаются ключи тихой установки, импорт данных из REG-файлов реестра во время цикла установки и некоторые другие плюшки вроде пометки неудачных установок и прочего. Это сильно упрощает установку программ в общем цикле и вообще при решении таких задач. Порой даже не придётся совершать каких-то телодвижений. При этом ABTool не может полностью избавить от необходимости контролировать процесс, что является достоинством программы.
Немного истории
До того, как я стал заниматься разработкой ABTool, утилита представляла из себя скрипт, написанный на языке AutoIt. Таковыми являются все версии ABTool до 0.5.2b (их можно поискать на старом сайте abtool.ucoz.ru). Мы с отцом пользовались утилитой и она околодовала нас своей простотой и всем, что нам тогда было нужно: избавиться от постоянного запуска кучи инсталляторов одновременно из разных мест. А ведь они далеко не всегда могут устанавливать ПО параллельно (например, MSI).
Однажды я написал автору ABTool, Алексею Макаренко, на e-mail. Не помню о чём был диалог, но в итоге он решил мне отдать исходники утилиты, сайт и право заниматься утилитой дальше. Но с условием: если я продолжаю работать над его исходником, то оставляю имена в окне «О программе», иначе этого можно не делать. Я в шоке принял его предложение и сайт на Ucoz был переведён на мой аккаунт. Тогда я решил не продолжать работать над Autoit-скриптом, т.к. это было для меня вдиковинку. Просто начал делать наброски там, где умею — в Delphi.
Шло время, делались эскизы интерфейса, но не делалось ничего по функционалу. Уже заброшенные, эти эскизы валялись больше трёх или четырёх лет. Потом я собрался с силами, и, будучи уже более опытным, написал версию 0.6.1b. Постарался по максимуму оставить прежний узнаваемый интерфейс и сделал определённые изменения таким образом, чтобы не навредить ему.
Утилита давно используется не только рядовыми эникейщиками, но и в сетях магазинов бытовой техники (Эльдорадо, HiTechnic, М.Видео и др.). Это не моя заслуга, но я работаю над тем, чтобы свежие версии были ближе к пользователю.
О сайтах
Старый сайт Abtool.ucoz.ru достался мне где-то в конце нулевых. В то время наблюдалось некоторое увлечение по созданию своих сайтов на Ucoz, ведь они предоставляли неплохую бесплатную площадку и много всего готового для начинающих веб-мастеров.
Для сайта утилиты был использован шаблон по умолчанию, но с привнесением определённых изменений во внешний вид и код. И тогда сайт был действительно хорош, мне оставалось лишь изредка корректировать и обновлять какую-то информацию. Когда я начал строить примерные эскизы новой ABTool, возникла мысль перенести сайт на домен abtool.ru. Но тогда я не был увлечён разработкой в достаточной мере. Плюс, всё, что я знал о сайтах, ограничивалось рамками Ucoz. В довесок я не мог позволить себе тратить деньги в интернете.
Окончательное решение купить домен abtool.ru назрело когда я начал выкладывать уже новые версии утилиты на старый сайт. Через какое-то время домен всё-таки был куплен, хостинг используется тот же, на котором располагается bur-it.ru. Поставил WordPress с минимально необходимым набором плагинов, нашёл удачный шаблон, изменять который почти не пришлось.
Добавил форум для часто изменяемой информации и обратной связи с пользователями. Форум сейчас работает на phpBB 3.1.4. На полную установку и настройку сайта с форумом с нуля ушли ровно сутки. Движок форума меня не устраивает. Но среди бесплатных phpBB лучший по функционалу и возможностям его наращивания. Однако при всех его антиспам-наворотах мне постоянно приходится вычищать спам. Спасает только премодерация свежесозданных топиков.
Новый сайт и форум существуют несколько месяцев. Сейчас в сутки заходит по нескольку человек, от нуля до четырёх, кто из поисковиков, кто со старого сайта… Показатель отказов стабильно = 100%, время посещения сайта не дольше пары секунд, а глубина просмотра сайта — не дальше главной страницы. Какого-то роста посещаемости я не жду и достигать не собираюсь, ибо кому будет нужна информация, тот обязательно найдёт этот сайт.
Но вот счётчик на странице «Скачать» уже насчитал за 200 загрузок версии 0.6.4 + 30 загрузок 0.5.2, которую я добавил на сайт для тех, кто любит «классику» :-)
О распространении утилиты и работе над новыми версиями
Группа ВКонтакте была создана лишь с той целью, чтобы лучше распространять информацию в Сети о новых версиях утилиты. Мне не хотелось её создавать, потому что это ещё одна площадка, над которой надо работать. А при выпуске новой версии работы и так хватает.
На данный момент в группе ABTool ВКонтакте всего два человека: я и Виктор — тот, который первым получает от меня свежие сборки и тестирует их в боевых условиях (насколько может позволить его время). Работать над площадкой в этой соцсети не хотелось и не хочется. Но раз она есть, то пусть будет в качестве зеркала на сайт утилиты.
Сам я добавляю и/или обновляю версии ABTool на официальном сайте и четырёх-пяти софт-барахолках: freesoft.ru, softportal.com, softout.ru, soft.oszone.ru. Версию 0.6.3 я закинул ещё и на softodrom.ru. На всех площадках есть премодерация, которую можно не пройти по разным причинам.
Например, когда я указываю ссылку на загрузку программы: http://abtool.ru/?dl_name=064/ABTool_0.6.4.zip — это непрямая ссылка на архив, которая позволяет задействовать счётчик загрузок. С такой ссылкой становится возможным хоть как-то отслеживать общее количество загрузок.
Но если утилита не проходит премодерацию, то это выясняется через достаточно большой промежуток времени, обычно около недели. Потому что очереди на модерацию в таких каталогах длинные, авторов много, программ ещё больше, а модераторов, видимо, сильно не хватает.
Потом ты меняешь ссылку на прямващесамуюпрямую (http://abtool.ru/distrib/064/ABTool_0.6.4.zip) и снова подаёшь заявку на премодерацию. Неизбежно возникает погрешность в подсчёте количества загрузок. Ну, а что делать…
Распространение информации о продукте в Интернете занимает больше времени, чем, собственно, работа над продуктом. Это если не считать ещё подготовки документации. Пока инфа дойдёт до нужных мест, уже можно выпустить десяток версий. Выпускаешь новую, обновляешь всю информацию, справки, страницы и ссылки, а потом бац — какая-то ошибка в программе, которую просто не заметил.
Иной раз приходится накапливать отзывы (коих по факту чуть меньше, чем ноль, если не считать тестировщика), искать баги самому, бесконечно работая с кодом. Накапливать информацию о всех ошибках, которые удалось найти, чтобы исправить их в следующей версии и со спокойной душой обновлять все страницы в Сети. Чтобы проще было разбираться с багами, я даже стал писать о них отдельные посты в раздел блога на сайте утилиты плюс держать информацию на форуме. И сам не забуду, и другие пусть знают.
Я давно собираюсь выпустить новую версию, но пока не определился с её номером. Вместо того, чтобы делать новый релиз из-за пары ошибок, я решил переписать программу, а точнее основные её механизмы работы: настройки, работа с программами и поддержка локализаций.
Несмотря на то, что утилита кажется небольшой и простой, внутри работает множество алгоритмов, которые между собой не очень хорошо ладят. Поэтому я решил привести всё в порядок не просто ради багофикса, а на более низком уровне. Такой подход избавит и от известных ошибок, и от неизвестных до сих пор. Разумеется, добавит и новые. Так или иначе, следующая версия будет иметь сильно увеличившийся номер из-за всех переделок.