Технологии

Imagick и незримые герои интернета: кто на самом деле поддерживает работу веба

Поделиться:

Опасно близко к половине всей современной сети зависит от работы, которую в значительной степени выполняет один человек: Danack. 

Danack, имя-портмоне от Dan Ackroyd, — единственный сопровождающий Imagick — PHP-расширения, которое позволяет работать самому популярному инструменту обработки изображений в WordPress — ImageMagick. 

через GIPHY

Практически каждый раз, когда вы или ваш клиент загружаете изображение в WordPress, или вы видите миниатюру на сайте, есть очень большая вероятность, что это стало возможным благодаря вкладу Danack в open source. 

Хотя может показаться невероятным, что всего один человек полностью отвечает за поддержку критически важного технологического компонента, на котором держатся сайты WordPress, непризнанные герои вроде него на самом деле встречаются чаще, чем думают те, кто не входит в сообщество веб-разработки. 

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

Danack и история Imagick

Из-за (по иронии) офлайн-образа жизни и внимания к приватности, которые характерны для многих людей, работающих онлайн, мы не так много знаем о прошлом Danack.

Этот называющий себя «бывшим разработчиком видеоигр» начинал как веб-программист в Sun Microsystems в конце 90-х. Он стал единственным сопровождающим Imagick в 2014 году и продолжает им быть спустя более десяти лет, поддерживая проект только за счёт GitHub Sponsors. Это, вместе с его приверженностью улучшению PHP в целом через RFC, ясно показывает, что он такой же защитник технологий с открытым исходным кодом, как и мы. 

Глоссарий DreamHost

Открытый исходный код (Open Source)

В разработке программного обеспечения проекты с открытым исходным кодом бесплатны для скачивания, использования, модификации и распространения кем угодно. WordPress — отличный пример такого ПО, хотя далеко не единственный.

Читать далее

Почему же так важен этот выбор — поддерживать Imagick? 

Чтобы это понять, нужно начать с инструмента, для работы с которым он был создан: ImageMagick. 

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

Звучит довольно полезно, правда? 

Да. 

За исключением того, что… она не работает напрямую с WordPress. 

На сцену выходит Imagick. 

Imagick — это расширение, написанное на PHP (как и большая часть WordPress), которое действует как «соединительная ткань», позволяя WordPress и ImageMagick работать вместе беспрепятственно.  

Meet Imagick and the Unsung Heroes Keeping the Web Afloat

Что делает Imagick столпом современного интернета?

Если веб-хостинг предоставляет ImageMagick на сервере, WordPress автоматически будет использовать его как обработчик изображений по умолчанию. Он прост в использовании и стал одним из самых известных инструментов своего типа благодаря своей функциональности — даже в сравнении с нативной для PHP библиотекой GD. 

Комментарий
отu/cangaroo_hamam из обсуждения
вPHP

Да, мы говорим о том самом WordPress, на котором работает более 43% всех сайтов в интернете.

Это значит, что миллионы сайтов (опасно близко к половине) зависят от Imagick, который позволяет WordPress использовать ImageMagick для обработки изображений.

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

Imagick, относительно небольшой кусочек индивидуально поддерживаемого ПО, незаметно помогает современному интернету работать бесперебойно.

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

Meet Imagick and the Unsung Heroes Keeping the Web Afloat
via XKCD

Другие примеры технологической зависимости — и люди, стоящие за ними

Ситуация с Imagick не так уж необычна. 

На самом деле, многие аспекты интернета построены на сложной сети зависимостей, подобных этой. Давайте взглянем.

Contact Form 7 для WordPress

Meet Imagick and the Unsung Heroes Keeping the Web Afloat

Более чем с десятью миллионами активных установок Contact Form 7 — невероятно популярный плагин, который обеспечивает работу простых контактных форм для WordPress. 

Спустя более десяти лет его по-прежнему поддерживает автор, Takayuki Miyoshi, и его компания Rock Lobster; мы подозреваем, что в ней работает всего несколько человек, если не один Miyoshi.

Contact Form 7 — старый (в масштабах плагинов), имеет огромную базу пользователей и поддерживается очень небольшим количеством людей. Это тоже классический случай технологической зависимости и рецепт потенциальной катастрофы, если сопровождение споткнётся. 

Взлом XZ Utils

XZ Utils — это бесплатный набор инструментов для сжатия данных без потерь. 

В 2024 году его основатель и главный сопровождающий предоставил статус со-сопровождающего пользователю, который подобрался к нему близко и завоевал его доверие. Этот новый сопровождающий, действовавший под именем Jia Tan, утвердил версию 5.6.0, которая содержала опасный бэкдор, позволявший злоумышленникам получать доступ ко всей операционной системе после установки. 

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

Легко задаться вопросом: если бы в управлении и тестировании новейшей версии XZ Utils участвовала бы большая команда, выпустили бы её вообще

Left-pad и NPM

В 2016 году независимый разработчик Azer Koçulu удалил созданный им маленький, но мощный пакет — left-pad — из NPM, менеджера пакетов по умолчанию для Node.js. Это действие было ответом на то, что NPM взял под контроль один из других проектов Koçulu, что они сделали для урегулирования судебного спора с крупным мессенджером. 

Слова разработчика: “Эта ситуация заставила меня понять, что NPM — это чья-то частная территория, где корпорации могущественнее людей, а я занимаюсь open source, потому что верю, что власть должна принадлежать людям». 

Оказалось, что тысячи проектов зависели от этого небольшого фрагмента кода! 

Когда крупные инструменты вроде Babel и React перестали работать, таким компаниям-гигантам, как Facebook, PayPal, Netflix и Spotify, пришлось срочно устранять последствия.

Реальность поддержки критически важной инфраструктуры с открытым исходным кодом

Мы верим, что технологии с открытым исходным кодом невероятно важны для современного интернета, и в то же время они существуют в невероятно хрупком состоянии подвешенности. 

Во-первых, это хрупкая система. Цифровой мир, на который мы полагаемся каждый день, часто в значительной степени зависит от горстки в основном неоплачиваемых людей (спасибо инциденту с XZ за то, что пролил свет на эту проблему). Это значит, что многие важные инструменты с открытым исходным кодом поддерживаются кем-то лишь в свободное время. 

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

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

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

Его ответ? Если это программное обеспечение так важно для вас, тогда поддержите его!

Как он выразился:

«… если поддержка проектов с открытым исходным кодом представляет для вас ценность, пожалуйста, рассмотрите возможность спонсирования мою работу: https://github.com/sponsors/Danack Или вы можете связаться со мной по электронной почте, если по каким-либо причинам спонсирование через GitHub нежелательно».

Как распознать и поддержать непризнанных героев технологий

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

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

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

Мы надеемся, что вы присоединитесь к нам в чествовании их преданности и щедрости и посвятите любое возможное реальное, постоянное поддержание сообщества, чтобы оно продолжало процветать.

Meet Imagick and the Unsung Heroes Keeping the Web Afloat
Хостинг для WordPress

Непревзойдённый хостинг для WordPress

Надёжные, молниеносные хостинг-решения, специально оптимизированные для WordPress.

Узнать больше

Часто задаваемые вопросы о Imagick

Что такое Imagick?

Imagick — это расширение PHP, которое связывает WordPress с ImageMagick, обеспечивая обработку изображений, такую как изменение размера, обрезка и создание миниатюр.

Кто поддерживает Imagick?

Разработчик под ником Danack поддерживает его уже более десяти лет, в основном за счёт поддержки через GitHub Sponsors.

Почему Imagick так важен?

Он обеспечивает обработку изображений в WordPress для миллионов веб-сайтов, что делает его критически важным, но часто упускаемым из виду элементом веб-инфраструктуры.

Как я могу поддержать Imagick или подобные проекты?

Вы можете спонсировать сопровождающих разработчиков, таких как Danack, на GitHub (https://github.com/sponsors/Danack) или связаться с ними напрямую, если это необходимо. Поддержка открытого исходного кода помогает сохранять стабильность веба.