Как стать автором
Обновить
Selectel
IT-инфраструктура для бизнеса

Зачем разработчики ПО прячут пасхалки в коде

Время на прочтение10 мин
Количество просмотров9.9K

О пасхалках в играх написаны тысячи статей и сняты тысячи видео. Но почему-то человечество упорно игнорирует пасхалки в других видах софта. А ведь они так же стары, как и само программное обеспечение. Это недокументированные функции или сообщения, которые разработчики скрывают в коде или оборудовании. Их можно найти буквально везде: от доисторических операционных систем до современных браузеров. В этой статье мне хотелось бы отдать дань уважения пасхалкам в ПО.

На форуме «Council on Foreign Relations» глава компании Anthropic Дарио Амодей заявил, что с развитием технологий уже через 12 месяцев весь код будет писать ИИ. Конечно, вряд ли нейросети будут писать вот прямо весь код, но меня эти слова заставили задуматься: а кто же будет добавлять пасхалки в софт? Это всегда делали люди. Их мотивы были разными, но одно можно сказать наверняка: ИИ этим заниматься не станет. Документально подтверждено, что одна из самых первых пасхалок в Atari была создана, чтобы запечатлеть имя разработчика в коде. Так поступил бы только человек, робот так не стал бы делать.

Используйте навигацию, если не хотите читать текст целиком:
Суть пасхалок
Первые пасхалки
Пасхалки Microsoft
Пасхалки от Google
Легендарные пасхалки
Заключение

Суть пасхалок



Источник.

В ПО пасхалка — это небольшая скрытая часть программы, которая обычно скрыта от глаз пользователей. И вот тут давайте сразу договоримся. Чтобы считаться пасхалкой, а не ошибкой или сбоем, функция должна соответствовать трем критериям:

  • быть развлекательной и никоим образом не вредной,
  • быть недокументированной и неожиданной, но воспроизводимой,
  • иметь личное значение для программиста.

В сообществе давно идут споры о том, что пасхалки в коде нужно удалять, так как в них нет практической пользы. Например, начиная с июля 2013 года, среда выполнения языка программирования Rust систематически включала цитату Лавкрафта с призывом Ктулху в свою основную библиотеку:

extern crate lovecraft;

fn main() {
    lovecraft::invoke();

    panic!("Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn");
}

После некоторых страстных дискуссий поклонники производительности удалили цитату из проекта. Это произошло в январе 2015 года.



Первые пасхалки


Первые известные скрытые сообщения в коде были спрятаны в больших мэйнфреймах в конце 1960-х годов. К слову, в играх пасхалки появились только в 1970-х. Однако идея назвать эти секреты пасхалками восходит к 1979 году и игре Adventure для консоли Atari 2600.

В то время владельцы Atari Inc. не допускали упоминания имен разработчиков в своих играх. Причина проста — они не хотели, чтобы конкуренты переманили кадры к себе. Да-да, прямо как сейчас некоторые компании на Хабре не дают разработчикам публиковать статьи в своих настоящих аккаунтах, чтобы их не схантили. Еще одна причина — бизнес опасался, что программисты могут зазвездиться и попросить зарплату побольше.

Многие сотрудники, включая создателя Adventure Уоррена Робинетта, были категорически не согласны с этим решением руководства. В том числе потому, что они хотели признания. Он запрограммировал в игру секрет: если игрок выполнял определенные действия, он находил скрытую комнату, где отображалась фраза «Создано Уорреном Робинеттом».

После того, как Робинетт передал финальную версию программы, Atari изготовила и распространила несколько сотен тысяч картриджей. К тому времени, как была обнаружена секретная комната с подписью, Робинетт уже покинул Atari.

Первооткрывателем пасхалки стал 15-летний подросток из Солт-Лейк-Сити. Он написал письмо в Atari о том, что нашел секретную комнату. К удивлению Робинетта вместо негатива Стив Райт, директор по разработке ПО в Atari, назвал скрытый сюрприз «пасхальным яйцом». Более того, он заявил, что скрытая комната добавляет ценности игре, и решил сделать политикой компании включение скрытых функций в будущие игры.


Секретная комната и сообщение в Adventure. Источник.

Довольно быстро появились доказательства и более ранних примеров пасхалок. Например, в играх Video Whiz Ball и Alien Invasion, выпущенных для консоли Fairchild Channel F 1976 года, определенные комбинации нажатий клавиш раскрывали имена программистов.

Джинн был выпущен из бутылки. Все больше и больше пасхалок стало появляться не только в играх, но и в обычном ПО. Например, в ранних продуктах Microsoft скрытые имена и камео-появления — обычное дело. Microsoft Bear был талисманом команды разрабов Windows 3.1 и появился в двух пасхалках в ОС Windows 3.1.


Источник.

Пасхалки Microsoft


Фича пасхалок в том, что пользователь может наткнуться на них только двумя способами. Либо случайно нажав уникальную комбинацию клавиш, либо будучи посвященным в секрет и следуя запутанным инструкциям. Так что если никто не будет искать, пасхалка может оставаться незамеченной очень долго. Так произошло со списком имен разработчиков Windows 1, который оставался скрытым в течение 37 лет. Его нашли в 2022 году, когда Лукас Брукс начал охоту на пасхалки в ранних версиях Windows.


Пасхалка в Windows 1 обнаружено в 2022 году. Источник.

В старых версиях MS-DOS (до DOS 6.2), если вы нажимали F1, функциональную клавишу Help, находясь во вкладке About, вас встречало диалоговое окно с надписью «No Help Available (so leave me alone)». Это была не особо смешная пасхалка, и из более поздних версий ее удалили.

А вы знали, что каждая версия Excel от 5.0 до 9.0 содержала мини-игру? Первой была The Hall of Tortured Souls, описанная как «мини-игра в стиле Doom».

В Office 97 были игры во всех трех его основных компонентах. Excel содержал скрытый симулятор полета, Access имел симуляцию гадальной игрушки Magic 8-Ball, а Word содержал игру в пинбол.


Excel 97 в обычном использовании (слева) и скрытый симулятор полета (справа). Источник.


Источник.

Одна долгоживущая пасхалка была во всех версиях Windows вплоть до XP. В заставке 3D-текста ввод текста «volcano» отображал названия всех вулканов в Соединенных Штатах.

Официально Microsoft прекратила включать пасхалки в свои программы в рамках инициативы Trustworthy Computing Initiative в 2002 году. Она была направлена ​​на решение проблем безопасности и надежности предыдущей версии Microsoft Windows, но имела обратный эффект, поскольку усилила подозрения клиентов относительно качества ПО. Позднее пасхалки были вновь введены в игру Asteroids в приложении «Уведомления» Office 2004 для Mac, а в Outlook 2010 изображением по умолчанию для новых контактов стал силуэт Билла Гейтса.

Несмотря на политику Microsoft по удалению пасхалок из соображений безопасности, в Windows XP они все еще есть. Например, если в Блокноте ввести «bush hid the facts» и сохранить документ под любым именем, при повторном открытии вы обнаружите, что текст заменен строкой нулей.

Пасхалки от Google


В отличие от Microsoft, Google продолжает добавлять пасхалки в свои продукты с завидной регулярностью. Компания славится розыгрышами и первоапрельскими шутками, поэтому ничего удивительного. Что отличает их от ранних примеров, обсуждавшихся выше, так это то, что эти необычные функции активно поощряются компанией, и многие из них являются результатом индивидуальных побочных проектов.

Этот технологический гигант вставил множество скрытых функций или сообщений во все свои продукты. И есть вероятность, что они продолжат делать это до тех пор, пока существует интернет. Известно, что Google настраивает свою целевую страницу для особых событий с помощью так называемых дудлов. Менее известно, что страница результатов ведет себя крайне необычно для некоторых запросов. Поиск Google содержит множество юмористических пасхалок. Попробуйте, например, ввести запрос «анаграмма»:


Или «do a barrel roll», это весьма забавно, как по мне. Гифку вставлять не буду, пробуйте сами 🙂

Запрос «askew» наклонит страницу поисковой выдачи вправо:


Если ввести в поиске «Bletchley Park», то в результатах надпись над изображением заменяет заголовок, мягко напоминая, что это была штаб-квартира по взлому кода, а теперь это достопримечательность.

Более того, Google Maps и Google Earth также полны отсылок к поп-культуре с изображениями НЛО и бесчисленного множества других деталей. Одна из лучших пасхалок, несомненно, — симулятор полета, который можно запустить в Google Earth. Чтобы найти его, просто перейдите в меню, выберите ИнструментыВойти в симулятор полета. Комбинация Ctrl + Alt + A в Google Earth переносит в базовый симулятор, который позволяет облететь всю Землю. Позже это стало постоянной опцией. Была и другая пасхалка, но позже ее вроде отключили: если вы приближали поверхность Луны, в какой-то момент она превращалась в кусок дырявого сыра.

В Google Maps были шутки, хотя многие из них удалены. Когда-то, если вы спрашивали дорогу из Нью-Йорка в Лондон, вам предлагалось перебраться вплавь через Атлантику. Из Токио в Лос-Анджелес предлагалось отправиться на байдарке через Тихий океан, а из Сноудона в Брекон-Биконс (оба места в Уэльсе) — на драконах. Сейчас этого уже нет, а жаль.


Источник.

Для пасхалок от Гугл есть тематический сайт ​​elgoog.im. Он же Google Mirror, проект, миссия которого — «создавать, восстанавливать и находить интерактивные пасхалки Google». Вершину списка восстановленных пасхалок занимает Thanos, созданный Google в апреле 2019 года в честь предстоящего выхода блокбастера «Мстители: Финал». Как и другие акции, связанные с фильмами, он имел ограниченный срок годности — но благодаря elgoog вы все еще можете увидеть эффект щелчка Таноса — нажмите на золотую перчатку, чтобы увидеть, как половина результатов поиска растворяется прямо у вас на глазах.

В меню также можно увидеть эффект Волшебника страны Оз — разрушительную силу торнадо — и поиграть в улучшенные версии игр, которые ранее были скрыты Google — Dinosaur, Snake и Pac-Man.


А как вам такая ностальгия? Да, это Google Zipper! Источник.

Но есть старые пасхалки, которым разрешили остаться, потому что они на самом деле являются высоко ценимыми утилитами. Попробуйте подбросить монетку или бросить кубик.

Легендарные пасхалки


Раз уж выше я оставил ссылку на архивные пасхалки от Google, то вот еще одна. Это архив пасхалок, в который можно залипнуть очень надолго.

Самая скрытная пасхалка


Мир технологий огромен, и люди постоянно находят новые пасхалки из прошлых десятилетий. В некоторых играх, например Punch-Out!!, Duck Hunt и Serious Sam, есть пасхалки, которые никто не мог найти в течение 10-20 лет.

Но есть одна, которая была так хорошо спрятана, что за все время никто ее так и не нашел. Фактически, программист, который ее создал, сдался и сам раскрыл секрет. Пасхалка находится в Donkey Kong (версия Atari) и появляется только после смерти Марио. Если вы внимательно посмотрите, то увидите инициалы Лэндона М. Дайера, кодера, который работал над игрой.


Источник.

Самая сложная пасхалка


Trials Evolution 2012 года — это гоночная игра-головоломка о мотоциклах, которая содержит, вероятно, самую сложную пасхалку на сегодняшний день. В игре есть загадка, которую любой может попытаться разгадать, решив головоломку на деревянных досках.


Источник.

Доски содержат зашифрованные сообщения, которые скрыты на протяжении всей игры. Когда они соединены вместе, они образуют полную загадку. Ответ раскрывает инструкции по разгадке секретной песни на карте Nature Calls. И это только начало!

После графического анализа песня раскрывает часть кода Морзе. Сообщение направляет людей на веб-сайт с еще одной загадкой, ожидающей решения.

Ответ на эту загадку раскрывает координаты четырех мест: Бат, Хельсинки, Сан-Франциско и Сидней. В каждом из них были спрятаны запечатанные сундуки с одинаковыми ключами внутри. Однако и это, судя по всему, не конец загадки. Вероятно, следующий этап будет доступен в первую субботу августа 2113 года (это будет 5 августа, я проверил — вдруг захотите в календарь напоминание добавить).


Источник.

Чуть меньше чем через 100 лет таинственный сундук появится под знаменитой Эйфелевой башней в Париже. Создатель загадки Антти Ильвессуо утверждал, что человек с зонтиком и в шляпе принесет кейс на место в 2113 году. Один из ключей от сундуков откроет его, и по сей день никто не знает, что будет в нем!

Самая популярная пасхалка


Если вы программист или геймер, скорее всего, вы слышали о коде Konami.

Знаменитая последовательность кнопок «↑↑↓↓←→←→BA» впервые была использована в игре Gradius от Konami. Однако весь мир узнал о ней после легендарной стрелялки Contra. По сути, это самый ранний пример чит-кода в игре. В Contra игроки получали 30 жизней вместо обычных трех. Различные разработчики Konami также запрограммировали его в более чем сотне других игр.


Contra. Источник.

Код Konami, безусловно, является самой известной пасхалкой в индустрии программного обеспечения. На нее ссылались другие компании, такие как Google и Digg. Она даже была включена в код сайта ESPN в 2009 году. При вводе ESPN отображался взрыв единорогов и сердец. Код также скрыт на домашних страницах Buzzfeed и Google Stadia, а также в более поздних играх, таких как Contra: Rogue Corps. Про этот код также есть эпизод в мультсериале «Удивительный мир Гамбола».

Самая неожиданная пасхалка


В течение многих лет в официальном приложении μTorrent была спрятана секретная игра Tetris. Если вы использовали μTorrent и были слишком нетерпеливы, чтобы завершить загрузку, вы могли запустить игру, чтобы скоротать время.

Вы найдете эту пасхалку в меню «О программе» — простая команда «T» запустит игру. Это классический вариант Tetris, но вы никогда не ожидали, что он будет представлен в таком приложении, как μTorrent.


Источник.

Самая жуткая пасхалка


В 2019 году мир узнал о странных сообщениях, которые появились в оборудовании гарнитур Oculus VR. История взорвала СМИ, когда контроллеры VR пользователей получили странные сообщения типа «Большой брат следит за тобой» или «Масоны были здесь».


Источник.

В конце концов, оказалось, что эти сообщения предназначались только для прототипов устройств, но случайно распространились на устройства пользователей. Конечно, компания решила проблему с более поздними производственными партиями и извинилась за ошибку.

Самая дорогая пасхалка


Несколько лет назад кто-то нашел необычное сообщение в первом блоке Bitcoin.

Сатоши Накамото создал сообщение в зашифрованном шестнадцатеричном формате. Оно гласило: «sknab roftuoliab dnoces fo knirb no rollecnahC 9002/naJ/30 semiT ehT». В перевернутом виде сообщение звучало так: «The Times 03/Jan/2009 Chancellor on brink of second bailout for banks».


Источник.

Хотя это, очевидно, относится к мировому финансовому кризису, вполне возможно, что Накамото включил его в блок-генезис, чтобы сделать заявление о своем новом творении.

Заключение


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

Времена изменились. Сайт The Easter Egg Archive, посвященный распространению информации о пасхалках, по-прежнему доступен, но больше не активен. В 2011 году на нем было в общей сложности 13 998 элементов, 18 из которых были добавлены за предыдущие две недели. Сейчас их общее количество составляет 14 450, а последнее добавление было в августе 2015 года.

Основатели Apple Стив Возняк и Стив Джобс считали, что пасхалки являются признаком внимания к деталям и человечности. Когда приходит время добавлять пасхалки, это означает, что часть работы была завершена и отполирована. А говоря о человечности, Возняк и Джобс имели в виду эмоции, черту, которая отличает людей от роботов. Создавая пасхалки, инженеры создают эмоциональные движки. Когда пользователи обнаруживают их, они испытывают удивление или восторг, они смеются и чувствуют некую связь с разработчиком через машинный код.

Программисты всегда будут пытаться добавить немного индивидуальности в свой код, даже если это противоречит идее безопасности. Потребность в самовыражении в условиях чрезмерного контроля и недооценки гарантирует продолжение существования пасхалок.

А какая ваша любимая программная пасхалка? Пишите в комментариях о тех, которые я пропустил. К счастью, технологическая индустрия огромна, и она полна блестящих примеров. Это значит, что охота на пасхалки далека от завершения.
Теги:
Хабы:
+76
Комментарии63

Публикации

Информация

Сайт
slc.tl
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия
Представитель
Влад Ефименко