Программист Николай Головкин: «Я прыгал от радости, когда увидел движущиеся на «Яндекс.Транспорт» метки череповецких автобусов»
В конце прошлого года произошло радостное событие для пассажиров общественного транспорта Череповца: в приложении «Яндекс.Транспорт» появилась возможность отслеживать в реальном времени положение автобусов автоколонны № 1456. Случившемуся череповчане обязаны в основном земляку Николаю Головкину, который уже три года работает в Москве, но не забывает о родном городе. О том, как создавался сервис, будут ли в нем «частники» и почему Череповец появился в «Яндекс.Транспорте» в числе первых, обогнав Вологду, Ярославль и даже Москву, Николай рассказал cherinfo.ru.
— Николай, в конце 2013 года в мэрии прошла встреча по проблемам общественного транспорта, на которую были приглашены наиболее активные подписчики страницы Юрия Кузина. Вы тогда предложили включить череповецкие автобусы в новый сервис «Яндекс.Транспорт». Идея всем понравилась, но потом о проекте целый год не было слышно…
— На самом деле работа продолжалась весь год. Это была моя идея фикс. Можно сказать, что началось все три с половиной года назад, когда меня пригласили работать в «Яндекс». В Москву я ехать не хотел, потому что мне нравится Череповец. Здесь все мои самые близкие люди, и именно в Череповце я планирую жить в дальнейшем. Но я решил попробовать, потому что поработать в «Яндексе»… такое, возможно, бывает раз в жизни. Так и работал в Москве, душой оставаясь в Череповце. Когда в «Яндексе» между коллегами пошел разговор о том, что было бы здорово иметь сервис с отображением общественного транспорта в реальном времени, я не без гордости за свой город показал им сайт «Новотранса», на котором уже несколько лет можно было отслеживать положение автобусов на карте. Через два года увидел новость, что «Яндекс» договорился с правительством Москвы о получении данных о положении автобусов. Я сразу решил, что нужно непременно добавить Череповец, ведь все необходимые данные, хотя бы по «Новотрансу», уже и так есть. Я предложил это и на странице мэра и в «Яндексе». Мэру идея сразу понравилась, а вот с «Яндексом» договориться оказалось сложнее. Действительно, «Яндексу» было бы странно начинать новый сервис с нашего города, когда в нем еще нет даже самых крупных городов страны. Руководители сервиса составили список городов, которые хотелось бы подключить в ближайшие месяцы и годы. Череповца там не было, так как это даже не областной центр и тем более не миллионник.
— И вы начали работать самостоятельно?
— Да, мы договорились, что если я все сделаю сам, они подключат Череповец без очереди. На встрече в мэрии мы договорились с автоколонной № 1456 о сотрудничестве. Директор автоколонны Виктор Иванович Смирнов сообщил, что у них скоро будет введена в эксплуатацию новая система, из которой можно будет получить необходимые данные. На тот момент оборудование уже было установлено на автобусы, но не было серверной части. Я был доволен встречей, так как стало известно, что данные по автобусам есть и у автоколонны, и у «Новотранса». Пока в автоколонне продолжались пусконаладочные работы, я наносил остановки и маршруты общественного транспорта, которых до этого в «Яндекс.Картах» для Череповца не было. Например, для Москвы можно было построить маршрут на общественном транспорте между двумя точками, а в Череповце маршрутизация была доступна только для автомобилистов. Я попросил у «Яндекса» доступ к интерфейсу администратора, сам нанес более 70 траекторий маршрутов и более 330 остановок. Их нужно было нанести с правильными названиями, а одни и те же остановки в разных источниках назывались по-разному. Мне некоторые остановки приходилось обходить пешком, чтобы посмотреть, что на них написано. Наверняка еще остались неточности.
— Это довольно большой объем работы…
— На самом деле это еще не все. Была целая проблема с названиями маршрутов. У нас есть маршруты с буквами-модификаторами, то есть 4П — автобус № 4, который идет в Питино, или 4В — «четверка», которая доезжает только до вокзала. Нельзя такой рейс отдавать в «Яндекс», как «4», потому что прогноз на следующей после вокзала остановке пообещает скорое прибытие автобуса, а человек в итоге его не дождется. В данных от автоколонны различные траектории передавались с одним и тем же номером, а о модификациях можно было узнать только по описанию в свободной форме, поэтому мне пришлось научить программу различать их самостоятельно. И если появятся новые маршруты с буквами, то мне придется дорабатывать программу. Кстати, о появлении новых маршрутов или изменении существующих мне автоколонна сообщать отказалась. Я сам должен обо всем узнать и поправить. Не очень-то благородно с их стороны.
— «Яндекс» требует какой-то проверки корректности отображения данных? Нужно ведь убедиться, что «двойка» на маршруте идет как «двойка» на электронной карте…
— Да, требовалась валидация данных. Это происходит следующим образом: нужно выбрать три остановки с наибольшим количеством маршрутов, на каждой по часу записывать номера прибывающих автобусов с точным временем, а потом найти эти автобусы в передаваемых данных. Важно было понять, правильно ли перевозчики передают номера маршрутов, а также выявить процент автобусов, по которым нет данных. Проблема в том, что в течение дня один автобус может менять маршрут. Например, «единица» разворачивается в ДОКе и становится «1К». Передатчик в автобусе ничего об этом не знает. А вот диспетчерская, где заведено расписание и имеются данные о том, на каком автобусе установлен данный прибор, должна «прицепить» эти изменения к координатам автобуса. Если в данных много ошибок, то такого перевозчика «Яндекс» к сервису не подключает и рекомендует ему исправить ошибки. В Череповце были небольшие проблемы, но на допустимом уровне.
— А что происходит, если не автобус меняет маршрут, а меняется сама схема маршрута?
— Эта проблема у нас пока не решена. «Яндекс» ведет автобус по заранее нарисованной траектории маршрута. И если вдруг реальное положение автобуса сильно отличается от заданной траектории, то значок автобуса на карте будет просто исчезать. У нас пока нет четкой схемы взаимодействия с автоколонной по изменению маршрутов.
— Что за история произошла с «Новотрансом»? Почему их нет в системе?
— Когда я только начинал работу над этим проектом, я позвонил директору компании «Новотранс» Владимиру Павловичу Назаркову и предложил подключиться к «Яндекс.Транспорту». Тот был не против. Я обрадовался и подумал, что с «Новотрансом» все пройдет гладко. Когда настало время подписать соглашение об информационном партнерстве, они почему-то отказались, сославшись на то, что у них есть аналогичный сервис на своем сайте. Мне было очень обидно, ведь я сделал все необходимое (остановки, маршруты, сбор данных, валидацию), а «Новотрансу» оставалось просто поставить подпись на соглашении! Тем не менее, я не оставлял надежд, что «Новотранс» когда-нибудь появится в «Яндекс.Транспорте». Все-таки это 40% всех автобусов города, без них в приложении нет полной картины. И вот, буквально недавно, они вновь связались со мной и выразили готовность подключиться к сервису! Надеюсь, все удастся сделать быстро. Я рад, что удобство пассажиров для них на первом месте.
— Николай, вы всю эту работу проделали бесплатно?
— У меня был бесконечный энтузиазм. Не все в мире измеряется деньгами, никакой оплаты я не просил. Мне просто хотелось хоть как-то изменить родной город к лучшему. К тому же я получил новый опыт в реализации проекта от идеи до запуска. В «Яндексе» я разрабатываю биллинг-систему, которая тарифицирует оказанные услуги и выставляет счета рекламодателям. Наш сервис никак не связан с «Яндекс.Транспортом» или «Яндекс.Картами», но мы все делаем общее дело, и развитие «Яндекс.Транспорта» — это в конечном итоге развитие всего «Яндекса». Я просто прыгал от радости, когда увидел движущиеся по карте метки череповецких автобусов! Это чувство самореализации и удовлетворения, все труды оказались не напрасными! К тому же приложением пользуются мои родственники и друзья. Мне это приятно.
— Вы рассматриваете Вологду как продолжение проекта?
— Да, я несколько раз звонил в ПАТП-1, в последний раз уже после того, как Череповец появился в «Яндекс.Транспорте». У них система аналогичная той, что работает в автоколонне № 1456, но там намного сложнее маршрутная сеть, да и сам город я знаю не очень хорошо. Возможно, надо будет съездить туда и конкретно все проработать. Они бы могли отобразить движение автобусов на своем сайте, но, как мне объяснили, им это не разрешили якобы из-за террористической угрозы. Но во многих городах подобные сервисы работают уже много лет. Тайну делать из этого бессмысленно, тем более что «Яндекс.Транспорт» узнаёт о положении транспорта с некоторой задержкой, а в приложении показывает прогнозируемое движение транспорта.