Скоро пасха, время искать яйца, да не простые, а программные. И мы нашли их.

Python


Введите в REPL import __hello__ или import __phello__, и вы увидите:

>>> import __hello__
Hello world...
>>> import __phello__
Hello world...


Чтобы полюбоваться еще раз, используйте reload(__hello__).
Ещё одна небольшая забава:

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance


Есть в Python модуль, носящий название antigravity. Вызовите его аналогичной командой import antigravity, и в браузере откроется комикс с ресурса XKCD: xkcd.ru/353

Главная духовная пасхалка Python — скрытое сообщение под названием The Zen of Python. Введите в REPL import this и вы увидите послание авторства Тима Питерса (Tim Peters).

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

>>> love=this
>>> this is love
True
>>> love is True
False
>>> 
>>> love is False
False
>>> 
>>> love is not True or False; love is love
True
True
>>> 


PHP


Большинство секретов, спрятанных в PHP, вызывается с помощью добавления сигнатур к запросу php-файла. К условной странице index.php добавьте ‘?=’ и следующие сигнатуры:
PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 — здесь вы увидите разработчиков PHP;
PHPE9568F36-D428-11d2-A769-00AA001ACF42 — может отражаться одна из шести возможных картинок в зависимости от версии PHP:



Юмор разработчиков заключается и в том, что логотип, генерируемый функцией php_logo_guid() раз в год, а точнее 1 апреля, автоматически заменяется на один из вышеуказанных. Идём дальше:
PHPE9568F34-D428-11d2-A769-00AA001ACF42 — «правильный» логотип PHP;



PHPE9568F35-D428-11d2-A769-00AA001ACF42 — логотип Zend;



Если у вас что-то не отображается или вы полагаете, что это обман, то частичнон подтверждение работоспособности алгоритма можете найти здесь: github.com/php/php-src/blob/master/ext/standard/info.h в строках 54–56.
С расширением Suhosin будет работать ещё и следующая сигнатура:
SUHO8567F54-D428-14d2-A769-00DA302A5F18 — иероглифы:


.
Проведя пару бессонных ночей в поисках перевода, удалось лишь определить первый символ «номер» и последний «кислый». Если кто-то знает полный перевод фразы — пишите в комментариях.
Java
Забавное совпадение можно обнаружить, открыв любым HEX-редактором .class файл. Первые 4 бита, служащие идентификатором файла, выглядят как CA FE BA BE:



C


Есть такая замечательная книга под названием «Язык программирования С» в авторстве Кернигана и Ричи (C Programming Language). Лучше смотреть в английском варианте, потому что, например, в 3-м российском издании этой пасхалки нет.
В предметном указателе в конце книги термин «рекурсия» указывает на текущую страницу предметного указателя. Лучшего объяснения понятию и придумать нельзя.
Кроме того, достаточно много пасхальных яиц можно найти в старых версиях Borland C++. Например, зажав CTRL + Shift во время загрузки 6 версии, можно было увидеть заставку (даже несколько), на одной из которых изображена команда разработчиков. Или ввести следующее сообщение:

#pragma keeka 
void main(void) 
{
return 0;
} 


Скомпилировать с помощью bcc32 и увидеть на экране кота из символов.

Ruby


В библиотеке Pry сразу несколько «пасхалок». Увидеть их можно в подробностях здесь, или, не заглядывая, просто ввести команды get-naked, nyan-cat, east-coker, cohen-poem, pessoa-poem или test-ansi.
В самом Ruby тоже есть шутки от разработчиков, вот руководство по обнаружению.

Автор статьи: Илья Бубнов

Комментарии (13)


  1. Eivind
    22.04.2016 22:15
    +3

    Это не иероглифы, а хангыль: ??? — собственно так и читается «suhosin»


    1. noder
      23.04.2016 01:12
      +4

      Собственно вместе с логотипами PHP и Zend это не является пасхалками, а ресурсами для отображения в phpinfo


    1. Mixim333
      23.04.2016 16:22

      Не знаю почему, но посмотрев на эти иероглифы, сразу подумал, что это корейский язык (с начальной школы до выпуска учился вместе с 3 корейцами, которые по-началу русского вообще не знали, иногда приходилось заглядывать в их русско-корейский\корейско-русский словарь). Яндекс, Google и Вы подтвердили мои подозрения, правда Яндекс перевел эти иероглифы как «Хранитель», а Google — «Гениальность».


      1. tyomitch
        23.04.2016 17:31

        Не знаю почему, но посмотрев на эти иероглифы, сразу подумал, что это корейский язык

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

        Яндекс, Google и Вы подтвердили мои подозрения, правда Яндекс перевел эти иероглифы как «Хранитель», а Google — «Гениальность».

        Именно что «ангел-хранитель»: ?? означает «защитник», ? — «дух, божество».


  1. mwizard
    23.04.2016 08:48
    +4

    __hello__ и __phello__ — это не «пасхальные яйца», а часть юнит-тестов python для проверки поиска замороженных модулей и пакетов.

    Ну и вы же знаете, что love = this — это обычный NameError("name 'this' is not defined") без философии, да?


    1. WST
      23.04.2016 12:10

      Сначала import this предполагается
      * виноват, неправильно трактовал ваше пояснение «без философии»


  1. tyomitch
    23.04.2016 14:23
    +4

    Проведя пару бессонных ночей в поисках перевода, удалось лишь определить первый символ «номер» и последний «кислый». Если кто-то знает полный перевод фразы — пишите в комментариях.

    На https://en.wikipedia.org/wiki/Suhosin первым же предложением:
    Suhosin (Korean ???, meaning guardian-angel, pronounced 'su-ho-shin')

    Теряюсь в догадках, как именно вы провели эти несколько ночей.


  1. saw_tooth
    23.04.2016 15:36

    >>Введите в REPL import __hello__
    Вводили уже на протяжении как 10 лет почти


  1. shybovycha
    23.04.2016 15:37
    +2

    Насколько помню, CAFEBABE родилось из-за любви разработчиков Java к кофе — собственно, как и само название Java.


    1. tyomitch
      23.04.2016 17:35

      На самом деле нет: в честь «кафе мертвецов».

      We used to go to lunch at a place called St Michael's Alley. According to local legend, in the deep dark past, the Grateful Dead used to perform there before they made it big. It was a pretty funky place that was definitely a Grateful Dead Kinda Place. When Jerry died, they even put up a little Buddhist-esque shrine. When we used to go there, we referred to the place as Cafe Dead. Somewhere along the line it was noticed that this was a HEX number. I was re-vamping some file format code and needed a couple of magic numbers: one for the persistent object file, and one for classes. I used CAFEDEAD for the object file format, and in grepping for 4 character hex words that fit after «CAFE» (it seemed to be a good theme) I hit on BABE and decided to use it. At that time, it didn't seem terribly important or destined to go anywhere but the trash-can of history. So CAFEBABE became the class file format, and CAFEDEAD was the persistent object format. But the persistent object facility went away, and along with it went the use of CAFEDEAD — it was eventually replaced by RMI.


  1. hdfan2
    23.04.2016 15:37
    -4

    > В предметном указателе в конце книги термин «рекурсия» указывает на текущую страницу предметного указателя. Лучшего объяснения понятию и придумать нельзя.
    Это не рекурсия, а бесконечный цикл. Вот если бы было «Рекурсия: см. Рекурсия», тогда да.


  1. Evansive
    24.04.2016 13:23
    +8

    > GeekBrains (Образовательная площадка для программистов)
    > Образовательная площадка для программистов
    > Первые 4 бита, служащие идентификатором файла, выглядят как CA FE BA BE
    > 4 бита
    > CA FE BA BE

    :)


  1. ghostinushanka
    25.04.2016 10:07
    -2

    Если уж мы говорим о пасхалках (речь о добавлении в пайтон фигурных скобок):
    >>> from __future__ import braces
    File "", line 1
    SyntaxError: not a chance