Продолжаем знакомиться с авторами популярных программ. Сегодня у нас в гостях - Николай НЕМЦЕВ, создатель планировщика nnCron.
Немцев Николай
Алексеевич, 35 лет. Родился и вырос в
деревне. Сейчас живу в городе
Пскове. Женат, дочке семь лет. Хотя и
поучился в двух институтах (3 курса
в Ленинградском
кораблестроительном, 4-й и 5-й - в
Псковском политехническом),
диплома пока нет никакого (в таких
случаях вспоминают Гейтса и
Спилберга. Может быть, и меня когда
вспомнят :).
Работаю в очень маленькой софтверной фирме Enginet System Pskov (8 человек) - занимаемся web-технологиями, но пока нигде не засветились.
Николай, расскажите, пожалуйста, с
чего началось Ваше увлечение
программированием?
Эта "беда" началась в 1988 году, на третьем курсе Ленинградского кораблестроительного института (ныне Морской технический университет), с курсового по теории пластин и оболочек. Я кое-как состряпал с чужой помощью программу на Фортране для расчета своей пластины, но что-то там не склеилось, и данные получились не совсем те, что надо. И зачет я получил, и экзамен сдал на четыре, но преподаватель сказал, что, мол, ошибку в программе ты все-таки найди и нормальные цифры принеси. Знакомый научил меня работать с терминалом, подключенным к ЕС 1030 (до этого все было при помощи перфокарт), и тут-то все и началось. Я быстро забыл цель своих упражнений, стал изучать языки (первыми были Pascal и PL I), забросил учебу (а надо было сдавать еще два экзамена) и в сентябре, когда некстати поменялся декан ("новая метла..."), меня успешно отчислили. Но это не сильно волновало, так как я, наконец, нашел занятие по душе. Ту программу, которая погубила будущего ученого акустика, первой, наверное, все-таки назвать нельзя. Это были просто упражнения. А вот через год в армии я уже написал пару программ, за которые мне даже дали бумажки о рацпредложении. Первой была "РЛС тренажер", а второй - обычный текстовый редактор.
Но все же самые известные Ваши программы - это планировщик nnCron и утилита для резервного копирования nnBackup. Интересно, как они создавались...
Я работал системным администратором (а также системным программистом, программистом "1С" и т.д.), а, как известно, у администратора очень много всякой рутинной работы. В первую очередь, нужен планировщик. Вначале мне казалось, что системный планировщик Windows NT мне поможет, но быстро обнаружилась его ограниченность (набор временных интервалов просто никудышен). Порывшись в интернете, я нашел несколько программ, приблизительно отвечавших моим требованиям, но при испытаниях тоже выявились недостатки.
В общем, я так мучался до тех пор, пока не нашел информацию о программе cron из мира UNIX. Идея задания периодичности так понравилась, что я тут же набросал нехитрую программку, которая выполняла функции cron'а. Да, кстати, несколько клонов cron'a под Windows тоже были исследованы и оказались просто неработоспособными. Ограниченность языка командных файлов (CMD) постоянно заставляла изощряться, и естественным продолжением стало появление элементов скриптов в этой моей программе. Написана она была на C++, и расширение в скриптовом смысле было не самым простым делом. Тогда я полностью переписал ее на Форте (SP-Forth), и получился nnCron. Насущные проблемы заставляли добавлять в эту программу возможность за возможностью, и однажды я понял, что получается программа, которую не стыдно и людям показать.
Программа nnBackup создавалась при тех же обстоятельствах. Вначале это был простой скрипт на CMD, который выполнял копирование в стек каталогов (текущий снимок дерева каталогов копировался, например, в каталог с номером 1, а все старые снимки находятся в каталогах 2, 3, 4...), а для движения стека использовался перловый скрипт. Потом захотелось иметь более сложные маски, и программа была написана на С++ и полностью переписана на Форте, когда обнаружились трудности расширения.
У каждого компьютерщика, стоящего перед выбором планировщика, глаза разбегаются от разнообразия подобных программ. Чем nnCron отличается от аналогов?
В функциональном смысле, я думаю, все лидеры примерно одинаковы. Наши программы отличаются буквально микроскопическим размером в сочетании с неисчерпаемыми возможностями. Главной изюминкой nnCron'а я считаю встроенный компилятор языка Форт. Никто не мешает расширять планировщик теми же средствами, с помощью которых построен и сам nnCron, для решения конкретных проблем пользователя.
"Наши"? Вы разве не один писали программы?..
Команда nnSoft состоит из двух человек. Присоединение Валерия Кондакова я считаю настоящей удачей. Без его влияния nnCron был бы совсем другим - недоразвитым, с убогим readme вместо полноценного хелпа (который зачастую хвалят больше, чем саму программу), без RU.NNCRON и т.д.
Я занимаюсь разработкой программ и предварительной отладкой, а Валерий - отладкой, документацией, сайтом, PR и всем остальным. В отношении идей и отладки очень помогает армия российских пользователей.
Что за идеи?
Пользователям чаще всего не хватает новых возможностей. Например, недавно спросили, а может ли "Крон" отслеживать изменения журнала событий (event log)? Тогда еще не мог... Другой пользователь предложил сделать поддержку winlirc (это программа для приема сигналов от ПДУ) и даже прислал мне само устройство, которое принимает сигналы от пульта. Каюсь - сделал это не сразу.
Что и говорить, популярность nnCron огромна. Прямое тому подтверждение - частые лестные отзывы в различных изданиях. Пробовали ли Вы как-то отследить популярность программы?
С октября прошлого года, когда нас попросили с бесплатного хостинга за перерасход трафика. Сейчас же nnCron скачивают приблизительно 3-3,5 тысячи раз в месяц.
Что касается продаж, то все пока очень скромно, но в этом году лучше, чем в прошлом. Прибыль эта незначительна. Хотя с 2001 года от продаж своих программ я получаю несколько больше, чем на основной работе. Но пока это только своего рода подработка.
В последнее время, с появлением локализаций на европейские языки, стали больше покупать европейцы, а так основная масса продаж приходится на США.
Происходили ли курьезные случаи в процессе работы над программой?
Конечно, происходили, но почему-то люди начинают зевать, когда я рассказываю об этом. Иногда приходят такие письма, что уши начинают гореть от счастливого смущения. Бывает, для поднятия настроения, захожу на www.listsoft.ru/programs/2542. Здесь тоже хватает разных перлов.
Наверное, не обошлось и без проблем?
По мере развития программ обнаруживаются просчеты начального этапа проектирования. Иногда хочется все переписать чуть ли не с нуля. Но пока удавалось себя сдержать :). Основная проблема - нехватка времени и сил. Что касается времени, которое уделялось программе, то бывали периоды, когда я работал по 14-16 часов в сутки (8 на работе и 6-8 дома). В таком режиме больше месяца проработать не удавалось. Потом наступало опустошение - интересные идеи оказывались реализованными, и можно было немного передохнуть до следующего раза.
Удастся ли подобные порывы сдержать и в будущем :)? Над чем сейчас работаете?
В будущем ожидается только развитие существующего. Давно надо оснастить дружелюбным интерфейсом nnBackup. Что касается долгосрочных перспектив, будущее, мне кажется, за решениями, независящими от платформы, и поэтому есть желание двигаться именно в этом направлении.
Беседовал Павел БАДЯЛИК
nnCron - это
планировщик/скриптер/менеджер
автоматизации с поддержкой
скриптового языка. Программа умеет
запускать приложения, открывать
документы, выводить сообщения,
воспроизводить wav-звуки, работать с
буфером обмена и окнами (скрывать,
закрывать разворачивать и т.д.),
эмулировать клавиатурный ввод и
операции с мышкой, звонить и класть
трубку, совершать определенные
действия при наступлении
каких-либо событий и многое другое.
nnCron бесплатен для граждан стран бывшего СССР при условии частного и некоммерческого использования. Скачать программу можно с сайта www.nncron.ru.
Горячие темы