Статьи

Пасхальные яйца: что это такое и как их создавать

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

Краткая история пасхальных яиц

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

В течение нескольких лет люди, включая меня, думали, что игра Adventure, выпущенная Atari в 1979 году, была первой видеоигрой с пасхальным яйцом. Это было не так удивительно, как вы думаете; он просто отображал Уоррена Робинета (имя программиста). Хотя этот миф все еще жив, кажется, что предыдущие пасхальные яйца существовали .

Количество пасхальных яиц, содержащихся в программном обеспечении и играх, даже самых известных, увеличилось за последние пару десятилетий. Интернет предлагает множество примеров; Такие компании, как Mozilla, Oracle и Google — это лишь немногие, кто внедрил пасхальные яйца в свое программное обеспечение.

  • Mozilla поместила пасхальное яйцо во все версии Firefox. Чтобы увидеть его в действии, введите «about: mozilla» в адресную строку и нажмите клавишу ввода. Firefox отображает цитату из «Книги Мозиллы» о рождении Firefox.
  • Google создал пасхальное яйцо в Picasa. Если вы откроете настольное программное обеспечение и нажмете Ctrl + Shift + Y, появится изображение игрушечного медведя. Каждый раз, когда вы нажимаете комбинацию клавиш, отображается еще один медведь.
  • Skype, известное программное обеспечение VoIP, имеет простой, но забавный пример. Если вы откроете чат и наберете «(пьяный)», появится скрытый смайлик.
  • Игра Tetris была спрятана в программном обеспечении uTorrent. Чтобы увидеть его, нажмите «Справка» и перейдите в «О программе». Нажмите клавишу T, и игра появится.
  • В пакете OpenOffice есть множество скрытых игр и прочего. Так много, что у них есть определенный раздел на своем сайте! Если вы хотите играть в Tic-Tac-Toe на Calc, напишите «= ИГРА (A2: C4;« TicTacToe »)» в ячейку A1 и нажмите клавишу ввода.

Создание вашего первого пасхального яйца

Я помогу вам создать простое пасхальное яйцо с помощью PHP. Мы создадим форму поиска, и если пользователь ищет мое имя (очевидно, вы можете изменить свое собственное), на странице будет отображаться приятное сообщение. Это будет пасхальное яйцо.

Создайте файл PHP со следующим HTML-кодом:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>My First Easter Egg!</title>
 </head>
 <body>
  <h1>My First Easter Egg!</h1>
  <h2>Search</h2>
  <form method="get" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
   <input type="text" name="searched-text" id="searched-text" placeholder="Search..." accesskey="s">
   <input type="submit" value="Search">
  </form>
 </body>
</html>

Форма не имеет много элементов; ему нужно только поле ввода, в котором пользователь может ввести то, что он хочет найти, и кнопку отправки.

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

Следующим шагом является написание бизнес-логики. Нам нужно проанализировать запрос, используя суперглобальный массив $_GET Если параметр searched-text

Результирующий код должен выглядеть следующим образом.

 <?php
if (! empty($_GET['searched-text'])) {
    echo "<h3>You searched for: " . htmlentities($_GET["searched-text"]) . "</h3>";
    // The comparison is case-insensitive
    if (strcasecmp($_GET["searched-text"], "Aurelio De Rosa") == 0) {
        echo "<p>I know, I'm so cool!</p>";
}

Теперь, когда пользователь ищет мое имя, он увидит следующий экран:

Чуть более сложный пример

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

Прежде всего необходимо вызвать session_start() Затем проверьте, установлен ли счетчик пасхальных яиц в суперглобальном массиве $_SESSION если нет, мы установим его значение на ноль. Каждый раз, когда пользователь ищет мое имя, счетчик увеличивается на 1. Во всех остальных случаях счетчик сбрасывается. Последний случай включает в себя, если сообщение было отображено тоже.

Полученный исходный код выглядит следующим образом:

 <?php
session_start();
if (!isset($_SESSION["easter-egg"])) {
    $_SESSION["easter-egg"] = 0;
}
?>
<html>
 <head>
  <meta charset="UTF-8">
  <title>My First Easter Egg!</title>
 </head>
 <body>
  <h1>My First Easter Egg!</h1>
  <h2>Search</h2>
  <form method="get" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
   <input type="text" name="searched-text" id="searched-text" placeholder="Search..." accesskey="s">
   <input type="submit" value="Search">
  </form>
<?php
if (!empty($_GET["searched-text"])) {
    echo "<h3>You searched for: " . htmlentities($_GET["searched-text"]) . "</h3>";
    // The comparison is case-insensitive
    if (strcasecmp($_GET["searched-text"], "Aurelio De Rosa") == 0) {
        $_SESSION["easter-egg"]++;
        if ($_SESSION["easter-egg"] == 3) {
            echo "<p>I know, I'm so cool!</p>";
            $_SESSION["easter-egg"] = 0;
        }
    }
    else {
        $_SESSION["easter-egg"] = 0;
    }
}
else {
    $_SESSION["easter-egg"] = 0;
}
?>
 </body>
</html>

Выводы

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

Изображение через Fotolia