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

Позднее Ctrl + ↑

Будущее райдшеринга — это автобус

На этой неделе компанию Juno, в которой я работаю, закрыли. Всех разработчиков взял к себе Lyft — другой американский райдшеринг. Раньше мы работали с одним Нью-Йорком, теперь наше поле работы — все Соединённые Штаты. Весёлые времена. Мне даже в штосм теперь нельзя писать — жду разрешения от команды Lyft. До тех пор текст пришлось удалить.

В чём же будущее?

Главный вопрос OpenStreetMap

Сейчас в Призрене, Косово, идёт конференция State of the Map SEE (юго-восточной Европы). Видеозаписей не будет: она по-настоящему локальная, для той пары сотен человек, кто понимает английский. После моего доклада появились несколько идей, которые стоило записать. Если хотите контекст — следите за телеграм-каналами @foss4g_ru и @shtosm.

Рассказал про OpenStreetMaps во множественном числе. Втопил за многоязычность и разнообразие среди участников — и понимание, что у нас не одна OpenStreetMap с единым всемирным сообществом, а тысяча отдельных OSM с тысячью маленьких и больших сообществ, у каждого из которых свои практики тегирования и мнения о полноте карты. Я не понимаю, как здесь, в Косово, отметят свои кебабные рестораны на карте их владельцы, когда они не могут даже узнать про OSM (сайт этой конференции — только на английском) и узнать его правила (перевода вики на албанский нет).

Сейчас с Феликсом классно обсудили эти наблюдения. Спросил у него про нападки на Missing Maps. Европейцы замечали, что от всей этой инициативы веет колониализмом: белые мужчины решают, как выглядеть карте Африки и Азии. С другой стороны, карта колониальна по своей природе: ты идёшь в соседний двор и решаешь, как ему выглядеть на карте, что должно там быть и что нет. Карта — это власть; нельзя делать карту и не иметь власти. Цель подобных конференций — поделиться этой властью, дать её как можно большему количеству людей.

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

Другое, о чём мы задумались, — OpenStreetMap как средство получения и передачи знаний. Ты не рисуешь домики, а узнаёшь, как устроена карта, как проекция влияет на прямоту углов, как спутниковые снимки соотносятся с картой. Ты получаешь важные знания и даже не обращаешь на это внимание. Потенциальные картографы в деревнях, охваченных Missing Maps, лишаются этого: всё нарисовано за них. Для компаний и кампаний OpenStreetMap — это данные. Нужно больше данных, нужны свежие данные. Но людям нужны не данные, а знания. Люди — особенно люди из далёких стран — предпочтут научиться, предпочтут освоить удочку, а не получить рыбу. Закрашивая карту из лучших побуждений, мы лишаем этих людей знания.

Важная часть обучения картографии — ошибки. Придя в проект, ты рисуешь кривые домики, выбираешь глупые теги (я помню про свои juridical_faces) и забываешь соединить улицы. Потом понимаешь, в чём ошибка. Придумываешь свои теги, обращаешь внимание на мелочи, которые не интересуют других: на полосы обгона, кусты вдоль дороги, люки. Быть в OpenStreetMap на заре его становления было классно: ты двигался наощупь и узнавал многое в процессе.

Сейчас если ты сделаешь ошибку, тебе в личку быстро придёт кто-то из сотни валидаторов и сообщит о ней. Может, даже отругает. Всё стандартизировано, везде валидаторы. Карту используют в Facebook, Mapbox, Microsoft, Apple. Она должна быть однообразна и корректна. У современных новичков в OSM нет права на ошибку. Они приходят и становятся частью даже не сообщества, а армии картографов, где всё должно быть ровно, параллельно и покрашено в уставные цвета. Из проекта уходит игра и приходят задачи. А игра — это лучший способ получить знания. Корпорации и опытные картографы лишают участников знаний в обмен на большие и качественные данные.

Непонятно, что с этим делать. Возможно, это лишь моментное чувство, а OpenStreetMap, как мы знаем, не оперирует моментом: на него нужно смотреть через десять, пятьдесят лет. ML и AI, которые никогда не приносят новых знаний, как пришли, так и уйдут. Может, мы поймём, что OSM идёт не туда, и сделаем альтернативу. Может, мы запретим массовые правки. Или запретим препятствовать им. В ближайшие годы нам придётся ответить, что такое OpenStreetMap. Данные или карта? Игровая площадка или галеры? Средство общения или проект? Польза или сообщество? Наш совместный ответ определит будущее проекта — и, конечно, оно не понравится никому в любом случае.

Не согласны делиться

С первого октября в рассылке osmf-talk люди обсуждают public domain. Сначала Северин спросил, можно ли как-то снять галочку, поставленную напротив согласия с PD при регистрации. Ему быстро напомнили, что эта галочка — не юридически значимое согласие, а, скорее, опрос мнений. Не нужно делать второй аккаунт со снятой галочкой или писать пул-реквест в код сайта: твоё мнение и так ничего не решает.

Чтобы получить значимость, галочка должна сопровождаться длинным списком условий. Например, что пользователь обязуется не использовать источники не в общественном достоянии (такие как спутниковые снимки или открытые данные в РФ). И что он не основывает свои правки — по части геометрии или тегов — на данных других пользователей OSM, не отдающих свои правки в public domain.

Нельзя отрицать, что права на свой вклад готова отдавать значительная часть сообщества: по данным 2013 года, 44% редакторов с хотя бы одной правкой поставили эту галочку. 580 участников с личной страницей в нашей вики поставили на неё шаблон PD-user, который в более строгих терминах разрешает использовать их правки. Правда, людей в вики формально нельзя связать с редакторами в API. А эта галочка… Многие признают, что она выглядит как стандартная «правила не читал, но согласен», свойственная многим формам регистрации, поэтому люди нажимают на неё непроизвольно и не понимая, чем это может быть чревато.

Так что участники пришли к консенсусу: галочку нужно убрать из формы регистрации. Это не должно быть проблемой, потому что список поставивших её недоступен никому, кроме OSMF, и потому никто его не использовал. Фредерик послал официальный запрос в LWG. Участники уже начали заглядывать в код сайта, чтобы понять, насколько сложно будет вычистить оттуда public domain. И нашли там смешное.

Оказалось, что где-то между 2010 и 2015 годами значение галочки про public domain перестало сохраняться в базу данных. Мы не знаем, кто с тех пор был согласен, а кто нет. Команду сохранения случайно удалили во время добавления на сайт условий участия. Поскольку сайтом у нас заведует единоличный Том, никакого code review его коммита не было, строчка просто исчезла.

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

Рисование карты по Канту

Прочитал на «репаблике» краткий пересказ тезисов Канта в отношении морали и этики и понял, чем мне не нравится инициатива Missing Maps. Они подменяют категорический императив гипотетическим, этим вредя проекту, перенося его в статус необязательного.

Многие из нас рисуют карту просто потому что могут. «Картировать должен каждый» — эта фраза, в которой обычное «может» подменяется императивом «должен», руководит нашим выбором. Особенно если подменить слово «картировать» на «улучшать OpenStreetMap», где первое слово обозначает всё: и программирование, и написание текстов, и организацию мероприятий. Это категорический императив: он ничем не обусловлен и мир стал бы лучше, если бы им руководствовался каждый.

Тут приходят активисты Missing Maps и говорят: «рисуйте карту — она спасёт жизни!» На призыв откликаются тысячи людей, которые очень быстро наполняют данными белые пятна в OpenStreetMap. Проекты гуманитарной команды один полезнее другого: где помогают оценить ущерб от наводнения, где — спрятать девочек от обрезания, в Филиппинах превентивно закартировали всю страну не только для экстренного реагирования, но и для госпроектов. Всех людей в гуманитарной команде объединяет наличие цели: они не рисуют карту, а помогают людям. Для них карта утилитарна, картировать — это гипотетический императив.

По Канту, следование гипотетическому императиву легально, то есть, полезно и правильно, но не морально. Этически развитому человеку не нужны причины, он следует долгу, и если он знает про открытую карту, то улучшает её, не придумывая, зачем он (или она) это делает. При этом, не имеет значения, OSM рисует человек или «Народную карту»: то и то считается моральным, потому что позволяет реализовывать свой долг его описания. Способ реализации не важен, покуда действие является добром для мира. Поэтому я когда-то вполне мог оказаться в НЯК и рассказывать по всему миру о нём, а не об OpenStreetMap.

Если люди рисуют карту одинаково продуктивно, руководствуясь и категорическим, и гипотетическим императивами, то какая разница? По Канту, поступок, сделанный не из долга, несовершенен. С точки зрения опытных участников проекта OSM разница налицо: имея целью не выполнение долга по улучшению карты, а стороннюю цель («спасаем жизни!»), люди на самом деле не улучшают карту, а вредят ей. Клацают кривые домики «на отвяжись», засоряют города линиями без тегов и дорогами невпопад. Ещё не сформировавшимся местным сообществам придётся не рисовать карту с нуля, как мы любим, а разгребать чужие ошибки. И это мы ещё не говорим про автоматическое рисование.

Проект Missing Maps невероятно эффективен в привлечении редакторов. Но его существование — проблема для проекта, равно как и наоборот. В 2016 году мы спорили насчёт термина craft mappers, которым Майкл Мигурски окрестил людей, препятствующих развитию OSM. Кажется, философия Канта объясняют, в чём именно он был неправ: craft mappers — это люди, для которых улучшение карты является категорическим императивом. Этот императив требует от них контроля и абстрагирования от реальных задач для карты. Их сложно понять тем, у кого карта не входит в число абсолютных ценностей.

Это не значит, что Missing Maps нужно закрывать, или что их мероприятий нужно избегать. Напротив. У лекторов проекта можно научиться заражать своим видением мира других, а затем помочь участникам не сильно портить карту. Они дают шанс подумать, что станет с OSM, когда о нём действительно узнает каждый. В субботу 12 октября в Москве рядом с метро «Белорусская» состоится первый марафон Missing Maps в России. Сходите на него и побудьте ответственным картографом, записавшись в валидаторы и проверяя правки новичков.

7 мес   hot   ВНЕЗАПНО

Желаем того, что имеем

Пока готовился к докладу, прослушал много попыток представить API 0.7 другими людьми, особенно Йохеном Топфом и Энди Алланом. И прочитал, конечно, страницу в вики. Предложений много. Самые радикальные, но с которыми сложно не согласиться, проходят по разряду «наша модель данных сложная, давайте приблизим её к Simple Features». Специальный тип для полигонов, например. Но правильно ли мы хотим?

У нас же всё есть. Мы уже умеем отличать закрытые линии от периметров, умеем разбирать мультиполигоны. Зачем упрощать, когда незачем упрощать? То же самое в предложении Йохена убрать точки без тегов и добавить линиям координаты — по сути, собственную геометрию. Да, сейчас кэширование координат ест память, собирать объекты неудобно. Но кто сказал, что должно быть удобно потребителям данных? Удобно должно быть редакторам, потому что OpenStreetMap — проект для редакторов. С их позиции всё отлично: тайлы рендерятся, данные в базу загружаются, osmium вообще быстрый стал.

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

Разумеется, API всё равно устарел и его нужно менять. Только смотреть не туда, куда показывают натруженные пальцы программистов. А туда, где болит конкретно у вас, картографов. Вандалы замучали? Давайте думать, что нам упростит поиск проблемных правок и их откат. Лень тратить время на исправление тупых ошибок вроде линий из одной точки? Посмотрим, какую валидацию можно встроить в обработчики загрузки данных. Не выбрать между landuse=forest и natural=wood? Давайте запретим один из них на уровне API.

И ещё пора перестать делать вид, что Overpass API — сторонний проект, никак не связанный с OSM API. На минуточку, в вики более сорока страниц про первый и всего одна про второй. OSM API не находится в вакууме, это интерфейс доступа к данным не лучше и не хуже других. Поскольку OSM децентрализован, то ничего удивительного, что API разбросан не только по нескольким странам, но и по нескольким способам доступа. Overpass API — один из них, и он решает очень много пожеланий к API 0.7. У него одна проблема: в отличие от Taginfo, Nominatim или форума он не установлен на серверах OSMF, и поэтому его сложно воспринимать всерьёз участникам проекта. Даже несмотря на то, что сервисов, написанных на Overpass, больше, чем использующих API. Ваш API 0.7 — это Overpass API, смиритесь с этим и думайте, какие особенности OSM API ограничивают все способы работы с данными.

Я поставлю на отказ от пакетов правок: как метаданные, они лучше расстановки одинаковых тегов на всех объектах, но не оправдывают никаких ожиданий. Запрос для скачивания содержимого пакета, а не только тегов, должен быть выкорчеван из API, чтобы не подавать странных идей. И поставлю на лучшие связность и версионирование: не могу не согласиться с Йохеном, что когда внутри одной версии у линии может быть несколько разных геометрий, это дезавуирует всю систему версионирования. Нельзя откатить линию или отношение к прошлой версии, потому что это вызывает вопросы, к каким версиям откатывать их члены. Так мы возвращаемся к API 0.5, когда история адресовалась по меткам времени. Поэтому специфику OSM, «всё связано со всем», нужно подчеркнуть указанием ссылок на родительские элементы, и версии делать либо составными, либо увеличивать на каждый чих.

В докладе на State of the Map, помимо проблем комментариев к правкам, я упомянул, что неплохо бы добавить способ выкачивания полной истории для любого объекта, включая историю его членов. И получение удалённых объектов для заданной области. Которое у нас уже есть для Potlatch 1, но не для остальных редакторов, несмотря на попытки Фредерика. Да, это частично умеет Overpass API, но работа с исходной базой данных поможет получить результат быстрее и помочь в выкапывании истории другим инструментам, которые не приняли Overpass как нашего отца и спасителя. Наконец, задумавшись об истории в API, мы сможем сделать ещё один маленький шажок и добавить в него метод /revert. А затем и соответствующие кнопочки на сайт.

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

Ранее Ctrl + ↓