14.4.6.1. Небольшой учебный пример по Python: imgsizer

14.4.6.1. Небольшой учебный пример по Python: imgsizer

Imgsizer — утилита, которая переписывает WWW-страницы так, что теги включения изображений автоматически получают верные размеры изображения (это ускоряет загрузку страниц во многих браузерах). Исходные коды и документацию можно найти в подкаталоге "URL WWW tools" <http://www.ibiblio.org> архива ibiblio.

Программа imgsizer первоначально была написана на Perl, и была почти идеальным примером небольшого, управляемого шаблонами инструмента обработки текста. Позднее программа была транслирована в Python в целях получения преимущества библиотеки Python по поддержке HTTP-передачи. В результате этого зависимость от внешней утилиты доставки страницы была устранена. Примечательно использование утилит file(1) и identify(1) пакета ImageMagick в качестве специальных средств для получения размеров изображений в пикселях.

Динамическая обработка строк и необходимость замысловатой проверки регулярных выражений сделала бы написание imgsizer на С или С++ крайне сложным. Такая версия также была бы значительно больше и сложнее для чтения. Язык Java решил бы проблему неявного управления памятью, но он едва ли был бы более выразительным, чем С или С++ при проверке текстовых шаблонов.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

6.1.3. Учебный пример: GCC

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

6.1.3. Учебный пример: GCC Программа GCC, GNU С-компилятор, применяемый в большинстве современных Unix-систем, возможно, наилучшим образом демонстрирует преимущества проектирования с учетом прозрачности. Программа GCC организована как последовательность стадий обработки,


6.1.5. Учебный пример: SNG

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

6.1.5. Учебный пример: SNG Программа sng осуществляет преобразование формата PNG в его полнотекстовое представление (формат SNG или Scriptable Network Graphics) и обратно. Формат SNG можно просматривать и модифицировать с помощью обычного текстового редактора. Работающая с PNG-файлом программа


8.2.8. Учебный пример: awk

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

8.2.8. Учебный пример: awk Мини-язык awk является инструментальным средством Unix старой школы, прежде широко используемым в shell-сценариях. Как и т4, утилита awk предназначена для написания небольших, но выразительных программ для преобразования текстового ввода в текстовый вывод.


14.4.4.1. Небольшой учебный пример по Perl: blq

Из книги автора

14.4.4.1. Небольшой учебный пример по Perl: blq blq-сценарий представляет собой средство для опроса блок-списков (списки Internet-узлов, которые идентифицируются как постоянные источники нежелательных почтовых сообщений, известных также как спам). Текущую версию исходного кода


14.4.6.1. Небольшой учебный пример по Python: imgsizer

Из книги автора

14.4.6.1. Небольшой учебный пример по Python: imgsizer Imgsizer — утилита, которая переписывает WWW-страницы так, что теги включения изображений автоматически получают верные размеры изображения (это ускоряет загрузку страниц во многих браузерах). Исходные коды и документацию можно


14.4.6.2. Учебный пример по Python среднего размера: fetchmailconf

Из книги автора

14.4.6.2. Учебный пример по Python среднего размера: fetchmailconf В главе 11 пара fetchmail/fetchmailconf рассматривалась как пример одного из способов отделения реализации от интерфейса. Преимущества Python хорошо иллюстрируются на примере утилиты fetchmailconfВ программе fetchmailconf используется


14.4.6.3. Большой учебный пример Python: PIL

Из книги автора

14.4.6.3. Большой учебный пример Python: PIL Python-библиотека обработки графики (Python Imaging Library — PIL) поддерживает обработку растровой графики. Программа поддерживает множество популярных форматов, включая PNG, JPEG, BMP, TIFF, PPM, XBM и GIF. Python-программы могут использовать ее для того, чтобы


6.1.5. Учебный пример: SNG

Из книги автора

6.1.5. Учебный пример: SNG Программа sng осуществляет преобразование формата PNG в его полнотекстовое представление (формат SNG или Scriptable Network Graphics) и обратно. Формат SNG можно просматривать и модифицировать с помощью обычного текстового редактора. Работающая с PNG-файлом программа


7.2.5.1. Учебный пример: scp и ssh

Из книги автора

7.2.5.1. Учебный пример: scp и ssh Индикаторы выполнения — один распространенный случай, в котором связанный протокол действительно является тривиальным. Утилита scp(1) (secure-copy command — команда безопасного копирования) вызывает программу ssh(1) как подчиненный процесс, перехватывая


8.2.1. Учебный пример: sng

Из книги автора

8.2.1. Учебный пример: sng В главе 6 рассматривалась утилита sng(1), преобразовывающая PNG-файл в редактируемую полностью текстовую форму. Формат файлов данных SNG заслуживает повторного рассмотрения здесь для контраста, поскольку он не вполне является узкоспециальным


8.2.8. Учебный пример: awk

Из книги автора

8.2.8. Учебный пример: awk Мини-язык awk является инструментальным средством Unix старой школы, прежде широко используемым в shell-сценариях. Как и m4, утилита awk предназначена для написания небольших, но выразительных программ для преобразования текстового ввода в текстовый вывод.


14.4.4.1. Небольшой учебный пример по Perl: blq

Из книги автора

14.4.4.1. Небольшой учебный пример по Perl: blq blq-сценарий представляет собой средство для опроса блок-списков (списки Internet-узлов, которые идентифицируются как постоянные источники нежелательных почтовых сообщений, известных также как спам). Текущую версию исходного кода можно


14.4.6.2. Учебный пример по Python среднего размера: fetchmailconf

Из книги автора

14.4.6.2. Учебный пример по Python среднего размера: fetchmailconf В главе 11 пара fetchmail/fetchmailconf рассматривалась как пример одного из способов отделения реализации от интерфейса. Преимущества Python хорошо иллюстрируются на примере утилиты fetchmailconf.В программе fetchmailconf используется


14.4.6.3. Большой учебный пример Python: PIL

Из книги автора

14.4.6.3. Большой учебный пример Python: PIL Python-библиотека обработки графики (Python Imaging Library — PIL) поддерживает обработку растровой графики. Программа поддерживает множество популярных форматов, включая PNG, JPEG, BMP, TIFF, PPM, XBM и GIF. Python-программы могут использовать ее для того, чтобы


Введение Небольшой пример конверсии сайта

Из книги автора

Введение Небольшой пример конверсии сайта У человечества много очень правильных технологий, разработанных в очень неправильных целях. Р. Бакминстер Фуллер. Коллекция циничных высказываний Майкла Монкура Коммерческие цели сайта должны некоторым образом