Позднее Ctrl + ↑

Онлайн 2021

Всего через две с небольшим недели начнётся трёхдневная международная конференция для осмеров и про OpenStreetMap, State of the Map 2021. Похоже, это последний раз, когда её проведут онлайн: не нужно куда-то ехать, не нужно говорить с незнакомыми людьми на чужом языке, не нужно даже платить за билет. Три дня выступлений в два потока, шанс увидеть в кадре людей, которым виклиосм уделяет две строчки в списке.

Конференция пройдёт с 9 по 11 июля (пт-вс) на платформе Venueless. Зарегистрируйтесь бесплатно для участия в обсуждениях и чатиках. Прямая трансляция главного зала будет доступна без регистрации, но во втором зале тоже будет интересно: вопросы к Совету, оплачиваемое картографирование, сексизм в OSM, — поэтому лучше вписаться. Программа выступлений уже опубликована, они продлятся с 13:00 до часу ночи по Москве с двумя часовыми перерывами.

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

Участвовать в конференции ещё не поздно. Пятиминутный доклад можно заявить аж до 2 июля. Придумайте тему, добавьте её в вики-таблицу и запишите видеоролик, который посмотрят сотни осмеров со всего мира. Если говорить неохота, нарисуйте плакат про что угодно, связанное с OpenStreetMap. Красивую карту, статью с картинками, скриншоты сайтов или приложений. Размер A0, формат PDF: печатать никто не будет, но картинки вывесят на сайте и покажут в трансляции.

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

Квинси ушёл

В сентябре Квинси Моргану за разработку редактора iD начал платить OSMF. Но что-то пошло не так: в декабре его продуктивность резко упала, а с конца февраля, уже два месяца как, он ни написал ни строчки кода, только принимал иногда чужие пул-реквесты. Последняя версия редактора вышла 18 марта, с тех пор — никакого движения. Так что сегодняшнее объявление, что Квинси больше не работает над iD, логично, хотя и грустновато.

Совет OSMF теперь ищет человека на замену, но оптимизма маловато: судя по графикам вклада в разработку, для редактора не удалось выстроить сообщества, на второй и третьей позициях — люди с 20 коммитами за год, да и то лишь в пресеты и переводы. Немал шанс, что мы наблюдаем закат iD. Что его заменит? RapID? Не могу обосновать, но чувствую, что фейсбук уже на низком старте.

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

Районный бот

Я живу в классическом районе новостроек: широкие проспекты или лес по краям, десятки высоток внутри, и всё в пешей доступности. Застройщик не знал меры с торговыми площадями: у нас три ТЦ и офисные помещения в подвалах почти каждого дома. Короче, столько магазинов и заведений вокруг, что запомнить невозможно, поэтому хочется нарисовать карту.

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

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

Поле ввода и ряд кнопок под ним — это всё, что есть. Нечего таскать, некуда кликать. Бот простой и умеет только отвечать на вопросы. Но знает многое:

  • Ищет заведения по ключевым словам. Да, я внезапно написал геокодер.
  • Выдаёт карту из космоснимка, который я специально обрисовал в гимпе.
  • Подсказывает подъезд и этаж по номеру квартиры для всех домов.

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

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

Каждый вечер я возвращался домой и дописывал бота, чтобы переложить с себя на него все сложности. Вводить «https://» муторно — пусть бот сам превращает «Ttn. By» в «https://ttn.by». Не ждём точек с запятой и дефисов, позволяем пробелы и запятые. Вместо ввода номера дома предлагаем выбор из ближайших адресов. Ну и так далее: не нужно заставлять человека делать работу, с которой справится машина.

Так я собирал по 60-100 заведений в день, около 15 в час. Это включало в себя не только списывание данных, но и иногда разговоры с сотрудниками, которым я раздавал визитки бота. На районе около полутысячи заведений — знай я это заранее, дважды бы подумал, запуская проект. Но теперь он почти завершён, и я готовлю доклад на FOSDEM и приглашения для СМИ.

Уверен, эта новость вызовет три вопроса:

  1. Кто будет обновлять данные, когда я съеду с Маяка Минска?

Не знаю. То есть, конечно, любой человек может нажать кнопку «Поправить» под любым найденным в боте заведением, равно как и добавить новое. Но по опыту понятно, что никто этим заниматься не будет: людям, даже владельцам, проще написать админу в личку или забить. Нужны такие же энтузиасты, как я. И нужен интерфейс, который позволит на повторный обход полутысячи заведений угрохать не неделю, а один-два дня. Его зачатки уже есть (и способ описан в документации), но можно сделать удобнее, особенно для торговых центров. Я пока думаю, как.

  1. Где тут OpenStreetMap?

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

  1. Как мне поднять такого же бота для своего района?

Самый главный вопрос! Бот опубликован на гитхабе, рядом с ним лежит огромная документация в пяти частях на русском языке. В ней я описал весь процесс, от обхода подъездов и установки бота до сбора заведений и администрирования. Если не считать русского языка, сообщения на котором разбросаны по коду, бот не привязан ни к каким атрибутам моего района. Хотите потратить неделю на обход каждого здания и потом поднять полезный сервис для всех соседей — буду рад помочь!

Приложение пилят — опенсорсные щепки летят. Пока готовил данные и писал бота, разочаровался в сложности базовых операций в вебе. Например, получить числа координат для прямоугольника можно на нескольких сайтах (например), и довольно удобно. А вот скопировать координаты одной точки — непросто. Специальные сайты писались семь-восемь лет назад и все сломались. А использовать для этого osm.org, где нужно открывать панель, ставить галочку, нажимать Ctrl+C... Линукс-версия телеграма не позволяет прикреплять координаты, поэтому пришлось писать свой сайт на замену. Очень простой: двигаешь карту, нажимаешь кнопку, вставляешь куда нужно.

Ещё я горжусь редактором точек в GeoJSON, которым пользуюсь для причёсывания базы заведений бота. Классические редакторы типа geojson.io, uMap, QGIS не катят: чтобы отредактировать точку, нужно ползать по таблицам, двигать мышкой, нажимать «сохранить». Здесь же всё супер-просто: двойной клик для создания точки, все свойства — простым текстом типа «name Название», по примеру Level0. Поэтому копипаст пачки атрибутов вообще не проблема. Есть фильтр а-ля поиск в JOSM, всё сохраняется автоматически и можно восстановить, если закроешь вкладку. Никаких меню и не больше шести кнопок на экране.

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

Домашняя картовстреча

Photo © Carolyn Oei — MSF Missing Maps mapathon in Singapore

Давно у нас не было картовстреч — ни вживую (по очевидным причинам), ни онлайн. Давайте соберёмся!

Предлагаю провести у компьютера вечер этой субботы, 19 декабря. Всё просто: между 16 и 20 часами по Москве подключайтесь к серверу домашней картовстречи, а в другом окне запускайте JOSM или iD. Подготовьте наушники и, желательно, микрофон: скажете «привет», а то и поможете кому-нибудь в работе.

Тема картовстречи — дороги. Мы будем учиться использовать снимки Mapillary (или панорамы Яндекса) для уточнения атрибутов дорог: полосности, поворотов, запретов остановки и стоянки. Ориентировочно в 16:30 (время уточняется) нам расскажут, как работать со снимками эффективнее в обоих редакторах. Остаток вечера мы проведём за уточнением дорог своих городов.

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

Официальное начало — в субботу в 16:00 MSK. Завершить планируем к 20, но жёсткого ограничения нет, можно просидеть хоть до полуночи. Записи не будет: это не про информацию, а про общение. Посмотрите на форуме комментарии и заходите на картовстречу!

2020   mapping party

Прощай, Mapbox, и удачи

Иллюстрация с сайта библиотеки react-map-gl © Urbica

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

Последнюю свободную версию Mapbox GL JS 1.13 немедленно форкнули тысячу раз. Главной ветвью будет MapLibre GL, которая объединила Юру Астрахана из Elastic, Klokan Tech, Stadia Maps, MapTiler, Where Group и других. Благодаря Люку из Stadia, мы избежали раздробления сообщества, собрали руководящую группу и даже набросали меморандум. Самое время переименовать зависимости в модулях npm и следить за новым проектом.

Есть и альтернативы: например, легендарный ГИС-комбайн OpenLayers (уже шестой версии!) умеет показывать векторные тайлы, правда, без WebGL. В твитере и Hacker News советуют попробовать:

  • Tangram — библиотека от Mapzen, 2D и 3D карты как плагин для Leaflet. То есть, привычный обвес на javascript и управление слоями и отображением через файл yaml. Её дополняет Tangram ES для того же самого, но на C++.
  • CesiumJS — гигантская библиотека, чтобы нарисовать глобус с объёмными модельками на нём. Написал бы больше, но их сайт не разрешает доступ из Беларуси.
  • Deck.gl — для визуализации огромных наборов данных на карте. От Uber, для которых гео — не главное направление бизнеса, поэтому не закроют.
  • Harp.gl — примерно то же от Here, чуть медленнее и неудобнее.
  • Procedural GL JS — простые 3D-карты из рельефа на основе Three.js.
  • WhirlyGlobe — на замену закрытого полгода назад Mapbox GL Native, SDK для айфонов и андроидов.

Или забить и вернуться к старому надёжному Leaflet: спасибо Ивану, Андрею и другим, что бесконечно полируют и обновляют эту библиотеку. В отличие от древнего форка от Mapbox, который удобнее для быстрого старта, но мёртв уже полтора года.

Есть ощущение провала: такую популярную библиотеку спрятали под пейволл. На основе GL JS выстроены многие другие открытые проекты, и их владельцы сейчас чешут репу. Но это ощущение непросто обосновать: люди оперативно организовали поддержку, смерть от смены технологий библиотеке не грозит, всё штатно. Mapbox как будто запустил новую библиотеку B2B, которую все забудут через неделю, как забыли Vision SDK. Как мы раньше ушли на OpenMapTiles и Kosmtik, так и теперь в этот стек векторных тайлов добавим MapLibre GL, поблагодарив Mapbox за шесть лет поддержки.

Фрагмент старой страницы сайта Mapbox

Эту заметку я хотел написать в духе «смотрите, какие Mapbox плохиши» со ссылками на Mapnik, OSRM, TileMill, Studio Classic, iD, GL Native. Но если серьёзно, они закрыли всего ничего, какие-то большие проекты, которые либо перестали быть актуальными, либо имеют хорошие альтернативы. При этом, как замечают Брэндон Лиу и Владимир Агафонкин на Hacker News, эти большие проекты построены из десятков, если не сотен, маленьких, которые были и будут открытыми. Именно в них главные инженерные достижения, которые стоит брать и переиспользовать.

Откуда же ощущение? Может быть, из-за OpenStreetMap? Компания Mapbox начиналась как осмерская и они наняли толпу разработчиков, близких к проекту. Затем они догадались, что в OSM денег нет, а есть в конкуренции сервисами с Google Maps. Закрыли всю непрофильную разработку и стали околоосмерской: поддерживали пару библиотек, помогали снимками, но не закладывались. Mapbox GL JS был какой-то тонкой, последней связью с сообществом открытой картографии. И теперь её оборвали.

Компания Mapbox так далеко ушла от нашего проекта, что теперь даже Apple и Facebook искушённее в OpenStreetMap, тратят на него больше денег и получают более впечатляющий и более открытый результат — см., например, Daylight Map Distribution. Можно сказать, что эпоха Mapbox как открытой компании вчера завершилась. Остались только щепки из отличных технических библиотечек — ничего особенного, у каждой организации такие летят. Разве что эти чаще касаются картографии.

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

2020   javascript   mapbox
Ранее Ctrl + ↓

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