alreader.kms.ru/AlReader/AlReader2_VobisEdition.CAB: восемь индивидуально настраиваемых профилей изображения, чтение txt, html, fb2, chm, rtf, pdb, ztxt, doc, docx, в том числе – напрямую из архивов zip и gz, произвольный выбор кодировки, правильные переносы для 23 языков (отдельный файл – alreader.kms.ru/AlReader/AlReader2.Hyphen.zip), линейка положения в тексте (снизу, справа или в строке состояния), два вида автопрокрутки (волна и плавная), настройка аппаратных кнопок, тапов и штрихов по экрану, сохранение читаемого файла как в формате, pdb или html, расширенные возможности поиска, в том числе и использование оператора'?', и т. д. и т. п.
Miracle, it’s a miracle!
ТЕХНОЛОГИИ: Это сделал я
Словосочетание «пасхальные яйца» (Easter Eggs) в компьютерном мире давно обрело собственный смысл. Сегодня это явление распространилось далеко за пределы программ и операционных систем и является своего рода искусством. Скрытые послания и шутки разработчиков, недокументированные возможности можно найти в самых неожиданных местах, однако для этого придется как следует постараться.
По определению Википедии, пасхальное яйцо – это секрет, оставляемый в игре или программном обеспечении создателями, своеобразная шутка для внимательных зрителей или игроков. Это определение имеет один недостаток – в нем не отражена причина, по которой программисты закладывают пасхальные яйца в свои программы. Причина эта проста и незамысловата: программисты тоже люди. Они делают творческую креативную работу и получают за нее деньги. Однако любому творцу, создавшему что-то хорошее, всегда хочется подписать свое произведение, заявить миру о своем авторстве. Это, кстати, одна из самых распространенных ошибок начинающих хакеров. Человека так и подмывает оставить миру маленькую весточку: 'Это я сделал! Я!' Маленькая незаметная строка в списке разработчиков на экране заставки к программе – совсем не то, чего хочется автору после месяцев кропотливой работы. Поэтому довольно большая часть пасхальных яиц в той или иной форме содержит список разработчиков. Мир должен знать своих героев.
Считается, что первое пасхальное яйцо появилось в 1978 году в игре Adventure, выпускаемой компанией Atari. Руководство компании приняло решение не вносить в программу информацию о разработчиках. Разумеется, авторам игр, вкладывавшим в них знания и душу, такое решение не понравилось. Программист Уоррен Робинетт (Warren Robinett) нашел простое и изящное решение – спрятать информацию о себе внутри игры. В план лабиринта Adventure была добавлена секретная комната с именем разработчика. Для того чтобы проникнуть в нее, нужно было отыскать невидимую серую точку на стене лабиринта. Она открывала путь в комнату, заполненную мерцающими плакатами с именем автора игры.
Идея понравилась и пошла гулять по свету. Многие программисты, работавшие в Atari, затем участвовали в создании операционной системы для платформы Amiga. Поэтому не удивительно, что пасхальные яйца появились и в этой системе. Оттуда они перекочевали и в другие ОС и прикладные программы.
Сегодня пасхальные яйца есть не только в программах, но и в сотовых телефонах, бытовой технике, различных электронных устройствах, на лицензионных дисках с фильмами. Пасхальные яйца стали своего рода искусством, обязательным компонентом большинства программ.
Для пользователей же подобные сюрпризы, скрытые в программах, стали новым объектом для изысканий и коллекционирования. В Интернете есть множество сайтов, посвященных сбору и систематизации информации о пасхальных яйцах в различных продуктах. Например, на www.eeggs.com можно найти информацию о тайниках в программах, играх, фильмах, на DVD-дисках, в музыкальных произведениях и даже книгах. Обширный русскоязычный каталог пасхальных яиц можно найти по адресу www.eastereggs.narod.ru.
Существуют разные способы поиска пасхальных яиц. Несложные секретные окна и картинки во многих программах можно вызвать нажатием определенных комбинаций клавиш. Чаще всего встречаются комбинации вроде Ctrl+Alt+Shift, Alt+Ctrl, Ctrl+Shift. К интересным последствиям могут привести клики мышью на расположенных в различных местах логотипах программы, рисунках и других небольших элементах интерфейса. Разработчики очень любят прятать пасхальные яйца в окне 'О программе' ('About'), поэтому там искать следует в первую очередь. Многие скрытые возможности находят, просматривая код программы, но это уже высший пилотаж.
Часто о секретах в своем детище сообщают сами разработчики. Какой смысл трудиться над дополнительными возможностями, если ими никто не сможет воспользоваться?
Наибольшее количество пасхальных яиц можно найти, конечно же, в играх. Тут разработчики позволяют себе оттянуться, не ограничивая полет фантазии логикой и сюжетом игры. В Diablo есть миленький секретный уровень в коровьем стиле, а в Microsoft Combat Flight Simulator можно наткнуться на мирно летящую по воздуху свинку. В игре Half-Life: Counter-Strike есть секретная комнатка, в которой толпа мышек поклоняется фотографии.
Подписи в играх оставляют не только программисты. Над современной большой игрой работает целая команда разработчиков, и оставить небольшой сюрприз может практически каждый из ее членов. Например, во многих трехмерных играх используются текстуры, создаваемые дизайнерами текстур. Стоит ли удивляться, когда вместо обычной кирпичной стены мы увидим что-нибудь особенное – например, оригинальную надпись. Оставляют свои маленькие сюрпризы и профессионалы, отвечающие за звуковое оформление игры. В определенных местах игр можно услышать такие звуки, которых вы не услышите больше нигде. Много интересного можно узнать и при прослушивании звуковых файлов, прилагаемых к игре, с помощью внешних проигрывателей.
Изобилует пасхальными яйцами любимая серия игр моей жены из цикла Moorhuhn (те самые несчастные фазаны, по которым надо стрелять патронами ужасающего калибра). Тут уж авторы оторвались по полной. Такого количества скрытых возможностей и правил, пожалуй, нет ни в одной другой игре. Например, для того, чтобы поиграть в фазаний тетрис (в третьей части игры), необходимо в главном меню кликнуть последовательно на все буквы названия игры: «M-O-O-R-H-U-H-N». Эта возможность вполне предсказуемая: очень многие разработчики встраивают в свои программы клоны тетрисов. Но когда жена стала показывать мне, как надо стрелять в определенное время по определенным снежинкам (в «зимней» версии), я понял, что тетрис – это цветочки. А как вам такое: на тридцать первой секунде (не раньше и не позже) в определенном месте появляется заяц. Если убить зайца – появляется ежик. А вот за ежика уже даются бонусные очки. Выстрелами можно двигать предметы к определенной цели, добиваться различных эффектов вроде красочного салюта. Таким нехитрым способом обычная стрелялка превращается чуть ли не в «квест», где от вашей догадливости и смекалки зависит итоговая сумма очков.
Попробуем открыть для себя незнакомые возможности в давно знакомых программах. Знали ли вы, например, о том, что в обширном коде Microsoft Excel 2000 скрываются трехмерные гонки на машинках [1], своего рода маленький Need for Speed? Чтобы получить доступ к игре, нужно последовательно выполнить ряд несложных действий (они подробно описаны на сайте www.eastereggs.narod.ru). С помощью трехмерных машинок можно управлять стрелками курсора. Машинки умеют стрелять, освещать путь фарами и cливать масло на беду отстающим. В Word 97 есть скрытый «Пинбол» [2]. В Excel 97 – встроенный авиасимулятор, а в древнем Excel 95 – некое подобие трехмерной бродилки по лабиринтам. Вообще, продукты Microsoft пестрят недокументированными блоками и возможностями. Стоит ли после этого удивляться их непомерным размерам?
Те, у кого установлен Adobe Photoshop, могут посмотреть альтернативный вид окна «About», который вызывается, если удерживать клавиши Alt+Ctrl.
Есть множество пасхальных яиц и на виртуальных просторах. Например, для многих будет сюрпризом, что Google понимает не только экзотические реальные языки, но и целый ряд вымышленных: «клингонский», 'борк-борк-борк', 'поросячья латынь', «элмер», 'хакерский'. Кстати, изредка меняющийся по случаю праздников главный