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)
mwizard
23.04.2016 08:48+4__hello__
и__phello__
— это не «пасхальные яйца», а часть юнит-тестов python для проверки поиска замороженных модулей и пакетов.
Ну и вы же знаете, чтоlove = this
— это обычныйNameError("name 'this' is not defined")
без философии, да?WST
23.04.2016 12:10Сначала import this предполагается
* виноват, неправильно трактовал ваше пояснение «без философии»
tyomitch
23.04.2016 14:23+4Проведя пару бессонных ночей в поисках перевода, удалось лишь определить первый символ «номер» и последний «кислый». Если кто-то знает полный перевод фразы — пишите в комментариях.
На https://en.wikipedia.org/wiki/Suhosin первым же предложением:Suhosin (Korean ???, meaning guardian-angel, pronounced 'su-ho-shin')
Теряюсь в догадках, как именно вы провели эти несколько ночей.
saw_tooth
23.04.2016 15:36>>Введите в REPL import __hello__
Вводили уже на протяжении как 10 лет почти
shybovycha
23.04.2016 15:37+2Насколько помню, CAFEBABE родилось из-за любви разработчиков Java к кофе — собственно, как и само название Java.
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.
hdfan2
23.04.2016 15:37-4> В предметном указателе в конце книги термин «рекурсия» указывает на текущую страницу предметного указателя. Лучшего объяснения понятию и придумать нельзя.
Это не рекурсия, а бесконечный цикл. Вот если бы было «Рекурсия: см. Рекурсия», тогда да.
Evansive
24.04.2016 13:23+8> GeekBrains (Образовательная площадка для программистов)
> Образовательная площадка для программистов
> Первые 4 бита, служащие идентификатором файла, выглядят как CA FE BA BE
> 4 бита
> CA FE BA BE
:)
ghostinushanka
25.04.2016 10:07-2Если уж мы говорим о пасхалках (речь о добавлении в пайтон фигурных скобок):
>>> from __future__ import braces
File "", line 1
SyntaxError: not a chance
Eivind
Это не иероглифы, а хангыль: ??? — собственно так и читается «suhosin»
noder
Собственно вместе с логотипами PHP и Zend это не является пасхалками, а ресурсами для отображения в phpinfo
Mixim333
Не знаю почему, но посмотрев на эти иероглифы, сразу подумал, что это корейский язык (с начальной школы до выпуска учился вместе с 3 корейцами, которые по-началу русского вообще не знали, иногда приходилось заглядывать в их русско-корейский\корейско-русский словарь). Яндекс, Google и Вы подтвердили мои подозрения, правда Яндекс перевел эти иероглифы как «Хранитель», а Google — «Гениальность».
tyomitch
Да хотя бы потому, что в среднем из них есть кругляшок, а ни в китайском, ни в японском письме кругляшков нету.
Именно что «ангел-хранитель»: ?? означает «защитник», ? — «дух, божество».