Разработчик PuTTY Саймон Тэтхэм рассказал, как более 25 лет назад он придумал и создал логотип и иконки для популярного SSH-клиента.
Дизайн основной иконки PuTTY датируется концом 1990-х и началом 2000-х годов. Она никогда не подвергалась серьёзной стилистической переработке, но за эти годы эту картинку приходилось перерисовывать с учётом различных ограничений, что также создавало технические трудности.
Когда Тэтхэм впервые начал рисовать иконки для PuTTY, то он не знал, что ему понадобится много иконок разных размеров. Поэтому он не стал ничего автоматизировать, а просто нарисовал каждую от руки в редакторе иконок MSVC, так как программы с графическим интерфейсом в Windows выглядят довольно бесполезными без иконки.
Иконка PuTTY имеет размер 32×32 пикселя и использует ограниченную палитру основных цветов и оттенков серого. Два компьютера на картинке нарисованы в стиле, который был распространён в 90-х: системный блок, стоящий под ЭЛТ-монитором, с дисководом, видимым с правой стороны. Они соединены молнией, чтобы указать на электрическую связь между ними.
«Я не думаю, что я очень оригинален: у меня была смутная идея, что несколько иконок такого рода уже существовали (хотя я никогда не мог найти ни одного конкретного примера), поэтому в моей голове это соответствовало общей иконографии того времени, и казалось, что это будет сразу понятно. Я не могу вспомнить, почему молния была жёлтой. Оглядываясь назад, это кажется самым странным в ней; голубой был бы более очевидным выбором для электричества. Возможно, это было просто для большего контраста с синими экранами компьютеров. Кстати говоря… Я тоже не помню, почему экраны были синими. Думаю, я просто хотел сделать их нейтральными, а не чёрными, чтобы было понятно, что экраны включены. Я почти уверен, что синий цвет не был намёком на синий экран смерти Windows — это не имело бы смысла, потому что при типичном использовании PuTTY только один конец соединения работает под управлением Windows, и ни один из концов не завис! Оглядываясь назад, я полагаю, что я также мог подумать о том, чтобы сделать два компьютера разными, исходя из теории, что клиентская машина может находиться на чьём‑то столе, а сервер может быть в стойке в центре обработки данных? Но я был студентом, когда начал писать PuTTY, и мой сервер Linux, на который можно было удалённо войти, находился на моем столе, а не в стойке. Так что я думаю, что это просто никогда не приходило мне в голову», — вспомнил Тэтхэм.
Далее на основе иконка PuTTY Тэтхэм сделал иконки для PSCP (и PSFTP) и Pageant: SSH-агента.
«Моя первоначальная идея для значка, изображающего SSH‑агента, заключалась в том, чтобы нарисовать лицо секретного агента — в стереотипном наряде из глупой шпионской фантастики, в широкополой шляпе и поднятом воротнике. Но я ужасно рисую лица. После нескольких неудачных попыток я понял, что Pageant вообще никогда не выйдет, если я подожду, пока не нарисую нужный мне значок. Поэтому вместо этого я взял шляпу секретного агента — единственную часть, которая мне понравилась, — и просто поставил ее на большую версию компьютера с оригинальной иконки PuTTY, под острым углом. Я хотел оставить такую иконку это в качестве заполнителя, планируя вернуться и попробовать позже нарисовать свою изначальную идею человека‑секретного агента. Но потом я понял, что значок, который я уже нарисовал, был просто лучше! Он визуально вписывается в остальную часть набора, повторно используя тот же компьютерный дизайн; он более уместен, потому что рассматриваемый „агент“ — компьютер, а не человек. И самое главное, компьютер в шляпе оказался милым. Поэтому я оставил его», — добавил Тэтхэм.
«После этого появился PuTTYgen. Я нарисовал ещё один значок „компьютер + молния + объект“, на этот раз с другим объектом, являющимся ключом — слабый визуальный каламбур, поскольку PuTTYgen генерирует и работает с криптографическими ключами. Молния, указывающая на сетевое взаимодействие, была особенно неуместна в этом инструменте. Она и так была довольно слабой в PSCP, но PuTTYgen вообще не осуществляет никакого сетевого взаимодействия, поэтому молния была совершенно неточной. Я действительно поместил ее туда для визуальной согласованности с остальными значками: она там, чтобы сигнализировать «это инструмент из того же набора, что и PuTTY», — раскрыл Тэтхэм.
Следующий значок, который сделал Тэтхэм, был нужен вовсе не для отдельного инструмента: он был для диалогового окна конфигурации PuTTY. «Элемент панели задач для окна конфигурации имел скучный значок „по умолчанию“, просто представляющий общую рамку окна, которую Windows использует для любого окна, которое не предоставляет лучшую. Я решил, что это выглядит уродливо. Вместо того, чтобы просто повторно использовать основной значок PuTTY без изменений, я нарисовал значок, специально представляющий конфигурацию или изменение, наложив сверху большой гаечный ключ», — уточнил Тэтхэм.
До 2007 года размеры значков Тэтхэм не менял. Но потом пользователи начали жаловаться, что значки размером 32×32 пикселя стали выглядеть не особо красиво. Дисплеи стали больше, и Windows по умолчанию отображала значки размером 48×48 вместо 32×32.
«Вместо того, чтобы вручную рисовать ещё один полный набор значков, я решил стать более амбициозным. Поэтому я написал фрагмент кода, который программным способом перерисовал все компоненты каждого изображения значка, чтобы я мог запустить скрипт для автоматической генерации полного набора значков для каждого инструмента. Это устранило несоответствие в том, какие значки имели маленькие версии, а какие — чёрно‑белые версии: теперь все значки имели все версии. Сложной частью этого были маленькие значки 16×16. До сих пор я нарисовал только один из них, для Pageant. Теперь мне нужно было попытаться уловить художественное суждение, которое я использовал для „ручного сглаживания“ в этом значке, и попытаться заставить часть программного обеспечения делать то же самое для всех графических компонентов набора значков. Я помню, что это была довольно тяжёлая работа, но в конце концов мне удалось сделать то, чем я был доволен. После этого у каждого значка были значки 48×48, 32×32 и 16×16», — рассказал Тэтхэм.
Потом Тэтхэм сделал иконки доя pterm, включая диалоговое окно конфигурации, где повторно используется тот же самый наложенный гаечный ключ из PuTTY.
Скрипт для изменения размеров иконок Тэтхэм использовал и для иконки установщика PuTTY.
«Я подумал, что было бы неплохо нарисовать картонную коробку как часть этой иконки с открытыми сверху элементами и выходящей из неё молнией, направленной на компьютер, намекая на то, что „PuTTY выскакивает из этой коробки на ваш компьютер“. Картонные коробки коричневые, а коричневого цвета не было в 16-цветной палитре иконок — но теперь я больше не был ограничен этой палитрой, поэтому я мог нарисовать полноцветную иконку, используя настоящий коричневый! Но я все ещё хотел поддерживать 16-цветные иконки, потому что я никогда не хочу отказываться от обратной совместимости, если могу этого избежать. И я заметил, что можно сделать несколько приемлемых оттенков коричневого, взяв два разных цвета из старой палитры иконок Windows 16 и смешав их 50:50. Все мои смеси включали темно‑красный (#800 000); я получил три разных коричневых или достаточно коричневых цвета, смешав его с чёрным (#000 000), тёмно‑жёлтым (#808 000) и полностью жёлтым (#ffff00). Поэтому я сделал картонную коробку из этих трех смесей 50:50, используя их все, чтобы показать, что разные части коробки находятся под разными углами к свету. Таким образом, в иконке с настоящим цветом я мог использовать один цвет, который был средним из двух старых цветов, а в 16-цветной версии я сделал полутонирование, чередуя пиксели настоящих двух старых цветов», — уточнил Тэтхэм.
«Мой первый скрипт для рисования иконок хорошо работает в обычных размерах 32×32 и 48×48 и достаточно хорошо масштабируется до 16×16, но он работает не так хорошо, когда нужно масштабировать больше. Так что, если кому‑то нужны действительно большие версии иконок, их генерация путём простого запуска того же скрипта с большим размером изображения не даст очень хорошего результата. В одной из моих неудачных попыток портировать PuTTY на Mac я обнаружил, что MacOS требуется значок 128×128 для использования в доке, и вывод моего скрипта при таком размере был определённо не очень хорош. Сейчас я более или менее отказался от этого порта для Mac, но я подумал, что полностью масштабируемая версия всех иконок всё ещё может быть полезной вещью. Во‑первых, это позволяет использовать их в других контекстах, чем значки GUI. (Кто‑нибудь хочет бесплатный мерч? Футболки? Наклейки для ноутбука?) Итак, отчасти „на всякий случай“, но также и ради развлечения, я работал над вторым скриптом для рисования иконок. Он имитирует те же „мыслительные процессы“ оригинального скрипта, но выводит файлы SVG вместо растровых изображений — сохраняя художественное оформление максимально приближенным к оригинальному стилю. Для маленьких иконок я все ещё думаю, что мой оригинальный скрипт лучше справляется с рендерингом, потому что SVG вообще не знает, как лучше всего сделать это сглаживание. Но для больших иконок, особенно в истинном цвете, я думаю, что моя рекомендация будет основываться на этих SVG — просто рендерить в большое растровое изображение», — пояснил Тэтхэм.
«Вот и всё! Это история и текущее состояние набора иконок PuTTY. Иногда люди возражают против всего стиля 1990-х и добровольно создают для нас полный набор замен в другом стиле. Нам ни один из них не нравился настолько, чтобы мы его приняли. Я думаю, это, вероятно, потому, что стиль 1990-х является частью того, что делает PuTTY тем, чем он является — „успокаивающе старомодным“. Я не знаю, есть ли какой‑либо серьёзный редизайн, который бы нас действительно устроил. Поэтому я ожидаю, что к настоящему моменту мы, скорее всего, сохраним эти иконки или что‑то в основном то же самое на весь срок существования проекта!», — подытожил Тэтхэм.
Разработка PuTTY ведётся с 1996 года. В феврале состоялся релиз SSH-клиента PuTTY 0.83 для протоколов SSH, Telnet, Rlogin и SUPDUP, поставляемого со встроенным эмулятором терминала и поддерживающего работу в Unix-подобных системах и Windows. Исходные тексты проекта опубликованы под лицензией MIT. Выпуск PuTTY 0.80 состоялся в декабре 2023 года. Версия PuTTY 0.70 вышла в июле 2017 года.
Источник новости: habr.com