8 заметок с тегом

maps.me

Главное решение

Сейчас читаю очередного Кори Доктороу и его мысли насчёт схлопывания платформ из-за рукомашества. Мол, «мы сделаем всё тип-топ, не обращайте внимания, верьте нам, крутым пацанам». Кори напоминает о «пакте Улисса»: создайте себе ограничения до того, как появятся соблазны. И тут я вспомнил о главном решении в Maps.Me.

Руководители Maps.Me приняли много решений, которые определили это приложение. Они правильно выбрали конкурента (гуглокарты), правильно не стали покупать данные, воспользовались поглощением, чтобы сделать приложение бесплатным (и, следовательно, доступным каждому). Придумали монетизационную модель, которая не мешала, а помогала пользователям: гостиницы booking.com, работавшие и без интернета, приносили львиную часть прибыли. Работая там, я слабо понимал, насколько деморализующими могли быть альтернативы.

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

Объяснять, зачем нужно открывать код, было довольно просто. Чтобы сообщество участвовало в разработке (хаха). Чтобы доказать свою готовность работать с другими. Маркетинговый повод (мало кто заметил, на самом деле). Важным было не навредить продукту — и я уверял: над Maps.Me работают полтора десятка крутых инженеров, и чтобы кому-то «увести» продукт, понадобится создать такую же команду. Мы ничего не теряем и становимся более благонадёжными.

Mail.Ru сделал пару пресс-релизов, потом мы помогли сделать страницу opensource.mail.ru, которую с гордостью возглавляли. Со временем на ней нас заменила база данных Tarantool, а потом и она отъехала. Мы продолжали кодить, в гитхаб сыпались сотни тикетов от пользователей, но нас это не смущало: мы привыкли работать без баг-трекера. Несколько людей сделали форки для своих задач, в сторах появлялись фейковые копии с платными частями, но MAU рос, Maps.Me был главным и лучшим.

А потом давление мейла заработать деньги стало слишком большим, и команда начала сыпаться. CEO начал дёргаться. Приложение начало плющить. Mail.Ru не понял, зачем им дальше его тащить, и они продали приложение корейским криптанам. Это ощущалось, как поражение.

Но вспомним о «пакте Улисса»: открытый код невозможно провернуть назад. Поэтому стал возможен Organic Maps, вышедший всего через полгода благодаря изначальным авторам Maps.Me. Всё то же самое, но без единого трекера и без реклам. Продолжились сборки данных, продолжились починки багов, и самое удивительное — продолжилась разработка!

Да, чтобы конкурировать со старым Maps.Me, понадобилась бы большая команда. Чтобы конкурировать с новым, который в момент помешательства даже заменил офлайн-карты на библиотеку от Mapbox, достаточно просто не делать хуже. Organic Maps живёт и догоняет Maps.Me по пользователям не потому, что маркетологи покупают установки и рекламируют приложение, а потому что пользователи советуют установить эти карты всем своим знакомым.

Более того, они развиваются! Над приложением работают несколько сотрудников, плюс им помогают пул-реквестами остальные. Только в прошлом году в Organic Maps добавили импорт GPX, линейку, стиль для походов, и даже сборку для Android Auto. По мне, это невероятно, что в отсутствие какого-либо финансирования, разработчики не только делают новые штуки, но ещё и терпят странные требования и ругань пользователей в телеграме.

Это чудо стало возможным, в первую очередь, благодаря главному решению — открыть исходный код. Не знаю, кто из основателей Maps.Me это придумал, — Юра, Алекс, Витя, они все могли. Не уверен, что они ожидали, что из этого выйдет что-то путное. Но заложив основу открытости, они, как оказалось, сделали приложение бессмертным, как OpenStreetMap бессмертен по той же самой причине. Как AMDmi3 комментировал девять лет назад, недостаточно обещаний сделать всё хорошо, важны юридически связывающие действия.

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

 4 комментария   2 мес   maps.me   mobile

Хакатон MAPS.ME

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

Самая большая команда разработчиков, включая программистов под iOS и Android, набросилась на задачу UGC: добавить отзывы в карточки объектов. Кажется тривиальной задачей: мы видели отзывы и в специализированных приложениях, типа Foursquare, и в популярных онлайн-картах. Но приложение MAPS.ME хорошо не только дизайном, но и работой в отсутствие интернета. Как вы сделаете отзывы, когда нет сети?

В конце хакатона группа UGC показала звёздочки и смайлики для оценки заведений, но картинки не отразили масштаба работы. Разумеется, должны быть отзывы, и их нужно не только собирать в офлайне, но и показывать, то есть, хранить в файлах карт. Это требует лучших алгоритмов сжатия. Для ресторанов полезно спросить, понравилась ли еда, и какая именно, а для автомойки — качественно ли протёрли кузов и вежливо ли обошлись. Команда вручную просмотрела около 250 категорий объектов, выбрав для каждой признаки, которые могут быть интересны пользователям.

Поскольку внутренние идентификаторы объектов меняются с каждой сборкой карт, мы привяжем отзывы к идентификаторам OpenStreetMap. То есть, по сути, мы проектируем систему отзывов на объекты OSM — как давно мечтали некоторые наши участники. Прошлые попытки не вышли из статуса демонстраций для своих, а тут сразу будет аудитория из десятков миллионов пользователей. Наконец-то они будут писать «неплохая пицца» не в название ресторана, а в отзывы. Может быть, удастся договориться с руководством MAPS.ME об общей базе с другими приложениями на OSM.

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

OpenStreetMap — глобальный проект с единой системой тегирования. Если получилось нарисовать московское метро — получится и нью-йоркское. Так мы думали. Хорошая попытка, но нет: русские рисуют линии не так, как немцы, англичане — не так, как корейцы. Как вы знаете, схема метро состоит из трёх элементов:

  • Станции — на самом деле, это комплекс из платформы, точек, где останавливаются поезда, и станции как сущности. Нередко это четыре разных объекта, а то и больше. Схема общественного транспорта 2.0, при этом, забывает про точки railway=station в случае метро: это же не платформа и не остановка, дублировать нельзя. Это вообще не физические объекты! Мапперы иногда тоже о них забывают. А с отношением stop_area вообще получается тушите свет.
  • Линии — опять две сущности в одной. Это и пути, по которым движется поезд. Картографы очень любят их рисовать, потому что получается красиво, и считают их главной частью отношения маршрута. Увы, пользы от них ноль: важна линия как последовательность остановок, от первой до последней. И тут бардак. Причём, в России ещё нормально, пришлось править только московский МЦК, а в Лондоне многие линии почти не имеют станций.
  • Пересадки — их в OSM нет. Не в смысле, не нарисовали, а вообще: для пересадок нет схемы тегирования, никто даже не пытается их картировать. Иногда встречаются попытки смоделировать пересадки отношением stop_area, но лучше бы не пытались. Приходится определять пересадки по близости и затем удалять лишние рёбра.

В общем, за три дня и не такие данные удавалось выпрямить: мы не только автоматически обработали, пусть и с ручной доводкой, системы метро Минска, Москвы, Петербурга, Вены, Барселоны и Сеула, но и сделали полноценный интерфейс! Команда удивлённо наблюдала знакомые схемы в городской геометрии на затенённом фоне карт, а докладчик выбирал станции и прокладывал маршруты с пересадками. Видео его демонстрации опубликовано на ютубе, выглядит примерно так:

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

В перерывах между работой мы купались, жарили шашлык и бургеры, катались на велосипедах (не всем удалось миновать охрану и поехать изучать окрестности реки Яхромы) и сегвеях. Когда садилось солнце, кто-то увлечённо пел караоке, кто-то, уединившись, смотрел фильмы ужасов. Удивлялись безальтернативному меню ресторана и в панике тушили угли, пока ураган не швырнул их в деревянный дом. По пути домой с трудом не выезжали на автобусные полосы: несмотря на дни работы среди коллег, сложно было поверить, что за окном не воскресенье, а середина рабочей недели.

 7 комментариев   2017   maps.me

Букинг в кармане

Вчера вышла новая версия MAPS.ME, в ней, помимо коекакового велороутинга появились точки из базы booking.com. Кликнешь на гостиницу — и с большой вероятностью узнаешь не только название и количество звёзд, но уровень цены и рейтинг по букингу. И, конечно, ссылку на бронирование, с секретным номером, по которому нам переведут часть комиссии. Так что для бронирования гостиниц и хостелов пользуйтесь теперь только MAPS.ME! Мадина в фейсбуке правильно заметила, что приложение теперь стало не только «картой в кармане», но полноценным офлайновым каталогом рейтингов booking.com в кармане: приехав в другой город, можно не искать интернет, а прямо выбрать ближайшую приличную гостиницу.

Ещё это означает, что внутри файлов mwm теперь собраны данные из OSM и из проприетарного источника. Это значит, что если вы их вытащите, распространять их нельзя. Также это потребовало аккуратного подхода, ведь лицензия OpenStreetMap запрещает смешивание. Мы не могли использовать ни координаты, ни локализованные названия закартированных гостиниц. По сути, мы просто выкинули 84 тысячи точек и шлёпнули поверх 856 тысяч проприетарных точек. Чтобы не выкладывать гигабайты изменённых данных OSM, мы ограничились публикацией файла skipped_nodes.lst в каталоге карт: вырезав точки с этими идентификаторами из данных OSM, получите ровно то же, что видно в приложении.

Вы правильно озадачены, почему так мало вырезали и почему в приложении так много задублированных гостиниц? Мы не успели сделать сопоставление с площадными объектами, поэтому если теги висят на здании, оно останется. Можно ли обойтись без данных booking.com? Конечно: качайте ежедневные карты, там всё для осмеров. Разумеется, их можно совместить: например, для своего города пользоваться ежедневными сборками, а для путешествий качать официальные карты. Главное, качать не зря: ищите гостиницы по новой большой базе и бронируйте, как выберете!

 5 комментариев   2016   maps.me

MAPS.ME наградили

«Дырявому Активному Гражданину дали Премию Рунета. Это всё, что вам нужно знать о Премии Рунета» — @plushev.

фотография из фейсбука «премии рунета»

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

С одной стороны — мы и википедия (поздравляем их, снова), с другой — половина лауреатов и в наших, и в других номинациях очень странные, вроде развенчанного «активного гражданина», налоговой службы, каких-то нефтяных компаний... Где РБК и «Медуза» в номинации «СМИ»? Церемония обставлена богато, с секьюрити, випами и лентами, на большом экране профессионально сделанные ролики — хотя нет, такие косяки с кернингом и задержками уважающая себя студия не позволит. Среди ведущих ни одного известного в «нормальной» IT-тусовке человека, кроме Алёны. Короче, видеозапись стоит смотреть сразу с 2:04, где наш звёздный час.

И да, нам нужна своя премия, с лупами и картографами.

 6 комментариев   2015   maps.me

Открытие года

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

Это здорово для программистов, которые хотят сделать форк картографического приложения, и для читателей кода, но лучше всего — конечно, для OpenStreetMap. Популярнейшее приложение для OSM теперь любой [разработчик] может настроить по вкусу: убрать или добавить какие-то виды объектов, заменить картостиль, убрать лишние функции. Приложение мультиплатформенное: после модификаций его можно установить почти каждому. И разработчики теперь не прячутся за почтой bugs@maps.me: любой может заглянуть в список пул-реквестов и узнать, чем порадует ближайший релиз.

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

 9 комментариев   2015   maps.me
Ранее Ctrl + ↓

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