Карта мира в 500 байтах: ASCII-арт на deflate-сжатии
Разработчик Иво Кадзела (Iwo Kadziela) при участии ассистента Codex нашёл способ сгенерировать узнаваемую ASCII-карту мира, уместив данные всего в 445 байт.
В чём трюк
Основная идея — использовать сжатие deflate для хранения самих данных карты. Распаковка происходит прямо в браузере с помощью небольшого фрагмента JavaScript.
Автор находки Саймон Уиллисон (Simon Willison), рассказавший об этом проекте в своём блоге, отметил, что раньше не знал о возможности передавать в fetch() строки формата data: URI, закодированные в base64. Именно этот приём и лежит в основе решения: закодированные данные передаются в fetch(), после чего поток ответа пропускается через DecompressionStream('deflate-raw'), а полученный текст вставляется в разметку страницы как содержимое тега <pre>.
Таким образом всего в паре строк кода умещается и хранение сжатых данных карты, и их распаковка, и вывод на экран — без сторонних библиотек и без обращения к серверу.
Источник находки
Как уточняет Уиллисон, о проекте он узнал через Hacker News, где публикация вызвала интерес благодаря необычному сочетанию встроенных возможностей веб-платформы — data: URI, fetch() и DecompressionStream — для решения задачи компактного хранения графических данных.
Источник: Simon Willison
Комментарии
Войдите, чтобы комментировать.