Привет, Хабр! Меня зовут Юлия Гусарова, я директор по маркетингу beeline cloud.
Буквально на днях в нашей компании произошло знаменательное событие — мы обновили стиль и позиционирование. Теперь beeline cloud — первый в России secure cloud provider, о чем мы еще успеем рассказать в нашем блоге.
Сегодня речь пойдет о визуальной составляющей нашего бренда, где ключевым элементом дизайн-концепции стала ASCII-графика, и выбрали мы ее неспроста. Если раньше ASCII-символы использовались в основном гиками, ретроэнтузиастами и исследователями Марса, то теперь это сердце нашей корпоративной айдентики. Посмотреть, как это все выглядит, можно здесь.
А эту статью мы в целом решили посвятить ASCII-искусству и рассказать о нескольких интересных проектах и эпизодах из истории таблицы символов. Да, про Dwarf Fortress тоже скажем пару слов – вы угадали. Но не только — под катом будет интересно!
Немного истории: от телеграфа к…телеграфу
Историю таблицы ASCII официально принято вести с начала 1960-х, а именно с момента появления кодировки для неполной сотни основных символов: 7 младших бит на сам код, 1 старший бит для контроля ошибок. Примечательно, что в первой версии таблицы присутствовали только заглавные буквы.
Однако, прежде чем переходить непосредственно к биографии ASCII, предлагаем вернуться еще на добрую сотню лет назад, в 1830-е, когда амбициозными изобретателями-предпринимателями Сэмюэлем Морзе и Альфредом Вейлем был разработан первый действительно успешный способ знакового кодирования сообщений.
Предпосылкой к созданию азбуки Морзе (по некоторым данным, её разработал не сам Морзе, а его партнер Вейл, но ретивый Морзе с ним был в корне не согласен) стала потребность в «бюджетном» способе быстро и качественно передавать информацию на большие расстояния.
Стрелочный телеграф Александра Бейна, к примеру, способен был передавать порядка 25 слов в час – при этом его устройство было существенно сложнее, чем у предложенного Вейлем и Морзе аппарата. Что уж говорить о более древних оптических телеграфах, которые были основаны на сложных системах флагов и обязывали телеграфистов постоянно сидеть на посту и ретранслировать сигналы вручную. Способ «хакинга» такого телеграфа при помощи социальной инженерии (хитрость, подкуп, давление на слабые черты характера) описан в романе А. Дюма «Граф Монте-Кристо».
Аппарат, предложенный Вейлем и Морзе, состоял из двух компонентов: приемника и передатчика. Приемник, оснащенный электромагнитом, в такт колебаниям тока в проводе телеграфа поднимал и опускал над бумажной лентой валик, покрытый чернилами. Фактически можно сказать, что каждое сообщение логировалось – при условии, что и бумага, и краска были в наличии. А при помощи телеграфного ключа оператор-телеграфист мог модулировать ток в линии.
Примечателен еще тот факт, что изначальный вариант азбуки Морзе предусматривал, помимо коротких «точек» и длинных «тире» паузы разной длины, но в 1848 году Фридрих Герке усовершенствовал кодировку: ввел в нее новые символы, убрал межэлементные паузы и оставил только два базовых элемента: привычные «тире» и «точку» фиксированной длины.
Стрелочный телеграф Бейна тестировался в Австрии с 1845 года, а позднее даже было учреждено Имперское государственное телеграфное управление. Австрийские инженеры модифицировали устройство, заменив стрелку-указатель на ударник и два колокольчика с разными звуками, а также несколько упростили телеграфный код. К 1849 году на австрийских железных дорогах было установлено 1 667 км телеграфных линий системы Бейна, его аппараты работали на 23 станциях, их обслуживали 94 телеграфиста и 55 линейных монтеров. Но уже на следующий год австрийское правительство решило перейти на телеграфную систему Морзе. Тем не менее, аппараты Бейна работали на разных участках вплоть до 1886 года.
«Но какое отношение азбука Морзе имеет к ASCII?» — спросите вы. Ответ следует искать все там, же, на телеграфе, но уже во Франции.
В 1874 году Эмиль Бодо, французский инженер-телеграфист, задумался о более рациональном и скоростном обмене информацией с помощью телеграфной линии. Вполне закономерно он предложил использовать для кодировки символов не последовательности из сигналов высокого уровня (тире и точка), а пятибитные «пакеты», состоящие из «нулей» и «единиц». Его код, известный как «код Бодо», получил широкое распространение в телеграфии и в течение многих лет оставался стандартом де-факто. Код Бодо позволял передавать прописные и строчные буквы, цифры и некоторые специальные символы.
Тем не менее, его возможности по представлению нелатинских шрифтов были весьма ограниченными, и со временем он был вытеснен более продвинутым стандартом ASCII. Тем не менее, именно код Бодо подготовил почву для появления современных систем кодирования символов и сыграл решающую роль в развитии технологий современной связи.
Рождение ASCII
В 1961 году Боб Бемер, разработчик и технический специалист компании IBM, представил в ASA (Американскую ассоциацию стандартов) заявку на стандартную систему кодирования символов для компьютеров. Предложение Бемера, в основе которого лежал 6-битный бинарный код, используемый в компьютере IBM 704, предусматривало прописные и строчные буквы, цифры и специальные символы. В конечном итоге идеи Бемера легли в основу стандарта ASCII, опубликованного двумя годами позже.
1963 год принято считать датой рождения ASCII. Именно тогда ASA обнародовала первую редакцию стандарта ASCII (American Standard Code for Information Interchange). Стандартом был определен набор из 97 символов, включающих буквы, цифры, знаки препинания и управляющие символы, каждый из которых представлен 7-битным двоичным числом. Еще 32 «ячейки» оставили про запас – в ассоциации не было единого мнения об их предназначении. Эта ревизия по многим параметрам отличается от ASCII, применяемого в настоящее время. Впрочем, это не удивительно: стандарт регулярно обновляется.
В 1965 году была составлена новая версия ASCII, которую так и не опубликовали. Эта редакция не использовалась нигде, кроме как в терминалах IBM 2260/2848. Очередная спецификация вышла в 1967 году, и все содержащиеся в ней символы с тех пор не меняли своего положения в таблице.
Спустя некоторое время кодировка была расширена до 256 символов. ASCII стала восприниматься как половина 8-битной кодировки, а «расширенным ASCII» стали называть ASCII с задействованным 8-м битом (например, КОИ-8). Примечательный момент: диакритические знаки над буквами стали возможны на печати благодаря символу Backspace: принтер сначала отпечатывал саму букву, а затем возвращался на один символ назад, чтобы впечатать в то же место дополнительный знак.
ASCII как вид искусства
В 1964 году художник и программист Кеннет Ноултон создал портрет своей жены, а также несколько других изображений, используя новую технику, которую он назвал «компьютерное рисование». При создании картин использовался ограниченный набор символов компьютера IBM 7094. Псевдографические изображения за авторством Ноултона считаются одними из самых ранних примеров культурного феномена, получившего название ASCII-арт.
Сейчас, конечно, никого не удивишь картинками, составленными из символов. Читатели постарше вспомнят «Джоконду» из «Служебного романа» — картина, отпечатанная на широкоформатной бумаге, украшает скромный интерьер секретарши Прокофьи Людмиловны.
А если вам в принципе больше 20 лет, вы наверняка застали бум ASCII-арта в ICQ и других мессенджерах.
Казалось бы, за полвека человечество могло бы уже и наиграться с ASCII. В конце концов, псевдографические игры (в которых вся графика состоит из символов) писались зачастую только из-за ограниченных особенностей компьютеров. А на смену скромным ASCII-цветочкам в чатах пришли анимированные стикеры, реакции и прочие смайлы.
Но ASCII арт все еще не сдает позиции. Давайте-ка взглянем на относительно свежие примеры творчества, в которых ASCII-символы – это не просто способ визуализации, но и философия. Средство, позволяющее придать дополнительную выразительность.
Attack of the PETSCII Robots
Если вы подписаны на канал 8bit Guy, то наверняка слышали об этой игре. Дэвид Мюррей разработал её специально для псевдографики компьютера Commodore PET. Однако со временем игра была портирована на множество платформ и пережила пару физических релизов.
В двух словах, в игре вам предстоит в реальном времени сражаться с разнообразными роботами, взаимодействовать с окружением и даже подстраивать ловушки для несообразительных машин. Впечатление слегка портит познакоместный скроллинг (со сдвигом сразу на 8 пикселей), однако это цена, которую пришлось заплатить за «честную» псевдографику, которую способен переварить слабый PET.
Подробнее об игре — здесь.
Dwarf Fortress
Этот freeware проект уже давно стал легендой гик-сообщества. А теперь, благодаря крупным игровым блогерам и появлению в игре классической графики, об интригах и драмах, творящихся с незадачливым гномьим народцем, знает едва ли не каждый геймер.
Проект, основанный братьями Тарном и Заком Адамсами в далеком 2002 году и впервые увидевший свет в 2006, выводит ASCII-сцену в играх на совершенно новый уровень.
По ходу игры вам предстоит взять на себя заботу о небольшой группе дварфов (или все же гномов?). Как минимум, понадобится найти удачное место для создания крепости в процедурно сгенерированном мире. А затем планировать строительство новых сооружений, организовывать жизнь обитателей, обеспечивать оборону от врагов и заниматься другими подобными делами. В Dwarf Fortress нет конечной цели, как таковая победа в ней не предусмотрена. Девиз игры — «Проигрывать весело!».
В минувшем 2022 году в Steam вышла платная версия игры. От классической версии она отличается наличием «обыкновенной» растровой графики. В каком-то смысле это было для разработчиков вынужденной мерой, которая позволила бы оплатить дорогостоящее лечение одному из них.
Если вы не играли в Dwarf Fortress, то обязательно попробуйте вечерком возможно, и не стоит. Во всяком случае, для начала будет не лишним посмотреть какой-нибудь YouTube-обзор и лишь затем решить, тянет ли вас разбираться со всей этой шедевральной ASCII-мешаниной, или лучше по-старинке запустить HOMM 3.
ASCIIDENT
Новая игра с открытым игровым миром в тематике sci-fi. Проект находится в раннем доступе, однако выглядит сногсшибательно. Вся игровая графика составлена из ASCII-символов и в первые секунды вызывает одновременно непонимание, что происходит на экране, и восторг. Рекомендуем оценить игру – как минимум визуальная составляющая в ней выглядит просто прекрасно.
ASCII-анимация
Вполне логичное продолжение ASCII-артов – анимированные ASCII-картинки. В этом репозитории можно познакомиться с ними поближе.
Прочее ASCII-творчество
Клип AC/DC, отрисованный при помощи ASCII-символов:
ASCII-кодинг для посвященных:
Под занавес — один из сотен генераторов ASCII-картинок из фото.
NetHack
Культовый рогалик 1987 года целиком на ASCII-графике. Герою предстоит спуститься в подземелье и найти там амулет Йендора. Казалось бы, ничего примечательного...
Но и ASCII-графика — не самая интересная особенность игры. Все дело в том, что NetHack до сих пор поддерживается разработчиками. Первая версия (1.3d) была опубликована в новостной группе comp.sources.games в июле 1987 года, а последняя (на момент публикации) — 3.6.7. — вышла 16 февраля 2023 года.
ASCII Star Wars
Сколько раз вы пересматривали «Звездные войны»? Возможно, придется сделать это еще раз. Только теперь — в ASCII-графике и по Telnet. Разработчик программного обеспечения Саймон Янсен начал работу над ASCII-версией четвертого эпизода «Звездных войн» еще в 1997 году. По имеющимся данным, ему удалось «портировать» около 40% фильма.
«Звездные войны» можно запустить в консоли с помощью команды telnet towel.blinkenlights.nl
или на сайте проекта.
beeline cloud — secure cloud provider
Разрабатываем облачные решения, чтобы вы предоставляли клиентам лучшие сервисы