TL;DR Недавние изменения в модели ценообразования, мягко говоря, безумны.
Когда я в 2012 году запустил NUKEMAP, у Google Maps были просто потрясающие программные интерфейсы. Абсолютно лучшие API для создания картографических мэшапов на JavaScript, практически бесплатные, с активным сообществом разработчиков, которое регулярно добавляло новые функции. На самом деле создавалось впечатление, что компания заинтересована в людях, которые используют их продукт для создания крутых, полезных инструментов.
Старые версии NUKEMAP: слева оригинальная версия от марта 2005 года на скриншотах MapQuest (она была чрезвычайно ограничена и никогда не публиковалась), полностью на PHP. Я разработал её для личного пользования и обучения. Справа переделанный NUKEMAP от 2012 года на Google Maps API и Javascript.
Сегодня изменилось почти всё. В кодовую базу API практически перестали добавлять реально полезные функции (многие классные фичи были удалены или тихо устарели; добавляемые новые функции, как правило, инкрементальные или примитивные). Это действительно весьма примечательный факт, поскольку на свой собственный веб-сайт Google Maps они добавили много классных штук, например, режим 3D. Но в API их не портировали. Именно поэтому NUKEMAP3D фактически мёртв — плагин Google Earth перестал работать, а вместо него не выпустили ничего. Предвидя возражения, скажу, что CesiumJS не заменяет Google Earth — он не даёт глобального покрытия 3D-зданий, чтобы понять размер грибовидного облака. Если когда-нибудь изменят это, я потрачу время на перенос кода, но не особенно верится, что это произойдёт, потому что глобальные 3D-формы зданий по-прежнему принадлежат только Google. Если вы хотите визуализировать объёмные грибовидные облака в автономной программе Google Earth, то у меня есть (по-прежнему экспериментальная и неполная) функция экспорта грибовидного облака в формат KMZ. См. страницу NUKEMAP3D для дополнительной информации).
Но что ещё более важно, недавние изменения в модели ценообразования, мягко говоря, безумны. Они наказывают создателей полезных образовательных приложений.
В течение пяти лет у NUKEMAP стабильная аудитория около 15 000 человек в день и около 200 000 в месяц (иногда всплески в несколько сотен тысяч просмотров страниц в день, когда сайт по какой-то причине опять стал вирусным). Хотя это довольно много для научного ресурса, но в интернет-масштабе я назвал бы его «умеренно популярным». Не думаю, что он создаёт хоть какую-то заметную нагрузку на серверы Google (которые, например. обслуживают весь YouTube). И с 2012 по 2016 годы Google не брала никакой платы с таких сайтов. Что было довольно щедро с их стороны. Подобная благотворительность Google поощрила множество экспериментов. Иначе NUKEMAP и многие другие проекты просто не появились бы на свет.
В 2016 году они начали взимать плату. Это было не так уж плохо — в худшем случае счёт составлял около $200 в месяц. Мне посчастливилось работать в учреждении (колледж искусств и литературы в Технологическом институте Стивенса), которое согласилось платить по счетам.
Но в 2018 году Google поменял модель ценообразования, и счёт превысил $1800 в месяц. То есть более $20 000 в год. Это в несколько раз больше моей платы за
Я обратился к Google, чтобы узнать о причине повышения цен. Их новый прайс-лист… немного трудно понять, поэтому повышение цен стало неожиданным. Но у них есть калькулятор, который точно покажет, насколько ужасна схема ценообразования. Правда, его непросто найти, а для доступа требуется аккаунт Google. Но если поиграться параметром «загрузка динамических карт» (есть и другие сборы, но это самая большая статья расходов), то вы сразу увидите, как резко возрастает стоимость. Я связался с Google за помощью в расчёте, но они лишь отмахнулись и отправили меня к сторонней организации-партнёру, которая представляет интересы Google при работе с корпорациями. Спасибо, я пас.
В соответствии с условиями, программа Google for Nonprofit не распространяется на учебные заведения
Я знаю, что Google теоретически поддерживает «социально полезные» проекты, а представители некоммерческой организации (как я) могут подать заявку на грант для покрытия расходов, если Google согласится с ценностью проекта. Не знаю, как они отнеслись бы к NUKEMAP, но в любом случае это не имеет значения: представители учебных заведений (даже некоммерческих, как моё) не имеют права на гранты. Почему? Потому что Google хочет получать какую-то прибыль на рынке образования, так что направляет вас на свой сайт Google for Education, который предлагает совершенно другую модель. Кстати, на сайте нет контакта электронной почты: вы должны заявить, что представляете всё учебное заведение целиком (я не представляю), и что заинтересованы в установке продуктов Google в своём кампусе (я не заинтересован), и только если вы подтвердите всё перечисленное (как я сделал, просто чтобы добраться до них), вы можете, наконец, поговорить с ними немного.
На сайте буквально ничто не указывает на льготный доступ к Google Maps API, но есть возможность запросить такой доступ к облачной платформе Google Cloud, видимо, для задач машинного обучения. После отправки заявки по электронной почте они говорят, что выделенный кредит на Google Cloud можно использовать для оплаты Google Maps API.
К этому моменту я уже в душе отказался от Google. Оно просто не стоит того. Позвольте изложить причины:
- Им явно наплевать на мелких разработчиков. Это довольно очевидно каждому, кто пытался работать с их продуктами. Послушайте, я понимаю, что лицензирование крупных корпораций — основной источник прибыли. Но Google притворяется, что работает не только для них… просто не выполняет эти обещания.
- Они не видят разницы между университетами и отдельными университетскими исследователями. Это огромная разница с точки зрения масштаба, задач и ресурсов. Я не занимаюсь политикой университета в области информационных технологий, я занимаюсь исследованиями.
- Они непостоянны. Дело не только в том, что они быстро меняют схемы ценообразования и часто прекращают поддержку своих продуктов. Дело в том, что они выпускают новые продукты, раскручивают их, поощряют сообщество использовать их для создания «удивительных» вещей, а затем отказываются от поддержки в долгосрочной перспективе. Очень классные проекты из-за этого атрофируются и умирают. Иногда их продают другим компаниям (например, SketchUp), которые затем полностью меняют бизнес-модель. Опять же, я понимаю подход Google — запускать как можно больше проектов и смотреть, кто из них преуспеет, революция и разрушение вместо инфраструктуры и т. д. и т. д. и т. д. Знаю принципы Google, очень трудно заставить себя положить все яйца в их корзину.
- Я не хочу беспокоиться о том, посчитает ли Google мою работу «социальным благом», не хочу беспокоиться о ежегодном продлении гранта, что это спонсорское подразделение Google завтра исчезнет и так далее. Слишком много неопределённости. Знаете, как трудно добиться разговора с реальным сотрудником Google? Я не говорю, что это невозможно: они помогли мне отказаться от некоторых сборов, которые я взял на себя, не разобравшись в тарифах — но разбирательство тянулось буквально месяцы, а тем временем они наслали на меня коллекторов.
Но самое главное: сегодня есть вполне жизнеспособные альтернативы. Вот почему я не понимаю изменение их ценовой модели, разве что они сознательно решили полностью отказаться от мелких разработчиков. После небольших изысканий я решил, что моему бюджету полностью соответствует MapBox (тарифы которого больше всех похожи на прежние тарифы Google), а с помощью опенсорсной библиотеки Leafjet можно очень просто мигрировать на новый сервис. Пришлось немножко поработать, потому что Leafjet из коробки не поддерживает рисование больших кругов, для этого я написал плагин.
NUKEMAP на сегодняшний день (версия 2.65; я регулярно накатываю маленькие апдейты), с кодовой базой Mapbox GL + Leaflet. Обратите внимание, что недавно появилось отображение радиуса 1 psi, чтобы более реалистично показать, какая область будет затронута ядерным взрывом
Теперь даже скромные тарифы MapBox могут вылиться для меня в ощутимую сумму, но они чрезвычайно щедро предоставили мне «кредиты», потому что поддерживают такие работы. Чтобы это выяснить, достаточно было отправить письмо, а затем поговорить по телефону с реальным человеком. И этот реальный человек был очень полезен, с ним было легко связаться, и он даже сам связывается со мной время от времени, если сервис выкатывает новую функцию (например, Mapbox GL), которая может сделать работу сайта лучше и дешевле. То есть это во всех отношениях полная противоположность Google.
Таким образом, NUKEMAP и MISSILEMAP полностью перешли на MapBox+Leaflet. Единственная функция, которую было нелегко перенести, — это «гуманитарные последствия» взрыва (она опирается на библиотеку Google Places), но в конечном итоге я найду способ интегрировать её тоже.
В более широком смысле я как преподаватель должен задать вопрос: рекомендовать ли студентам Google Maps API, если они думают об идее какого-то «революционного» сайта? Простой ответ: ни в коем случае. Если вы станете очень популярным на платформе Google (или даже «умеренно популярным») — то будете должны им много денег. Поэтому я исключу Google Maps из своего курса визуализации данных: теперь мы будем использовать Leaflet. Прошу прощения за педалирование этой темы, но я подумал, что даже не-разработчикам может быть интересно, как эти технологии работают «под капотом» и какие факторы нужно сегодня учитывать при разработке веб-сайтов.
Простой пример, как инструмент по расчёту дозы облучения может спасти жизнь. Наверху видно, что если после 20-килотонного взрыва в центре Нью-Йорка я останусь в своём офисе в течение 24 часов, то с учётом погодных условий на момент публикации я буду совсем-совсем мёртвый. Вместо этого я быстро бегу в боулинг в подвале Технологического института Стивенса (моё предпочтительное укрытие, потому что оно скрыто довольно глубоко внутри скалистого холма, на вершине которого построено 13-этажное здание) — и за те же 24 часа получаю облучение, которое всего лишь немного повысит долгосрочный риск рака
И более хорошие новости: я добавил в NUKEMAP функцию, которую давно хотел реализовать. Дело в том, что нынешняя модель радиоактивных выпадений (модель Миллера) немного трудна для восприятия, давая лишь «смутное представление об области загрязнения». Я изучал некоторые другие модели, но в то же время хотел сделать более понятной и текущую версию (преимущество которой в том, что она очень быстро вычисляется и визуализируется).
Контуры модели Миллера показывают интенсивность дозы (в рад/ч) при H+1 часов. Таким образом, контур «100 рад/час» означает: «Эта область будет покрыта радиоактивными выпадениями, которые через час после детонации имели интенсивность излучения 100 рад/час, если выпадения действительно туда попали в это время». Таким образом, чтобы вычислить свою дозу излучения, нужно рассчитать реальное время прибытия радиоактивных выпадений (по ветру), какова мощность облучения в момент прибытия и как она уменьшится в течение следующих часов. Ещё желательно знать материал стен между вами и радиоактивными выпадениями, поскольку стены немного уменьшат поглощённую дозу. Всё это довольно сложно рассчитать вручную.
Поэтому я добавил функцию «местоположение зонда» для взятия образцов на любом заданном расстоянии от места взрыва. Она вычисляет время прибытия радиоактивных выпадений (исходя из расстояния, силы и направления ветра), интенсивность излучения в момент прибытия. Так можно посмотреть, какова будет общая поглощённая доза в данном месте, скажем, через 24 часа после детонации. В основном, здесь используется стандартная формула для скорости распада продуктов деления. Она позволяет применять «коэффициент защиты» по типу здания, в котором вы находитесь (коэффициент защиты — просто делитель: коэффициент защиты 10 уменьшает поглощённую дозу в десять раз). Всё это помогает изучить воздействие радиоактивных осадков на человека и посмотреть, какие убежища более эффективны.
Автор: m1rko