Juno открыла карты поездок. Автор идеи Илья Зверев — о том, почему этого ещё никто не делал, OSM и приватности

19 апреля 2019, 09:28
Juno открыла карты поездок.

Компания Juno — райдшеринг сервис в Нью-Йорке, основанный в Беларуси, — выложила карту поездок своих водителей и регулярно её обновляет. А это около 50 тысяч поездок каждый день. dev.by поговорил с аналитиком геоданных Ильёй Зверевым, который всё это придумал и реализовал, и выяснил, зачем это надо, кто может подхватить челлендж и не обвинят ли стартап в раскрытии личных данных.

Как Juno использует карты — только «читает» или ещё и «рисует»?

Я работал с OpenStreetMap ещё в Maps.Me и считаю, что очень неплохо разбираюсь в OSM. Здесь, в Juno, я с ним меньше работаю, а больше с другими вещами — вращением геоданных, попытками вытянуть из них пользу.

В Juno, как и в других подобных сервисах, используют OSM. Альтернативы либо неполны, либо стоят денег. OSM бесплатный, если есть опыт, знания. То есть, если кто-то в компании может поднять сервис прокладки маршрута, то это становится бесплатным подспорьем. Но OSM не идеален. В отличие от Google, TomTom, Here, здесь нет ответственности за качество данных. OSM ничего не обещает, это такой децентрализованный проект, в котором не к кому обратиться. Если надо что-то написать — нет точек контакта, если какая-то проблема — ищешь местное сообщество. Поэтому в компании должен быть свой человек, который умеет с этим работать. И если первые барьеры преодолеть, то в компании появляются всякие сервисы, аналоги Гугла и Яндекса.

Мы используем OSM, в основном, для прокладки маршрутов: определять, сколько пассажиру нужно ждать машину, сколько будет стоить поездка, аналитика загруженности дорог, — всякое. Соответственно, главное требование к OSM, — чтобы было как можно меньше неточностей в самой карте. То есть, если мы проложили маршрут от водителя к пассажиру, то важно, чтобы оценка этого маршрута не сильно отличалась от реальности, чтобы от Куинса до Манхэттена маршрут не строился через Бронкс. Следовательно, нам нужно, чтобы данные OSM были как можно более точны и соответствовали реальному миру.

В OSM это достигается большим количеством редакторов, так же, как в Википедии. Кто-то пишет базовый костяк статьи, а потом несколько редакторов добивают её до удобочитаемого вида. Хорошие статьи — которые отмечены звёздочками, — их обычно трогают сотни людей. Так и в OSM: если на город есть сотня людей, которые постоянно следят за ним, уточняют, наносят перекрытые дороги, — это отлично. Таких городов, чтобы сотни человек за ними следили, очень мало, в пределах десятка. Минск — довольно хорош. В Беларуси не сказать, что большое сообщество, но оно довольно активное. Постоянно общаются, следят за картой, следят за новичками и в целом держат город более-менее в порядке. У нас людей мало, но они достаточно продвинуты не только для того, чтобы держать свой двор, но и свой район. Ещё такие города — Москва, Петербург, Берлин, возможно. Нью-Йорк попадает очень условно.

Чтобы улучшить карты, мы со временем написали инструмент — несколько скриптов — которые проверяют качество этой дорожной сети. Наши водители каждый день совершают десятки тысяч поездок по всему Нью-Йорку, и вся телеметрия этих поездок приходит к нам. Мы знаем, когда они были совершены, как конкретно они ехали, сколько проехали пунктов «платная дорога» и так далее. Важная функциональность — map matching, привязка трека к карте. Когда ты идёшь с навигатором по улице, то трек пляшет, потому что заявленная точность GPS — 3 метра. И в рамках этих трёх метров из-за облаков, высоких зданий, непрогретого приёмника трек и точки могут скакать как угодно. И маршрут запишется не прямо вдоль дорог, а будет немного плясать. С такого трека ничего невозможно высчитать, потому что его длина, очевидно, будет больше того пути, который ты прошёл, из-за этих всех зигзагов. Невозможно понять, какие светофоры ты проезжал. И поэтому надо делать map matching: привязку трека к дорогам на карте. Алгоритм из набора точек выдает список дорог из карты, и на этом уже можно делать аналитику: мы знаем точный километраж, сколько светофоров проехали и так далее. Соответственно, если карта неточна, то результат привязки трека к карте будет чудовищным: начнут появляться петли, объезды. Если водитель проехал по дороге, а на карте вместо этой дороги дыра, то алгоритм будет пытаться объехать эту дыру так, чтобы максимально точно привязать остальную часть, — выглядит это довольно странно. А мы все эти петли, все аномалии ловим и на их основе смотрим, где карта неточна. И исправляем.

На карте Нью-Йорка мы это исправили, ошибок было 2,5%-3%. В среднем, каждая сороковая поездка на такси натыкалась на какую-то ошибку на карте. Это ломает нам оценку стоимости поездки: карта нам показывает объезд, а на деле водитель проехал по дороге напрямик, — пассажир может получить завышенную стоимость. Думаю, в Минске процент ошибок был бы больше, потому что есть разница между «хорошо выглядит» и «хорошо работает в коммерческом контексте». Скажем, для большинства поездок карта Минска отличная. Но вот открыли Жасминовую улицу, однако прошло ещё полгода, пока на OSM отобразили, что она уже открыта. Я её сам, кстати, «открывал», когда мне надоело, что мне маршруты неправильно строятся. Проезд под МКАДом, который закрыли на ремонт, отобразили на следующий день. И это всё зависит от интереса участников сообщества. Если какой-то участник OSM считает это важным, то обновит это довольно быстро. Но люди не могут следить за всем городом в промышленном масштабе.

В процессе езды наши водители не пользуются OSM, даже наше приложение Juno показывает водителю Google-карту. И вообще, водители часто ездят не по нашему приложению, а по стороннему, чаще всего по «Вейзу». Waze, которого купил Google, показывает пробки, — это лучший сервис с пробками в Нью-Йорке. Мы ни в коем случае это не запрещаем, но выдаём водителю фирменный девайс с установленным приложением Juno, чтобы, в том числе, использовать трек этой поездки в применении к OSM.

Тем самым мы ежедневно получаем сведения об актуальности дорог. И никакие картографы-любители не могут сравниться с этой массой свежих данных. Поэтому мы начали исправлять в OSM дорожную сеть в Нью-Йорке. Дважды мы привлекали добровольцев: прогнали свой алгоритм на треках за целый месяц, отобрали 200 самых важных ошибок и отдали на исправление. Участники OSM поправили, а мы потом прошлись наждачкой. И сейчас процент ошибок очень низкий, что-то около 0,1%. То есть, снизился в 25 раз. И сейчас лишь каждая тысячная поездка натыкается на ошибку: вроде развернулся на этом перекрёстке, а на самом деле выполнил разворот на следующем, — это не сильно влияет.

И то, что мы сделали, что поправили, — этим пользуются и все остальные, кто использует OSM в Нью-Йорке. То есть, у Uber должен быть такой же уровень ошибок. Плюс OpenStreetMaps в том, что все правки сразу доступны всем.

Кто все эти люди, которые редактируют карты OSM по Нью-Йорку и другим городам?

Долгое время участники OSM считали, что средний картограф — это такой человек с довольно специфическим взглядом на мир, с желанием все классифицировать. Ну, примерно те же люди, которые коллекционируют спичечные коробки. Но этот подход себя изжил, потому что надеяться на рост проекта, где портрет среднего участника соответствует такому описанию, довольно странно. Да и нужно ли вообще? Сейчас мы стараемся, чтобы в OSM-сообществе были люди из всех областей, всех цветов кожи, всех гендеров, потому что каждый приносит какой-то свой навык, и карта от этого становится только полезнее для всех остальных. Есть много разных фракций, вроде гуманитарной команды, или отдельных велосообществ, каждое из которых вносит свой вклад в развитие OSM. OSM — совершенно анархическое сообщество, совсем не «Википедия». Все сами решают, как работать.

С Нью-Йорком и американскими городами ситуация сильно отличается от всех остальных, потому что в Америке очень много компаний, которые используют OSM. Та же штаб-квартира Uber, Lyft, Mapbox, очень много их, — поэтому там много людей на зарплате, работа которых — устранять очевидные ошибки. Они этими исправлениями делятся, потому что OSM — единая карта, они исправляют на OSM — и все этим пользуются. Это могут быть как отдельные энтузиасты, так и целые картографические команды, например, у «Мапбокса» такая команда работает в Минске. И в Штатах в больших городах дорожная сеть более-менее нормальная. Но у нас же райдшеринговый сервис, а такси заказывают из любой тьмутаракани в любую. Нужна не просто хорошая сеть, нужна идеальная.

Можно примерно прикинуть, сколько их — редакторов. Я их оцениваю человек в 50-100 на Нью-Йорк. Их не очень много, и оценить сложно, потому что люди работают над OSM в разное время. Считать ли тех, кто правит не каждый день, а раз в неделю, или раз в месяц, или три раза в год? Люди приходят, правят и уходят. А считать ли человека, который приехал в Нью-Йорк, добавил тридцать кафешек, которые посетил, и навсегда уехал? Здесь нормальное сообщество — хоть и не настолько активное, как в некоторых русских городах или в Минске, — но и не пассивное. В целом, Нью-Йорк — в тройке наиболее картографируемых американских городов. Но в Европе многие города отрисованы и поддерживаются лучше.

Но в целом американцы более прагматичны, поэтому не полируют город до самых мелочей. Люки канализационные не рисуют. В прошлом только году спорили, рисовать ли тротуары отдельными линиями. В то время как в Беларуси, России, Германии это обычное дело. В Штатах, в основном, любят все делать эффективно, быстро. Вместо того, чтобы рисовать каждый дом отдельно, можно найти открытый набор данных со всеми контурами домиков на весь штат и импортировать. Вместо того, чтобы рисовать каждую улицу отдельно, давайте возьмем геоданные TIGER и зальём все улицы целиком. Это не всегда хорошо, потому что делает редактирование карты менее интересным для новичков. Ты приходишь — а там все дома, все дороги нарисованы, и нет таких белых пятен, которые интересно заполнять по спутниковым снимкам. Многие в OSM, особенно в России и особенно в менее населённых территориях, начинают с того, что заполняют белые пятна. Смотрят свою деревню — а её там ещё нет. Тогда открывают спутниковый снимок и начинают домики обрисовывать, дороги рисовать, мостики — и так постепенно прорисовывается карта. И это очень интересно — наблюдать, как постепенно прорисовывается очень детальная карта — подробнее, чем в любом другом источнике. А когда всё уже нарисовано, все основные вещи, то не так уже интересно, труд не так вознаграждает тебя. Допустим, добавишь ты сто магазинов — а это адская работа, потому что надо пройти все эти магазины, срисовать названия, часы работы. А потом на карте появятся 20 значков, потому что какие-то значки наложатся друг на друга, а каких-то вовсе не найдётся. Получается пшик, неинтересно вкладываться.

Почему вы, небольшая компания, сами занимаетесь правкой OSM? Почему не подождать, пока компания покрупнее — тот же Uber — не походит ножками и не поисправляет все ошибки?

Это долго, а кроме того, у нас есть знания и умения, которых нет у них. Проблема с участниками OSM и исправлением больших массивов данных в том, что для экспертной работы нужно не только понимание модели данных, понимание, как работает OSM, — но и технические знания: умение планировать, умение программировать. И эти навыки у участников очень редко пересекаются. И почему-то большие компании не особо обращают на это внимание. Они ищут первых, кто знает, как редактировать OSM, и набирают из них картографические команды. Но из-за отсутствия технавыков программирования они всё делают очень медленно.

А не проще ли было купить карты у Google?

Google карты никогда не продаст, потому что это его главный актив. Google, как и Yandex, продаёт сервисы, доступ к своему API. Частично Juno и так работает на Google Maps API, потому что, например, в OSM нет пробок — это сухие геоданные, где лежат неизменные вещи: улицы, дома. А пробок и кратковременных перекрытий там нет. Поэтому мы используем сервисы Google. Но очень редко, скажем, на критических стадиях: подсчёт стоимости поездки или отображение маршрута. То есть, для внутренних расчётов мы используем OSM, но в критичных точках всё проверяем по Google.

Целиком перейти на Google — это было бы очень дорого. Сейчас Google собирается поменять свою тарифную сетку. У него есть пакетные предложения для райдшеринговых компаний, и тот же Gett завязался на «Гугле» целиком, влез по уши. Все расчеты у них целиком на «Гугле». Я слышал, что теперь Google для Gett будет стоить даже дороже, чем амазоновские сервера. А Amazon обычно — это самая большая статья расходов. И у нас могло бы быть то же самое, если бы мы целиком работали на Google. Потому что завязываться на монополиста — чревато долговременными перспективами. Рано или поздно придется или платить огромные деньги, или срочно отвязываться, — а это сложнее, чем делать на OSM с самого начала.

А можете ли вы брать информацию у «Викимапии» или других похожих сервисов?

Wikimapia — не картографический проект, там нет никаких данных, которые можно было бы использовать, тем более всерьёз. Изначально «Викимапия» была проектом по подписыванию гугловских снимков.

Альтернатив у OSM, по сути, нет. Был Google MapMaker и Яндекс.Народные карты. Но Яндекс очень сильно поменялся. Изначально они делали полную альтернативу OSM, открытый проект карты, которую мог рисовать любой желающий. И это была нормальная альтернатива OSM, если не задумываться над тем, что весь проект принадлежал Яндексу, а он не делится своими данными. Результатами работы никто не мог пользоваться, кроме Яндекса, даже купить их нельзя. Тысячи энтузиастов, по сути, делают для Яндекса бесплатную работу. После перерождения карт проект поменялся, стал более полезен Яндексу. Это больше не альтернатива OSM, теперь это инструмент уведомления об ошибках на основных картах. Если ты видишь, что отсутствует улица, то ты её рисуешь сам — но при этом ты не рисуешь саму карту, ты лишь таким способом сообщаешь Яндексу, что есть такой недочёт.

И получается, что ты ограничен функциональностью Яндекс.Карт. Например, не можешь нарисовать фонарные столбы или люки. Ну, на карте это нафиг никому не нужно — пока что. И поэтому Яндекс тебе этого не даст сделать. А в OSM это можно делать. Кто-нибудь посмотрит и подумает: ну что за странный человек нарисовал люки, да кому они нужны? Но если сделать запрос, то можно увидеть, что весь Сочи или восток Москвы покрыт этими люками. Все обозначены! Потому что оказалось, что для пожарных это очень функционально. Они отмечают на карте люки, загружают в свои навигаторы, и если что случилось — всегда знают, где какой люк, какая мощность, что можно подключить.

То есть, OSM идёт не от задачи. У Яндекса есть конечный продукт — карта, и эта карта, эта задача определяет средство. А OSM идёт от средства: там можно нарисовать что угодно, а применение найти через десять лет только. Но это задел на будущее, и такой подход лучше.

Больше ни у каких сервисов мы брать информацию, пожалуй, не можем. В США есть замечательный закон: если какие-то данные собираются государственными органами на бюджетные средства, то эти данные должны быть опубликованы под открытой лицензией. И любой человек, любая организация может использовать их для любых целей, в том числе коммерческих. Это очень мощно, и я надеюсь, что лет через 20-50 это подхватят другие страны. Что это значит? По факту, почти все глобальные источники данных, которые используют люди, сделаны в Штатах. Цифровая модель рельефа, снимки Landsat, база топографических названий и куча других данных на весь мир, и все по всему миру ими пользуются. А внутри Штатов таких источников ещё больше: это и аэрофотосъёмка, и набор данных TIGER — дорожная сеть и адреса всей территории, включая Пуэрто-Рико. Вот этими данными можно пользоваться. Но конкретно мы ими не пользуемся, ими пользуются люди, которые улучшают OSM. Тот же TIGER в 2008 году импортировали и с тех пор обновляют.

И что же — вы просто взяли и выложили поездки своих таксистов?

Мы выложили не сами поездки, мы этого не можем сделать по соображениям приватности. Было бы странно, если бы ты совершил поездку в детский сад, и все бы узнали, где твой садик находится. Мы выложили немного другое.

Один из источников данных OSM — GPS-треки. Они хороши тем, что ты проехал по улице — и у тебя уже есть трек, который можно сразу в карту обрисовать и подписать. Ты не зависишь ни от спутниковых снимков, ни от чего. Сейчас GPS-треки для рисования и уточнения карты не очень сильно важны, потому что почти на весь мир есть спутниковые снимки. Но эти спутниковые снимки привязываются к GPS-трекам. Снимки всегда немного смещены относительно реальных объектов. Снимок — это ведь просто растровая картинка, и чтобы его привязать, надо учесть угол наклона спутника, узнать координаты углов, изогнуть картинку под проекцию. На всех этапах есть погрешности, которые суммируются и в результате точность привязки падает до сотни метров. Сейчас всё намного лучше, точность выросла до метров — это нормально, в пределах одного пикселя. Но снимки всё ещё надо дополнительно двигать, и двигаем мы по трекам. Один трек сам по себе неточный, как я говорил, он пляшет по дороге. Но если мы возьмём сто треков, которые проходят по улице, то мы увидим средние линии, срединную линию уже можно использовать как ось дороги.

Эти треки для обрисовки не скачивают из сети по одному, это было бы очень долго. Их качать можно до скончания времён. Поэтому из треков делают растровый слой, набор красивых картинок с раскраской по направлениям. И вместо того, чтобы качать 10 тысяч треков, мы качаем 10 тайлов — квадратиков 256х256 — и их используем.

И то, что мы сделали, — создали такие растровые слои из треков. Мы их анонимизировали: обрезали с концов, чтобы нельзя было вычислить начало и конец поездки, и все треки за одни сутки наложили в такой растровый слой. И получилось довольно много. Все улицы Манхэттена, большая часть улиц в соседний районах всегда есть: по ним каждый день кто-нибудь да ездит.

Карта треков отлично покрывает центр Нью-Йорка, но, так как в отдалённых районах и пригородах поездок происходит не так много, — в нашу карту включаются поездки за весь месяц. Думаю, если брать все дороги, включая пригороды и проезды жилых кварталов, которые далеко от центра, то там будет меньше половины от общей протяжённости дорог. У нас покрыты дороги, по которым ездят часто: это либо транзитные улицы, либо улицы, по которым есть какое-то движение. Улицы, не покрытые треками, — скорее всего, по ним редко ездят.

Таких ошибок, чтобы не была нарисована дорога на карте OpenStreetMap, пожалуй, нет. Все дороги уже есть, потому что были когда-то импортированы из другого источника и с тех пор просто понемногу обновляются. Может быть, что в каком-то месте не указан знак «Поворот запрещён», или вместо односторонней дороги нарисована двусторонняя, или наоборот. И поскольку OSM в нашей программе используется лишь глубоко внутри, проблемы в OSM не повлияют на поведение водителя или пассажира, они смогут повлиять лишь на наши внутренние расчёты. Впрочем, это тоже может оказаться немало: от этого зависит, окажется ли водитель ближайшим к точке заказа.

А что даёт эта ваша карта поездок?

Треки может посмотреть любой человек, увидеть, где ездили наши машины. Этот слой каждый день обновляется. Возмущений, что мы нарушаем чью-то приватность, не было и не будет. Для меня как для опытного технаря там всё чисто. Нужно очень хорошо разбираться в технических нюансах, чтобы понимать, что можно достать из растра, из пикселей, чтобы какие-то претензии предъявлять. К тому же, этот наш слой поездок для обычного пользователя не несёт практической пользы. Он, скорее, для тех 50 человек, которые правят карту Нью-Йорка. А всем остальным — это лишь красивая картинка. Из этого слоя нельзя вытащить ни одну конкретную поездку. Ведь поездка в большинстве случаев не совершается с одной окраины города на другую окраину по самому краю города, чтобы нить маршрута была видна и не пересекалась с другими нитками. Рано или поздно ты выйдешь на широкую улицу, по которой проехали тысячи других машин такси, и твой трек затеряется. Поскольку это растр, там нельзя различить именно твой трек. Можно различить лишь концы маршрутов, когда они едут далеко за город. Но трек на этом нашем растре обрывается не там, где закончилась поездка, — мы обрезаем последние полкилометра, причем каждый раз обрезаем по-разному. То есть, можно будет лишь понять, что кто-то из целого района, из целого пригорода воспользовался Juno.

Цветом мы показываем направление движения: односторонние улицы раскрашены в один цвет, двусторонние — в два. Вот и вся информация: пучок треков и направление движения. В самом Нью-Йорке толстые пучки треков, а за его границами — лишь отдельные линии, — это как раз данные за месяц.

Мы знаем, что огромное число компаний использует OSM в своих расчётах. А карты OSM по всему миру каждый месяц уточняют 50 тысяч редакторов. И они могли бы работать лучше, эффективнее, будь у них данные вроде тех, которые выложили мы. Что мы делаем — это публикуем самый свежий источник данных для обрисовывания карт. Таких свежих данных никогда не было. Вон спутниковые снимки вообще снимаются раз в год, раз в два года, некоторые — раз в четыре года. Панорамы тоже быстро устаревают: в Нью-Йорке, скажем, раз в полгода.

Мы столкнулись со случаем, когда картографы из Lyft «развернули» улицу, потому что на всех источниках — на спутниковых снимках, на Google StreetView — было нарисовано устаревшее направление движения.

А три месяца назад Департамент по транспорту развернул направление движения по улице, и нигде это изменение еще не было отображено. Но мы это видели, потому что наши водители ездят по этой улице, и у нас самые свежие, вчерашние данные. Мы это видим, а все остальные нет, потому что у них нет такого источника данных, как у нас. Вот эта ситуация и подсказала нам, что надо открывать данные.

Большую часть того, что можно сделать, я уже сделал. Я проанализировал ошибки на нескольких миллионах треков и попросил редакторов OSM исправить их. Теперь дорожная сеть Нью-Йорка в OSM близка к идеалу. Из этих же треков с помощью других преобразований мы найдём ошибки, которые просто так не отлавливаются. Например, легко заметить, когда односторонняя дорога нарисована не в ту сторону, или если дорога указана односторонней, а на самом деле двусторонняя. Это ломает все маршруты. А если дорога на самом деле односторонняя, но указана как двусторонняя, то это ничего не ломает. Ну да, треки будут только в одну сторону — может, просто водители не хотят ездить в обратную. По одному-двум трекам этого не понять. Но по пучкам треков уже можно: если в одну сторону проехало 300 машин, а в другую — ни одной, — скорее всего, там что-то не так. Это тоже не нужно большинству пользователей, но нам позволит сделать карту и свою работу ещё лучше.

Большие коммерческие компании всегда закрыты, потому что любое движение вызывает юридические последствия. Они очень осторожны, и очень редко компании открывает какие-то данные. Мы знаем много случаев, когда компания открывает код. Но в коде сложно раскрыть какие-то корпоративные секреты, код не несёт никакой информации об операциях компании. А открытые данные сложнее, потому что их всегда надо очищать юридически, как минимум анонимизировать. Это очень сложный процесс. Когда государство открывает какие-то данные — экономические или географические — то часто пользуется помощью специальных агентств по раскрытию данных. Чтобы случайно не раскрыть корпоративные секреты каких-то компаний. Поэтому мы так редко и видим, что некая компания открывает свои данные. Яндекс ничего не раскрывает; от Uber у нас есть лишь некоторые инструменты визуализации, но нет вещей, которые можно было бы покрутить в этих инструментах. И это не всегда хорошо.

И лично нам от этого будет польза: люди перестанут «ломать» дорожную сеть, пользуясь устаревшими данными. Не будут «разворачивать» улицы. Люди, которые рисуют карту Нью-Йорка, не нарисуют что-то неправильно. Просто такой залог корректности на будущее. А значит, и корректности нашего сервиса.

В Европе огромное количество ОСМщиков, ни один город Америки и рядом не стоял. И там все очень сильно бы выиграли, если хотя бы только Uber раскрыл такие свои поездки, как мы. Если ты можешь раскрыть данные на один город — то можешь раскрыть и на все города, технически это одно и то же. Нужна только политическая воля. И мы публикуем данные, чтобы подтолкнуть людей из других компаний, показать, что это возможно. Скорее всего, никто просто не думал, что такое можно публиковать. Даже мне, когда я сюда пришёл, не приходило в голову, что можно выложить все треки и что все смогут этим пользоваться.

Насколько это круто? Впервые какой-то райдшеринговый сервис открыл свои поездки. До этого были единичные публикации, показывающие точки начала и конца поездок, но без самих треков. Благодаря нашей работе теперь OSM -редакторы смогут обновлять карту, опираясь на данные, которым не больше, чем два дня. Любое крупное изменение — у нас, условно, включается красная лампочка, и мы идём править.

Да, для обычного человека тут не будет практической пользы. Ну, прикольно один раз зайти и посмотреть, как и куда по Нью-Йорку ездят машины такси. Мы надеемся, что этот шаг побудит другие компании открывать свои данные.

А почему же до вас никто такого не сделал? Вы самые умные?

Думаю, это просто никому не пришло в голову. Чтобы опубликовать такой набор данных, в инициаторе должно одновременно сочетаться несколько качеств и возможностей. Этот человек должен знать, откуда берутся данные в OSM. Это уже сильно ограничивает число таких людей до нескольких тысяч на весь мир. Многие-то думают, что данные в OSM берутся со спутниковых карт, что люди обрисовывают домики, ведь так происходит в других сервисах: в Google MapMaker, в Народных Яндекс.Картах, в Here Map Creator. Но в OSM не так, в OSM это собственные наблюдения: походил ножками, переписал названия, зарисовал, снял треки. И само знание того, что открытие треков может кому-то помочь, — это знание для очень небольшого числа людей.

Второе знание — знание, как это делать. Пусть придёт мысль: да, неплохо бы опубликовать треки. Но тут же ещё одна мысль не даст это сделать: ах да, приватность. Знание того, что треки можно превратить в растр, знание инструментов, которыми это можно сделать, — это тоже доступно очень небольшому числу людей. И из нескольких тысяч остается уже несколько десятков на весь мир. И третье — собственно возможность это сделать. Пусть там какой-нибудь рядовой программист в «Убере» и подумает, что неплохо бы открыть треки, но что он может сделать? Он низший программист, и от него до СЕО десять уровней — идея никогда не пройдет, заглохнет. Очень малое число людей имеет такой доступ к верхушке. Juno повезло, мы ведь небольшой стартап. Я могу написать СЕО, что я, собственно, и сделал.

Идея была моя, и мне помогал Лев, который формально мой начальник. Директор поддержал, но сразу написал: проверьте приватность, чтобы комар носа не подточил.

Началось всё в середине января, тогда я задумался об этом. Где-то две недели ушло на то, чтобы получить все согласования, за день я разработал прототип, и два дня ушло на то, чтобы всё собрать. И ещё с неделю на то, чтобы сделать продакшен-версию: привлечь девопсов, допилить контейнер и всё выложить. Технически там всё просто: я пользовался библиотеками с открытым кодом из OSM, все библиотеки для получения треков я написал заранее — оставалось только собрать конструктор. Не требуется быть супер-программистом для того, чтобы всё это повторить. Внутри это три скрипта, которые каждый день запускаются и сами всё делают. И с двадцатых чисел февраля оно работает.

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

Главное у меня ощущение — не страх от предвкушения, что мы делаем что-то крутое. Обычно оно связано с какими-то техническими вещами: вот, запускаем фичу, которой у других не было. А здесь не столько техническая, сколько идеологическая штука. Поэтому было приятное чувство оттого, что мы можем такое сделать и что нам это позволят. И грело осознание того, что я изнутри нашей компании могу помочь всему OSM. Когда я сюда приходил, я не ожидал, что как-то смогу помочь картам. Знал, что он используется, но не думал, что что-то удастся выдать наружу.

Вы к кому-нибудь конкретно обращались, передавали челлендж? Или просто сами выложили и ждёте, когда-то же самое сделает Uber?

Не думаю, что до Uber и Lyft в ближайшие месяцы можно будет достучаться, потому что они готовятся к IPO. Но я написал в Lyft, я был в контакте с их картографической командой: вот, есть такой источник, пользуйтесь. Они поблагодарили и, думаю, вставят в свои процессы. Пожалуй, надо сказать им напрямую, но буду продолжать «толкать» их косвенно. Например, на конференции OSM регулярно приезжают сотрудники всех райдшеринговых сервисов мира. И я точно так же им расскажу, и в кулуарах буду пинать. Подозреваю, что скорее откликнутся разные китайские компании. Но наверняка не знаю.

Первой откликнется та компания, в которой сотрудники, разбирающиеся в OSM, ближе к верхушке. Те, от которых на конференции ездят не отдельные программисты, а менеджеры верхних уровней. Кто мог бы пойти на такой шаг в Беларуси? Яндекс — сомневаюсь, что откроет. Это чёрная дыра относительно данных. Возможно, какой-то таксишный сервис поменьше, но у них меньше знаний и навыков — я даже не уверен, что они заметят и поймут. Но даже если и поймут, скорее всего, у них внутри всё равно всё технически недостаточно хорошо устроено, чтобы можно было брать и каждый день получать и выкладывать свежие треки. Это у нас богические девопсы, которые всё настроили так, что я за день смогу написать прототип. Реально надо, чтобы сошлось много факторов. Поэтому я, в основном, надеюсь на крупные компании, в которых это всё есть.

Осенью пройдёт всемирная конференция по геотехнологиям FOSS4G. Вряд ли к тому моменту кто-то сделает шаг, подобный нашему. Было бы классно, да, но я сомневаюсь, что в других компаниях смогут это провернуть так быстро. Пожалуй, можно надеяться, что к осени просто будут вестись какие-то работы внутри компаний.

Не побоятся ли другие компании идти на такой шаг? Подумают: ну, Juno открыли — пускай они этим и занимаются, а мы на всякий случай постоим в сторонке. Юристы, знаете ли, безопасность…

Да, большинство побоится, думаю. Не то время, чтобы компании ничего не боялись, тем более большие. Я просто надеюсь, что хотя бы одна компания крупнее нашей не побоится. Если мы зажжём хотя бы одну компанию — будет супер. Делать хоть что-нибудь мелкое — лучше, чем не делать ничего. Любое публичное действие показывает компанию с хорошей стороны. Большинство райдшеринговых и других таксишных компаний в публичной сфере активны только публикацией своих котировок и выходов на IPO, — это плохо говорит о компаниях.

А если кто-то выложит не растр, а именно сами треки, которые можно будет разобрать на отдельные поездки? Не подорвёт ли это доверия к вашей затее?

Давайте вспомним менеджеры паролей. Один из крупнейших — Lastpass — несколько лет назад потерял зашифрованные пароли. Они были зашифрованы каким-то офигенной сложности ключом, их нельзя было расшифровать, но факт в том, что они просто случайно потеряли файл. Бросает ли это тень на другие менеджеры паролей? Скорее наоборот, многие перешли на аналоги. И здесь то же самое. Такой поступок — выкладывание самих треков — скажет что-то о самой компании, которая допустила такую утечку, но не о нашей идее в целом.

Обсуждение