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

osm.org

OAuth 2

Как знают немногие осмеры, с 1 июня на сайте openstreetmap отключили аутентификацию по паролю и через OAuth 1.0a.

Первую версию протокола OAuth сайт поддерживал с августа 2009 года, через год добавили поддержку 1.0a (потому что в 1.0 была дыра). Вторую — с августа 2020, так что неудивительно, что десятки сайтов и приложений не спешили на неё перейти. Популярности OAuth 2 не добавляли сложность внедрения, проблемы с тестированием, меньший уровень безопасности и прочие проблемы из статьи Эрана Хэммера, главного автора спецификации.

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

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

Level0 — один из редакторов, автор которого не успел обновить код. Сейчас он не работает: пользуйтесь расширением для браузера и ждите. У маленьких редакторов нет поддержки от OSMF, как у iD, или от армии джава-язычных немцев, как у JOSM. Код Level0 был написан десять лет назад на PHP, так что трогать его — себе дороже.

Разработчики open source часто вынуждены посвящать всё своё время работе и семье, что оставляет их собственным проектам считанные часы в неделю. Большие корпорации, чья инфраструктура опирается на работу таких людей, горячо их благодарят и просят писать ещё. Взамен они готовы поставить звёздочку на гитхабе. Как писал Брэндон Лиу, автор Protomaps, «если компания спрашивает, почему в открытом проекте не хватает важной функции, но не готова платить за её написание, то эта функция не так уж и важна». В мире open source разработчиков поддерживают другие open source-разработчики.

Например, компания OpenCage Эда Фрейфогла не только делает один из лучших API для получения метаданных на любую точку планеты (как Nominatim, только лучше). Она также проводит мини-конференции Geomob, составляет увлекательные треды в mastodon и поддерживает финансово проекты, связанные с геокодированием и OpenStreetMap.

Сегодня эти две истории объединились: OpenCage спонсировала перевод Level0 на OAuth 2 в течение этого месяца.

Это означает, что к 1 июля не только код редактора будет обновлён, но он также переедет на новый сервер и получит сертификат SSL для https. После чего единственным браузерным редактором, не требующим JavaScript, снова можно будет пользоваться.

Надеюсь, что для кого-нибудь эта новость стала откровением: «а что, так можно было?» Пожертвования — это хорошо, и молодцы те, кто оформляет регулярные перечисления фондам, газетам, авторам и разработчикам. Но ещё лучше — организационная и институциональная поддержка. В контексте OpenStreetMap помощи можно ждать только от фонда NLNet, а на OSMF надеяться нечего, как и на крупных пользователей наших геоданных, типа Meta, Apple, Microsoft и Grab. Но для заметных улучшений многого и не требуется: всегда есть какая-то мелочь, неудобство, до которого у автора просто не доходят руки. И это те случаи, когда средних размеров компания может сделать ощутимый для осмеров вклад. Стоит только открыть метафорическую дверь и осмотреться.

3 мес   osm.org

Внезапная топо-карта

На глагне новый слой карт — впервые с января 2021 (когда туда добавили CyclOSM). Он называется Tracestrack Topo, выглядит контрастнее и чище на близких масштабах, но топорно на z11 и дальше, где протекают его истоки из OSM Carto и OpenTopoMap. Из всех стилей на osm.org этот приятнее для глаз и удобнее, если планируешь поход. И он очень быстрый: три сервера для рендеринга и ещё пять кэширующих!

Откуда он взялся — загадка. Для начала, не было ни предупреждений, ни объявлений. Он просто появился. Слоя нет в списке предложений на вики — автор добавлял его в декабре и сразу удалил, а с мая Пол Норман вообще очистил все предложения и попросил писать напрямую OWG. Которая не публикует протоколы совещаний с января. Совет OSMF здесь ничего не решал. Короче, процессы в OpenStreetMap понемногу закрываются, в основном из-за непрозрачного OWG.

Автор — Qing Cai из Нидерландов. Это примерно всё, что можно узнать о нём и его компании Tracestrack из одного человека. Публичная история примерно такая:

  • 2015—2019 — интересовался записью и отображением GPS-треков, о чём написал пару постов в Medium.
  • 2020 — пришёл в OpenStreetMap и начал картировать Китай и улучшать страницы по нему в OSM Wiki.
  • 2021 — создал картостиль для своего приложения на базе OSM Carto.
  • 2022 — зарегистрировал компанию Tracetrack для продажи тайлов и сфокусировался на ней.
  • 2023 — открыл исходники TracesMap, как сообщил WeeklyOSM, а теперь ещё и добавил свой слой на osm.org.

Это довольно вдохновляющая история — не каждая компания может позволить себе достаточно серверов, чтобы справиться с нагрузкой от глагне! И слой на osm.org — лишь вершина айсберга. Если всмотреться в демонстрационный сайт, он собран из нескольких растровых и векторных слоёв: заменяемой подложки и надписей (выбор из 21 языка), плюс дополнительные слои типа велотрасс или машрутов общественного транспорта. Похоже на то, с чем мы экспериментировали лет десять назад, но, как видно, работает!

11 мес   osm.org   картостили

Современные тайлы

Этим летом отключили две незначительных штуки, связанные с тайлами OpenStreetMap. Про них почти никто не знал, но это знание придавало ощущение «внутреннего круга», техничности. Сродни умению написать запрос в API без подсказки.

Во-первых, веб-карты больше не должны добавлять префиксы к названию сервера тайлов. Никаких b.tile.osm.org и никаких {s} в шаблонах для Leaflet и JOSM. Соответствующие изменения уже приняты в Leaflet, OpenLayers, FlutterMap, OsmDroid, Overpass Turbo, MapsForge и других. Уберите и вы из своих карт, добавив ссылку на пул-реквест или коммит в тикет по ссылке выше.

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

С внедрением протоколов HTTP/2 и HTTP/3 подобные ухищрения устарели. Теперь ограничений нет, можно качать хоть всё одновременно. А без префикса становится проще кэшировать тайлы: в кэш попадает нормальный адрес, для всех один. Сейчас запросов по всем трём версиям протокола примерно поровну. HTTP/1, скорее всего, пользуются только приложения, а не браузеры. В том числе те, что грузят тайлы бочками.

Во-вторых, больше не работают суффиксы /status и /dirty для отдельных тайлов. Знающие люди добавляли их к адресам единичных тайлов, чтобы узнать, когда они были отрисованы, и при необходимости перерисовать. Они устарели и отключены: когда тайлы отрисовывают семь серверов, команды отправляются на любой из них — часто не тот, который прислал картинку.

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

 2 комментария   2022   osm.org

Савёловские Мнёвники на Кушелевке под Семково

С этого дня поисковик Nominatim на главной osm.org по запросу «Савёловский» возвращает точно такие же результаты, как по «Савеловский», без «ё». Сара Хоффманн встроила в обработчик данных токенизатор ICU, благодаря которому взаимозаменяемые буквы можно заменять. Это требовало перезаливки данных в базу, которую приурочили к выходу Nominatim 4.0.0.

Действию, очевидному для любого, кто владеет русским языком, Nominatim просили научить с 2018 года. Было два способа: воспользоваться новым токенизатором, добавленным в PostgreSQL за пару месяцев до просьбы, или поправить таблицу автозамены в Nominatim. Последнее K Rahul Reddy сделал слишком поздно: его пул-реквест отклонили, потому что таблицу планировали убрать.

Русскоязычным сервисам было бы разумно забыть о номинатиме и воспользоваться альтернативными поисковыми движками: Pelias или Gazetteer. Не Photon — тот работает на данных Nominatim и пока различает эти буквы. К сожалению, размер имеет значение: несмотря на проблемы с поиском и сложный процесс установки, люди предпочитают пользоваться движками из списка Top 1.

В этом году разработка Nominatim набрала невиданную скорость: релизы выходили один за другим, а Саре постоянно находила что-то новое, о чём рассказать на конференциях или в блоге проекта. Причина — в деньгах. Движок останется открытым на 100%, но это не означает, что разработчики будут голодать. На сайте упомянуты несколько спонсоров — NLNet, OpenCage, GraphHopper, Komoot и другие. Судя по их количеству и по тому, что OSMF, чей грант запустил ускорение проекта, упомянут последним, денег там достаточно, чтобы Сара не занималась ничем другим. Это обнадёживает: может, скоро движок научится другим полезным эвристикам, типа учёта дефисов, пробелов и литер в номерах домов.

Помимо замены самопального токенизатора на стандартный ICU от ассоциации Unicode, в четвёртой версии убрали скрипты командной строки на PHP в пользу единого инструмента на Python. Этот инструмент помогает во всём, от подготовки базы данных до её обновления и администрирования. То есть, кажется, теперь не нужно устанавливать PHP для подготовки данных. В документации дописали большой раздел про настройку движка. И теперь можно подключить базу почтовых индексов для любой страны, а не только для США и Великобритании, как раньше.

2021   nominatim   osm.org   проекты

Свой Overpass

Сегодня у сайта osm.org появился свой выделенный сервер для запросов к Overpass API. Он не публичный (и пожалуйста, не надо добавлять его себе в зеркала) и предназначен только для одного: поиска объектов вокруг заданной точки. Когда вы выбираете на сайте инструмент «Что здесь?» со стрелочкой и знаком вопроса и тыкаете в карту, сайт запрашивает список у Overpass API (потому что OSM API этого не умеет). Раньше это был сторонний сервер overpass-api.de, теперь — свой.

Эта новость порадует всех, кто пользуется инструментом «что здесь». Как узнать, что стало лучше? Тыкните в любое место три раза подряд. Из-за драконовских ограничений сервера раньше вы гарантированно получили бы ошибку: слишком много запросов. Теперь и на десятый клик сайт стабильно показывает объекты рядом и полигоны, содержащие заданное место. Видеть, как Overpass API работает без сбоев, умилительно: будто вернулся на пять лет назад.

Кажется, это была единственная часть сайта, которая работала нестабильно. После перехода с тайлового CDN (тридцать серверов которого так и стоят без дела) на Fastly ушли проблемы с медленными тайлами. Удивительно, но когда платишь людям за работу, эта работа оказывается сделанной хорошо. Построение маршрутов обеспечивают немецкий сервер OSRM (оплачен FOSSGIS) и немецкий же GraphHopper (витрина их бизнеса), оба стабильные. Чужие тайловые слои работают как часы, включая добавленные за пандемию французский велосипедный и немецкий общественного транспорта.

Но этот переход напоминает, что на самом деле стабильность стоит очень больших денег. Восьмиядерные серверы со ста гигабайтами памяти и терабайтом диска для Overpass API на дороге не валяются. Прокладка маршрута будет вам стоить от 50$ в месяц. Чуть меньше, если поднимете сервер на амазоне сами. Геокодирование платное. Тайлы платные. Кэширующий CDN тоже дорогой. А если хочется бесплатно и по-быстрому, то ограничения делают открытые сервисы бесполезными для публичных проектов.

OpenStreetMap — это открытые и бесплатные карты для каждого. Для каждого человека. Но когда нашими сервисами начинают пользоваться компании, оказывается, что стоимость этого пользования слишком велика. Раньше мы могли банить проблемных пользователей по-одиночке, но теперь их слишком много. Карты нужны всем. И либо ты строишь забор, который мешает и тем, кто растит в саду яблони, либо каждый день будешь видеть длинную очередь людей в костюмах и с пустыми мешками.

2021   osm.org   overpass
Ранее Ctrl + ↓

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