image

В декабре в открытом международном картографическом сообществе OpenStreetMap, данными которого пользуются многие известные проекты и приложения, такие как MAPS.ME, Mapbox, OsmAnd, CityMaps2Go, прошли выборы в Совет OSM Foundation. Один из разработчиков MAPS.ME, Илья Зверев вошёл в состав Совета решением большинства голосов, став первым русскоговорящим советником за всю девятилетнюю историю сообщества. Мы расспросили Илью о том, как работает OSMF и какие изменения ждут сообщество в ближайшие 2–4 года (столько работают избранные члены Совета).

Как давно ты интересуешься OSM? Что привлекло тебя в проект?

Весной 2010 года я выбирал лучшую бесплатную карту Финляндии для поездки на велосипеде, и ею оказался OpenStreetMap. Вернувшись с треками поездки, заметил, что карту можно редактировать, и дорисовал пару дорожек. Так и влип.

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

Илья, расскажи, пожалуйста, зачем независимому международному сообществу OpenStreetMap нужен Совет, какие вопросы он решает?

Было бы странно, если бы у такого огромного проекта не было какого-то центрального органа. Всё идёт от серверов: чтобы их купить, обслуживать и собирать средства на обновление, нужна организация. Ею стал «Фонд OpenStreetMap», компания, зарегистрированная в Великобритании. Для компаний обязателен совет директоров, а это и есть Совет OSMF. В нём семь человек, и каждый год несколько из них уходят, на их место выбирают новых.

Со временем Совет делегировал практические задачи рабочим группам (working groups): лицензионные вопросы — в LWG (licensing), поддержка серверов — в OWG (operations), решение картографических споров — в DWG (data). От Совета, как от единственного выборного органа в OpenStreetMap, ждут стратегических решений. Также он управляет рабочими группами и бюджетом и взаимодействует со сторонними организациями.

В России есть местный аналог, совет русскоязычного OpenStreetMap. Это не организация, но инициативная группа из одиннадцати человек (я в их числе), которые готовы помочь с вопросами использования или пополнения базы OSM. С ними можно связаться по почте board@openstreetmap.ru.

Какими проектами, связанными с OSM, ты занимался до своего избрания?

За пять лет в OSM я успел позаниматься почти всем. Не раз разжигал споры на форуме и в чате. Составлял сложные схемы обозначения («тегирования») объектов. Организовывал картовстречи (когда собираются единомышленники и обходят пару кварталов, собирая данные для карты) и конференции. Учил школьников. Программировал, программировал, программировал: например, сделал хардкорный редактор карты.

Самым долгосрочным моим проектом остаётся новостной блог ШТОСМ: ему скоро исполнится пять лет, и в нём тысячи полторы заметок обо всём, что как-то связано с OpenStreetMap. Поскольку проект большой, разносторонний и безграничный, в мире каждый день несколько человек делают что-то крутое на его основе. К сожалению, до России новости редко доходят, это я и исправляю. Несколько лет на возгласы «Посмотрите, какую крутую штуку я нашёл!» отвечал: «Уже было в ШТОСМе», но в последнее время немного обленился. Поэтому в прошлом году начал серию еженедельных подкастов: там есть и новости, и гости. В эфире были многие известные картографы и руководители известных проектов, включая «Народные карты Яндекса», NextGIS, карты «Спутника».



Как получилось, что последователь свободных идей решил перейти в коммерческий проект MAPS.ME?

Последовал за свободными идеями, наверное. MAPS.ME разделяет цели OpenStreetMap — дать каждому человеку в мире бесплатную карту, с которой можно делать что угодно. Я работаю экспертом по OpenStreetMap: помогаю с использованием данных и слежу за тем, чтобы функциональность MAPS.ME шла проекту OSM на пользу.

Мне нравится, что MAPS.ME в последнее время повернулся лицом к сообществу OSM: мы открыли исходный код и добавляем функциональность, которая помогает картографам, например пешеходную навигацию (идеальна для проверки данных) и запись треков (в разработке). В этом году мы добавим редактор, чем, видимо, как минимум удвоим количество участников OpenStreetMap.

MAPS.ME открыл исходный код? Но какая компании от этого польза?

Прежде всего, ту пользу, о которой говорят адепты открытого кода, — что немедленно появится сообщество, которое будет писать код за нас, что тысячи глаз проверят исходники на ошибки, что появятся инструменты, основанные на открытом коде, — мы не заметили. Да, несколько человек поправили перевод, ещё трое сделали пул-реквесты в код, но никаких толп.

Как говорил, кажется, Юра Мельничек, open source — это боль. В том смысле, что контрибьюторы появляются, только когда у них возникает какая-то боль, которую они хотят — и обнаруживают, что могут, — решить. Увидел поляк, что выбрали неподходящее слово для почты, — поправил. Обнаружил разработчик, что в API не хватает параметра для раскраски маркеров, и прислал пул-реквест. Мы рады любому вкладу и пока ничего не отклоняли.

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

Польза для компании… Прежде всего — репутационная. У Mail.Ru Group это второй большой открытый проект (после Tarantool). Мы ничего не теряем: едва ли кто-то возьмёт код и попытается с нами конкурировать на нашем же поле. Немного утерян элемент неожиданности, но что-то никто не делает новостей из наших веток и пул-реквестов (а там иногда назревают грандиозные перемены). Но мы помогли OpenStreetMap, увеличив его видимость в информационном поле этим открытием, и помогли Mail.Ru Group опытом выбора и применения свободной лицензии.

image
фотография © Артём Светлов, CC-BY

Насколько сложно опубликовать код такого большого проекта под открытой лицензией?

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

К тому же выбрать открытую лицензию непросто. Только популярных лицензий десятка два. Я подготовил список из пяти наиболее подходящих, который мы с руководством сократили до двух разрешительных: MIT и Apache License 2.0 (самые популярные на TLDRLegal, кстати). Они обе разрешают всё, и мы долго склонялись к первой, потому что она короче. Но в итоге остановились на апачевской, которая длиннее, но в юридическом смысле это сильно лучше: меньше недосказанностей.

С кодом решили ничего не делать, но без документации никак. Я сел и строчил README, INSTALL, CONTRIBUTING и всё остальное. Это в небольших проектах достаточно написать «запустите cmake и затем make» в разделе установки, а у нас собрать можно для всего, кроме Windows (хотя для винды тоже можно, но с большим-пребольшим бубном), включая iOS и Android. Затем, поскольку у нас картографическое приложение, нужно описать, как собирать свои карты, как перекрасить дороги и добавить значков и где хранится список метаданных для объектов. Увы, про правку стилей я так и не написал текст, но на недавней конференции «Открытые ГИС» настройке отображения карты в MAPS.ME учил на практике Андрей Кармацкий.

Технический процесс переезда тоже непрост. Наш репозиторий был в корпоративном гите, и Алекс Золотарёв осторожно перевёл его на гитхаб, с сохранением всех аккаунтов и ссылок. С кучей сопутствующих проектов сложнее. Должны они быть под организацией MAPS.ME или в личных репозиториях, когда они были в личных до переезда? Что сломается, когда наступит час Ч и репозиторий переведут из private в public? Что делать с private-форками, чтобы не потерять пул-реквесты? Куда, чёрт побери, подевалась статистика правок одного из сотрудников?

Наконец, как лучше подать новость об открытии кода в новостях? Если программистам сложно понять открытые лицензии, то нормальному человеку вообще до лампочки, где хранится исходный код его любимого приложения. Раньше кода не было в открытом виде, сейчас есть — ну офигеть теперь. Людей трогают конкретные истории, поэтому мы обратились к гуманитарной команде OpenStreetMap. Это главные пользователи нарисованных карт и мобильных приложений. Мы подумали, что простота MAPS.ME и доступность ежедневных сборок карт побудит их распространять его среди местных, а открытие кода поможет встроить MAPS.ME в свою инфраструктуру. В целом примерно так и произошло, но куда медленнее, чем мы рассчитывали.

Почему ты решил баллотироваться в Совет и какие задачи ты ставил перед собой? В чем заключалась твоя предвыборная программа?

Я считаю, что Совет стал слишком медленным и неповоротливым. В последние пару лет он только лениво отвечает на внешние вызовы, хотя благодаря Саймону Пулу, председателю Совета до 2014 года, он создал несколько полезных документов. Но обычные участники OpenStreetMap не чувствуют пользы ни от Совета, ни от Фонда в целом. Я хочу сделать Фонд активнее, рабочие группы — интереснее и объяснить сообществу, зачем вступать в Фонд, кроме как чтобы пополнить казну на 15 фунтов.

Если конкретнее, то есть много нерешённых проблем почти со всем, что касается OSMF. Например, Совет жутко непрозрачен, и до выборов я не представлял, что происходит внутри. У Фонда немало денег (не как у Викимедиа, конечно), но тратит он их только на серверы и административные задачи. Я хочу ввести гранты на разработку и мероприятия: формально они были, но не слышал, чтобы за всё время выдали хоть один. Хочу объединить сообщества разных стран, разделённые прежде всего языками. Даже русское сообщество постоянно замыкается, просто потому, что писать и читать на английском языке сложно.

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

Кто попал в Совет вместе с тобой? Есть ли шанс у «простых смертных»?

В Совет прошли все известные в сообществе кандидаты. Это Петер Барт, разработчик 3D-визуализатора карты OSM2World и активный сторонник открытого кода, данных и всего остального. Майкл Мэрон, один из основателей «команды гуманитарного картирования». У него это третий срок, и он недавно умудрился провести картовстречу в Белом доме. И Мартейн ван Эксел, бывший президент американского фонда OSM US, постоянно придумывающий способы улучшить качество данных OpenStreetMap. К сожалению, не прошёл Вилле Марсел, активист OSM из Бразилии: думаю, его опыт работы в непривычном для нас сообществе помог бы.

Пройти в Совет OSMF несложно: будьте видимы в глобальных каналах общения (списки рассылки, чаты IRC, блоги) и каждый день работайте на благо OpenStreetMap. Даже безотносительно Совета, помощь OSM — это помощь всему миру. Сложнее понять и быть способным объяснить, зачем нужно идти в Совет. Для конкретных задач он не нужен: есть рабочие группы, есть GitHub и текстовый редактор. Перед тем как принять решение идти в Совет, я несколько лет читал протоколы заседаний и отчёты, думал, что мне не нравится в проекте, что я могу и не могу изменить. Мне кажется, сейчас наступило время, когда на развитие проекта можно повлиять, и у меня теперь есть и желание, и возможность сделать его лучше для каждого участника.

Как прошла твоя первая неделя в Совете?

Первая неделя — время рутины: выдачи почтовых адресов и логинов, передачи дел от уходящих членов Совета, чтения десятков килобайт секретных документов (все съел, разумеется). Мы виртуально познакомились, узнали, что из-за разных временных зон непросто найти время созвониться, но всё же нашли его.

Подытожил первую неделю созвон для общения голосом: живое общение несёт больше информации, чем сухие строчки в чате. Пятничным вечером решили технические задачи и поприветствовали друг друга, на английском языке. В ходе встречи убедились, что все получили ключи доступа для всего, подумали, нужна ли встреча лицом к лицу, и проголосовали за организацию филиала OSMF в Италии. Все созвоны протоколируются на сайте osmfoundation.org, и эти протоколы — главный способ следить за жизнью Совета.

А спустя полтора месяца успели что-нибудь сделать? Какие следующие шаги запланированы?

Мы неожиданно купили домен sotm.org (State of the Map — ежегодная конференция про OpenStreetMap), попросили рабочие группы OSMF спланировать бюджет на год и выдали юридической группе 5 тысяч фунтов на текущие задачи. Ещё поддержали решение рабочей группы по данным навечно забанить одного странного немца, который запугивал и донимал других картографов, в том числе на параллельных проектах. К сожалению, баном история не закончилась, сейчас один из членов Совета готовится к суду.

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

Конкретные дела обычно делают рабочие группы, и мы озадачились возрождением нескольких важных групп. Я сейчас перезапускаю группу по коммуникации, своего рода пресс-группу. Официальные блог, твиттер, фейсбук и т. п. еле живы, и найти людей, которые готовы нести весть об OSM, непросто. В планах есть и инженерная рабочая группа, которая будет поддерживать и направлять разработчиков.

Имеет ли MAPS.ME какую-то выгоду от твоего участия в жизни OSM? Не получится ли так, что представитель коммерческого продукта сможет лоббировать интересы своего проекта во время решения вопросов OSMF?

Если вопрос в том, есть ли выгода для пользователей приложения от того, что я работаю в MAPS.ME, то да. Для осмеров — и, как оказалось, для многих других — я сделал ежедневно обновляемые карты для MAPS.ME, чтобы нарисованное в OSM вчера можно было загрузить утром на смартфон. Моё знание почти всех аспектов проекта OpenStreetMap помогает сделать взаимодействие с серверами и с сообществом проще. Например, сейчас я участвую в создании редактора данных, где иногда приходится лезть в код сайта openstreetmap.org, чтобы упростить некоторые операции, и разбираться в сложных схемах тегирования.

Ситуация конфликта интересов, когда Совет OSMF обсуждает вопрос, который может так или иначе повлиять на компанию MAPS.ME, решается просто: я объявляю об этом и отхожу в сторону. Это вопрос доверия, если любой член Совета его теряет — теряет доверие весь Совет. Для меня OpenStreetMap и OSMF очень важны, и я слежу, чтобы любое моё действие или решение делало проект лучше, как в работе в MAPS.ME, так и в свободное время.

Какое будущее ждёт OpenStreetMap, на твой взгляд?

OpenStreetMap станет больше. Он уже сейчас представляет собой полутерабайтный файл XML в архиве, а скоро объём данных станет вообще неподъёмным. Придётся писать более эффективные инструменты редактирования и обработки, и участвовать в рисовании карты станет почти так же просто, как в редактировании Википедии. Надеюсь, будет больше инструментов для облегчения сбора данных и нанесения их на карту.

Важным направлением развития становится мобильность, все эти приложения на смартфонах и планшетах, а скоро — на часах и в голове. OSM до сих пор лучше всего работает на настольных компьютерах и ноутбуках, хотя «в поле», где лежат лучшие картографические данные, их не возьмёшь. Ну и смартфоны банально более распространены. Когда мы перейдём на мобильную сторону, проект выйдет на качественно новый уровень. Без сомнения, MAPS.ME сыграет в этом важную роль.

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

Комментарии (17)


  1. worldmind
    25.01.2016 18:55

    Не до конца понял, maps.me это интерфейс напрямую к osm или к его копии у mail.ru?


    1. Zverik
      25.01.2016 19:32
      +3

      MAPS.ME — это приложение для просмотра карты, поиска на ней объектов и построения маршрутов. Как и другие приложение, оно надстроено над неким массивом данных, описывающих всю планету и все объекты на ней. В нашем случае, это OpenStreetMap.

      С OpenStreetMap отличие копии от оригинала зыбко. Скачав какой-то фрагмент даже в исходном виде XML из базы, вы получаете копию, которая немедленно начала устаревать и отдаляться от оригинала. В этом плане да, MAPS.ME использует копии данных, обновляемые примерно раз в месяц из центральной базы OSM. Сборки карт хранятся на серверах Mail.Ru, поэтому можно сказать, что MAPS.ME — действительно, интерфейс к копии OSM у Mail.Ru.

      Но есть два важных «но». Во-первых, все копии OpenStreetMap — это тоже OpenStreetMap, вследствие лицензии. Во-вторых, MAPS.ME — преимущественно офлайновое приложение, то есть, после скачивания файла карты можно перевести телефон в режим полёта, и не потерять ни единой функции приложения. А поскольку код открыт, вы можете собрать файлы карты самостоятельно, и избежать общения с мейловскими серверами (правда, смысла в этом немного).


      1. Mikhail_dev
        25.01.2016 20:05
        +2

        Спасибо за вклад в OpenStreetMap, это действительно очень классный проект.

        Еще добавлю что на сколько мне известно, OpenStreetMap комьюнити просит не использовать их сервера для загрузки карт, если у приложения большое количество клиентов, поэтому очень логично что сервера находятся в Mail.ru.

        Подскажите, есть небольшой картографический проект, где мы используем OpenStreetMap, но в нём используем библиотеку osmdroid. Она развивается медленно, да и там нет много чего, к примеру векторного рендеринга для объектов, т.е. текст рисуется на карте как картинка. Возможно ли ваше приложение использовать как либу для отображения данных как в вашем приложении, а также для взаимодействия с нашим сервером? Я так понял у вас код идёт как приложение, и не совсем понятно, есть ли там отдельный модуль, который является библиотекой для подключения карт.

        Спасибо.


        1. Zverik
          25.01.2016 20:24
          +4

          Просьба не использовать серверы относится к тайлам, растровому представлению карты, которое видно на веб-сайтах. Очень часто разработчики приложений считают серверы OSM, купленные на довольно скудные пожертвования, бездонными и позволяют пользователям скачивать картинки карты гигабайтами. Серверы, понятно, от этого желтеют и опадают.

          Продвинутые приложения, такие как MAPS.ME, OsmAnd, Galileo, заранее готовят файлы с векторным представлением регионов, и раздают их с собственного сервера, не нагружая центральные. Те, кто использует растровые карты, делают правильно, подключая их из других источников, вроде Mapbox или Mapzen (или раздавая их самостоятельно).

          Вместо osmdroid можно использовать Mapbox SDK, Mapzen SDK, Nutiteq SDK или ещё что-нибудь. Можно пользоваться и API MAPS.ME, но он ограничен выводом набора маркеров на карте. Если этого недостаточно, вы можете попробовать вытащить графический движок (это разрешено лицензией), но думаю, это будет нетривиально. Отдельного готового SDK у нас нет.


          1. Mikhail_dev
            25.01.2016 23:23
            +1

            Благодарю. Буду пробовать.


  1. tamtakoe
    25.01.2016 23:48

    Писал как-то в поддержку MAPS.ME, что не находит «Большой пр. П.С.», на что мне ответили, что правильно набирать «Большой пр п с». С тех пор не пользуюсь приложением.

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


    1. Zverik
      25.01.2016 23:51
      +4

      Хочется съязвить про ваше мнение очень важно для нас, но нас и самих косяки поиска достали, поэтому если покопаться в репозитории, можно найти ветку с интересным названием: github.com/mapsme/omim/tree/new-search


  1. eugenius_nsk
    26.01.2016 08:08
    +1

    Планируется ли в MAPS.ME учитывать пробки при построении маршрута и ведении по нему?


    1. Zverik
      26.01.2016 09:17

      Нет, не в этом году. Пока нет открытой всемирной базы данных пробок, едва ли мы будем этим заниматься. К тому же, роутинговый движок их не поддерживает, придётся его менять.


      1. dema
        29.01.2016 20:24

        Вот это было бы очень здорово организовать… Я не пользуюсь osmand только из-за того, что в ней нет пробок. Хотя купил платную версию.


  1. fuCtor
    26.01.2016 09:31
    +1

    Например, сейчас я участвую в создании редактора данных, где иногда приходится лезть в код сайта openstreetmap.org, чтобы упростить некоторые операции, и разбираться в сложных схемах тегирования.


    Довольно приятный и понятный код у сайта, хотя есть куда DRY-ить контроллеры. Тегирование отдельная попаболь, одно время очень плотно работал с данными OSM, что только там нет. Думаю разгрести это почти не реально, но стараться работать в этом направлении стоит.

    Отдельно хотелось бы упомянуть POI, куда пытаются утолкать неуталкиваемое, вопрос актуальности. Интересно, нет ли каких мыслей в OSM по этому поводу, может как-то переработать работу с ними?


    1. Zverik
      26.01.2016 09:36

      OSM уже слишком большой, чтобы меняться :) Никакого причёсывания тегов не будет; если что и изменится, то тип area кто-нибудь внедрит.


      1. fuCtor
        26.01.2016 09:46

        Area, это как замена чего? Видел там не редко way, которые описывали не геометрии, а например шэйп для нарезки в Navitel %) не для этого?


        1. Zverik
          26.01.2016 09:48
          +1

          Не, там всё проще: в OSM нет явного разграничения между линиями и полигонами. Есть эвристики, типа замкнутой линии + специальные теги. Это очень неудобно, потому что ведёт к сломанным полигонам и к странным тегам.


          1. fuCtor
            26.01.2016 10:00
            +1

            Ой сомневаюсь, уж больно много переделывать придется, одна только структура БД, куча legacy, использование линковочных таблиц для хранения тэгов. Если бы переехали на PG, можно было бы использовать hstore, в итоге оптимизация по запросам, по операциям записи, клиенты бы даже не заметили, а БД стала бы компактней. Для одного проекта делал backend на основе кодовой базы OSM, была возможность в итоге повыкидывать/переписать подобное, замена точек на POINT (PostGIS) + JSON API, не плохой эффект дало все это.


  1. vitall
    28.01.2016 12:58

    Как можно самостоятельно приготовить карты для Maps.me? У OsmAnd есть такая софтина, но у вас свой формат.