Карта Германии 1:1 в PDF-формате? Легко!

Карта Германии 1:1 в PDF-формате? Легко!

Карта Германии 1:1 в PDF-формате? Легко!

Как оказалось, в файл PDF можно втиснуть страницу космических размеров. Лимиты, указанные в спецификациях формата, отображают возможности конкретного приложения для просмотра таких документов — Adobe Acrobat.

О том, что формат PDF не ограничивает размеры страниц таких документов, сказано, например, в соответствующей статье Википедии. Тем не менее программист Алекс Чань (Alex Chan), известная под ником alexwlchan, неоднократно сталкивалась с мнением, будто максимальный размер PDF-страниц — 381 км по стороне.

Таким листом можно накрыть половину Германии на карте масштабом 1:1, однако откуда взялось это магическое число?

 

В приложениях к спецификациям PDF 1.7 (PDF) отмечено, что лимиты на величину и количество объектов в таких файлах связаны с возможностями принтеров и соответствующих приложений. В Acrobat 5.0 и выше размеры страниц ограничены 200 х 200 дюймов; в этих границах дефолт можно для каждой менять с помощью записи UserUnit (число отображает кратность измерения на странице относительно типографского пункта, в программах Adobe равен 1/72 дюйма).

Версии Acrobat 7.0 и новее поддерживают верхнее значение UserUnit в 75 000, то есть страница PDF по каждой стороне не должна превышать 15 млн дюймов (381 км). Чтобы удостовериться, что для PDF это не предел, Чань изучила структуру таких файлов и собрала дополнительную информацию, задавая наводящие вопросы ChatGPT, а затем приступила к экспериментам, создав несколько простейших образцов вручную.

Как выяснилось, увеличить размеры страниц можно не только с помощью UserUnit, но также манипулируя значением MediaBox (размер материала, на котором производится печать). При превышении лимитов Acrobat приложение продолжало упорно показывать в метаданных 15 млн дюймов, а такой же трюк с UserUnit оно вообще не заметило (не выдало ни предупреждения, ни ошибки).

В ходе исследования было установлено, что встроенная в macOS программа Preview.app не поддерживает UserUnit и потому полностью игнорирует такие значения, считая, что во всех PDF установлен дефолт 1/72 дюйма. Верхний предел, как в случае с Acrobat, для этого приложения выставить невозможно, поэтому оно спокойно покажет в свойствах файла, что ширина страницы соизмерима с расстоянием от Земли до Луны.

 

Когда в ходе экспериментов Preview.app заявила, что PDF больше вселенной (примерно 37 млрд световых лет в квадрате), Чань решила остановиться. Распечатывать такие страницы даже не стоит пытаться.

kernel.org внезапно опустел: на зеркалах случайно удалили архивы ядра Linux

У kernel.org случился редкий инфраструктурный конфуз: из-за ошибки при настройке нового первичного зеркала и изменении системы синхронизации внезапно опустел каталог kernel.org/pub/. Именно там на публичных зеркалах хранились архивы с кодом выпусков ядра Linux, патчи и файлы со списками изменений.

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

В Linux Foundation объяснили, что данные не потеряны: пострадали только копии на публичных зеркалах. Эталонные данные с кодом ядра Linux остались целы. Проблема возникла именно в инфраструктуре зеркалирования, где ошибочная настройка привела к удалению содержимого на существующих зеркалах.

Команда проекта уже занимается восстановлением данных. Но, как метко заметили участники kernel.org, удаление происходит быстро, а восстановление — медленно. Поэтому пользователей попросили набраться терпения.

Инцидент оказался неприятным не только для тех, кто привык скачивать архивы ядра напрямую с kernel.org. Он задел и сторонние проекты. Например, в Fedora сломались браузерные тесты openQA: много лет назад разработчики выбрали kernel.org как надёжный источник для проверки загрузки файлов.

Исходники ядра не исчезли, инфраструктура восстанавливается, а речь идет именно о зеркалах, но инцидент напоминает, что в больших системах даже аккуратная настройка зеркал может обернуться массовым rm -rf по публичным копиям.

RSS: Новости на портале Anti-Malware.ru