Откопал хакерский тест из 1989 года. Любопытно, что именно в восьмидесятых считалось “быть хакером”: некоторыми вопросами сейчас уже даже детей не удивить.

По сети ходит и альтернативная версия, с изменённым смыслом некоторых вопросов. Но тут будет неповторимый оригинал. Во врезках мои комментарии.

THE HACKER TEST - Version 1.0

Авторы: Феликс Ли, Джон Хейес, Анджела Томас.

Собрание фактов и фольклора о хакерах, хитро замаскированное под тест.

Оценка: добавьте себе по одному баллу за каждый вопрос, на который вы ответили “да” или дали правильный ответ.

Ваша оценка между Вы
0x000 … 0x010 Полная безграмотность
0x011 … 0x040 Пользователь
0x041 … 0x080 Оператор
0x081 … 0x0C0 Ботаник (Нерд)
0x0C1 … 0x100 Хакер
0x101 … 0x180 Гуру
0x181 … 0x200 Волшебник

Примечание: если вы не поняли, как проверить свою оценку, до свидания!

А теперь к вопросам:

0001 Когда-нибудь пользовались компьютером?
0002 … больше 4 часов подряд?
0003 … больше 8 часов?
0004 … больше 16 часов?
0005 … больше 32 часов?

0006 Когда-нибудь приходилось склеивать перфоленту?


Ридер с перфоленты

0007 Когда-нибудь пропускали уроки, увлёкшись программированием?
0008 … экзамены?
0009 … свадьбу?
0010 … собственную свадьбу?

0011 Когда-нибудь программировали, будучи пьяным?
0012 … Протрезвев, оставили написанный код?

0013 Когда-нибудь писали авиасимулятор?

0014 Делали со своим оборудованием что-то, приводящее к снятию с гарантии?

0015 Когда-нибудь меняли значение числа 4?
0016 … Случайно?
0017 … На языке, отличном от Фортрана?

Штука в том, что в Фортране значения в функцию всегда передаются по ссылке. Даже константы. А оптимизация в тех фортранах была устроена таким образом, что для одних и тех же значений использовалась одна и та же ячейка памяти. Что приводило к тому, что можно было менять значения констант:

CALL SUBA(4)
Print *, "4 =", 4
...
SUBROUTINE SUBA(X)
...
X = 3

Олды рассказывают, что на IBM1620 были, помимо прочего, таблицы сложения и умножения. И можно было переопределить не только константу, но и результат математической операции, скажем, 2 + 2 или 4 * 6, и т.п. И если кто-то потом использовал в своём коде выражение 2 + 2, мог удивиться неожиданному результату.

0018 Используете DWIM, чтобы добавить интереса в жизни?

DWIM (Do What I Mean) - “Сделай, как я хотел”. Пакеты программ, предназначенные для автоматического исправления опечаток и ошибок ввода. Что-то вроде телефонного T9 и современной автокоррекции текста в мобильниках.

0019 У вашего компьютера есть имя?

Сейчас мы всегда даём имена компьютерам, когда настраиваем их для работы в интернете. Но в те времена на персональных компьютерах ещё не существовало такого понятия как “имя хоста”, поэтому присвоние имени компьютеру было нечастым явлением.

0020 Жалуетесь, когда фичу, которую вы использовали, исправляют?

Отсылка к мемасику начала шестидесятых “Это не баг, а фича”. Но стоит только заложиться на особенность поведения этой фичи, как её исправляют, объявляют багом и хвастаются, что исправили.

0021 Едите слизевиков? (slime-molds)

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

0022 Знаете, каков ваш возраст в днях?

0023 Ловили себя на желании скачать пиццу из интернета?

0024 Придумывали шутку на околокомпьютерную тему?
0025 … Нашёлся кто-то, кто её не понял?

0026 Можете прочесть Бармаглота наизусть?
0027 … а задом наперёд?

Забавно, что Бармаглот Льюиса Кэролла оказал заметное влияние на хакинг: слова и персонажи из него использовались в качестве названий программ и систем, методов хака и др.

0028 Видели фильм “Дональд в Матемагии”? (Donald Duck in Mathemagic Land)

0029 Видели фильм “Трон”?

0030 Видели фильм “Военные игры”? (Wargames)

0031 Знаете, как расшифровывается акроним ASCII?
0032 … EBCDIC?

0033 Можете прочесть ASCII, написанные в шестнадцатеричной или восьмеричной системе?
0034 Помните наизусть все названия управляющих кодов в таблице ASCII?

0035 Можете читать и писать EBCDIC в шестнадцатеричной записи?

0036 Умеете перекодировать в уме из EBCDIC в ASCII и обратно?

0037 Знаете, какие символы есть одновременно и в ASCII и в EBCDIC?

0038 Знаете, каков максимальный размер целого числа в вашей системе?

0039 Создавали свой числовой тип, чтобы получить повышенную точность вычислений?

0040 Можете назвать степени двойки, вплоть до 216 в произвольном порядке?
0041 … до 232?
0042 … up to 264?

0043 Можете прочесть данные с перфокарты, только глядя на отверстия?
0044 … наощупь?


Перфокарта

0045 Приходилось изменять программу прямо в бинарном виде?
0046 … Программа после этого работала?

0047 Пользовались программными оверлеями? (program overlays)

Штука, которую использовали до изобретения виртуальной памяти: загрузка кода или данных по одному и тому же адресу из внешних источников взамен старых данных, которыми программа уже не пользуется.
В ZX Spectrum 128 для этой цели использовались страницы памяти.

0048 Знакомы с любым из вице-президентов IBM?
0049 Знаете Денниса, Билла или Кена?

Отсылки к Деннису Ритчи (создатель языка C, Unix), Кену Томпсону (создатель Unix) и, то ли Биллу Госперу - одному из самых ярких представителей хакерского движения шестидесятых, то ли Биллу Джою - автору BSD Unix и соучредителю Sun Microsystems.

0050 Когда-нибудь фотографировали монитор?
0051 Проигрывали видеокассету на мониторе?

Видимо, стоит показать, что такое видеокассета:

0052 Оцифровывали изображение?

0053 Забывали посадить тестовую мартышку?

Отсылка к легенде Always Mount A Scratch Monkey

Медицинский факультет университета Торонто в 1980 году проводил эксперименты с обезьянами, прикрепляя электроды непосредственно к их мозгу. Эксперименты проводились на новой машине VAX 11/780, которая по скорости превосходила старую PDP 11/05, и эта скорость была необходима из-за особенностей сбора и обработки данных в реальном времени.

Но на тот момент VAX 780 была совсем новой и работала нестабильно. В какой-то момент компьютер начал сбоить, и была вызвана служба поддержки, DEC Field Service. Техник проверил машину и запустил стандартный набор тестов для диагностики оборудования: проверка процессора, диска, памяти, системы ввода-вывода… которая всё ещё была подключена к мозгу пяти обезъян.

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

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

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

0054 Когда-нибудь пытались оптимизировать цикл простоя? (idle loop)

0055 Оптимизировали пузырьковую сортировку?

0056 Ваш терминал/компьютер разговаривает с вами?

0057 Пытались пищать голосом в модемную линию?
0058 … Получили ответ?

0059 Умеете свистеть на 300 бод?
0060 … 1200 бод?

Бод - единица измерения символьной скорости, эквивалентен биту в секунду (бит/c, bps). Сейчас-то все мыслят мега- и гигабитами…

0061 Можете насвистеть телефонный номер?

См. DTMF, тональный набор

0062 На ваших глазах умирал жёсткий диск?

0063 Вы заставляли жесткий диск “ходить”?

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

0064 Можете сделать паровоз? (puffer train)
0065 … А знаете, что это такое?

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

0066 Можете сыграть музыку на своём принтере?
0067 … На дисковом приводе?
0068 … На кассетном?

Eye of the tiger на принтере

0069 У вас есть календарь со Снупи?
0070 … Он просрочен?

Отсылка к генератору календарей на Фортране, упоминаемом в “Настоящие Программисты не используют Паскаль”

0071 У вас есть распечатка на матричном принтере…

В наше время это называется ASCII art

0072 … Моны Лизы?
0073 … Энтерпрайз?

Вероятно, отсылка к Стар Треку и кораблю USS Энтерпрайз (NCC-1701)

0074 … Эйнштейна?
0075 … Оливера?

Oliver Wendell Jones из комиксов Bloom County.

0076 Когда-нибудь распечатывали картинку на матричном принтере?

0077 Знаете, что обозначают следующие сокращения?
0078 … DASD

𝗗irect 𝗔ccess 𝗦torage 𝗗evice” - Устройство хранения данных с прямым доступом. Исторически ассоциируются с серверами. Авторство термина часто приписывается IBM, введённого компанией для обозначения жестких дисков, магнитных барабанов и ячеек данных. Однако сейчас этот термин включает в себя и другие типы устройств, в том числе SSD, жесткие диски для персональных компьютеров и системы хранения RAID.

0079 … Emacs

𝗘ditor 𝗠𝗔𝗖ro𝗦” - дело в том, что что Emacs начинался как набор макросов для TECO - универсальной и сложной системой редактирования текста, с полным по Тьюрингу макроязыком. Со временем Emacs был переписан, и TECO был заменен на C и Lisp, но название осталось.

0080 … ITS

𝗜ncompatible 𝗧imesharing 𝗦ystem” - “Несовместимая система разделения времени”. Знаковая операционная система для PDP-6 и PDP-10. Была разработана в MIT, как отказ от использования Multics. И если Multics был большим, написанным в основном на языке высокого уровня и строго обеспечивал безопасность, то ITS был маленьким, написанным на ассемблере и разрешал вообще всё.

0081 … RSTS/E

𝗥esource 𝗦haring 𝗧ime 𝗦haring 𝗘xtended” - многопользовательская операционная система с разделением времени для PDP-11.

0082 … SNA

𝗦ystems 𝗡etwork 𝗔rchitecture” - системная сетевая архитектура. Разработка IBM для объединения в глобальные сети собственных мейнфреймов.

0083 … Spool

𝗦imultaneous 𝗣eripheral 𝗢perations 𝗢n𝗹ine” - Одновременные периферийные операции в режиме онлайн. Когда некая функция компьютера запущена, но не может быть выполнена немедленно, она помещается в спул до тех пор, пока компьютер не будет готов к ее выполнению. Наиболее распространенным примером является очередь для печати. Поскольку принтеру часто требуется время на разогрев перед печатью документа, очередь используется для хранения документа на этот период.

0084 … TCP/IP

Когда-нибудь использовали
0085 … TPU?
0086 … TECO?
0087 … Emacs?
0088 … ed?
0089 … vi?
0090 … Xedit (для VM/CMS)?

Описываемая версия редактора Xedit на тот момент не умела работать с графикой и была чисто консольной

0091 … SOS?
0092 … EDT?
0093 … Wordstar?

0094 Когда-нибудь писали на CLIST?

Command List”, “C-List”: процедурный язык программирования для систем MVS/TSO.

Когда-нибудь программировали в
0095 … X windowing system?

… нет, не через Gtk/Qt/.... Напрямую через Xt и xlib.

0096 … CICS?

CICS - фреймворк для обработки транзакций на мейнфреймах IBM.

0097 Получали по факсу или почте распечатанную копию флоппи-диска?

0098 Показывали новичку “любую” клавишу? (any key)
0099 … Это была кнопка выключения питания?

Когда-нибудь посещали
0100 … Usenix?
0101 … DECUS?
0102 … SHARE?
0103 … SIGGRAPH?
0104 … NetCon?

0105 Участвовали когда-нибудь в работе группы по стандартам?

0106 Приходилось отлаживать машинный код по телефону?

0107 Когда-нибудь видели голосовое письмо?

В современном мире - это голосовое сообщение в мессенджере.

0108 … Можете его прочесть?

0109 Решали кроссворд при помощи онлайн-словаря?

0110 Проходили тест Тьюринга?
0111 … Провалили?

0112 Роняли колоду карт?

Имеется в виду колода перфокарт.

0113 … Смогли собрать их обратно?
0114 … Не глядя?

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

0115 Использовали IPCS?

Interactive problem control system” - Интерактивная система контроля проблем, среда для диагностики программных сбоев в режиме онлайн. Инструментарий для OS/360.

0116 Вы когда-нибудь получали ящик пива вместе с компьютером?

0117 Ваш компьютер продавался в “дизайнерских” цветах?


Станции Silicon Graphics

0118 Устраивали перебои в ИБП? (UPS)

Uninterruptible Power Supply”, ИБП - источник бесперебойного питания.

0119 Когда-нибудь маскировали NMI?

Non-maskable interrupt” - немаскируемые прерывания. Обычные прерывания в процессоре можно “маскировать” - запрещать во время обработки прерывания вызов дргого прерывания. И есть ряд немаскируемых прерываний, которые должны быть обработаны всегда, в каком бы состоянии компьютер не находился. Например, кнопка сброса/перезагрузки.

0120 Приводили в действие галоновую систему пожаротушения?
0121 … Случайно?
0122 … Всё ещё там работаете?

Галоновая система пожаротушения предназначена для борьбы с огнём в помещениях, где используется электричество и компьютеры. Там пожар нельзя тушить водой из-за опасности замыканий и поломок оборудования, поэтому она работает на инертных газах. Однако, заправка такой системы и обслуживание - довольно дорогое удовольствие.

0123 Пользовались кнопкой аварийного выключения питания?
0124 … Случайно?

0125 У вас есть какая-либо документация, написанная с ошибками?
0126 … Всё ещё пользуетесь ею?

0127 Вы когда-нибудь занимались реверс-инжинирингом или декомпиляцией программ?
0128 … Нашли в программе ошибки?

0129 Вы когда-нибудь помогали человеку за прилавком с его терминалом/компьютером?

0130 Пытались установить телефон в стойку?


Стойки

0131 Вы когда-нибудь сбрасывали компьютер с высоты более двух этажей?

0132 Когда-нибудь исправляли ошибку, которую не признавал производитель?

0133 Исправляли аппаратную ошибку на программном уровне?
0134 … А наоборот?

0135 Когда-нибудь состояли в пользовательской группе или группе поддержки?

0136 Вас упоминали в Computer Recreations?

Computer Recreations - регулярная колонка об околокомпьютерных головоломках и задачах, публиковавшаяся в журнале Scientific American.

0137 О вашей деятельности когда-нибудь писали в газете?
0138 … Вам это сошло с рук?

0139 Активировали барабанный тормоз во время вращения барабана?


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

0140 Писали комментарии на неродном языке?

0141 Разрушали физически устройства программным способом?

Раньше это было сделать проще, так как тогда особо не заморачивались защитой оборудования. Например, можно было выставить на мониторе некорректные частоты развёртки или вручную управлять электронной пушкой, что приводило к выжиганию люминофора или выводу из строя систем питания монитора. Быстро двигая головками жёсткого диска в разные стороны можно было ввести их в резонанс и сломать физически.

0142 Жульничали во время прохождения этого теста?

0143 Берёте распечатку программ с собой на обед?
0144 … В кровать?

0145 Когда-нибудь исправляли ошибку в микрокоде?
0146 … возле ошибки в микрокоде?

В те времена значение слова “микрокод”, было несколько другим и обозначало не программу, которая работает внутри аппаратного обеспечения, а код, выполняемый на ранних этапах запуска системы, то есть к тому, что сейчас называется “загрузочным кодом”. Исправление этого микрокода подобно переписыванию BIOS на современном ПК.

0147 Можете написать машину Тьюринга?

0148 Можете в уме из посфиксного выражения сделать префиксное?

Пример инфиксной формы:
2 + 2 = 4
Префиксная: операторы находятся перед операндами
+ 2 2 = 4
Постфиксная: оператор находится после операндов
2 2 + = 4

0149 Можете перевести шестнадцатеричное число в восьмеричное в уме?

0150 Умеете пользоваться звездой Клини?

Звезда Клини означает “ноль или более повторений предыдущего выражения”. Широко применяется в регулярных выражениях. ab* и т.п.

0151 Вы когда-нибудь голодали, обедая с философами?

Отсылка к задаче об обедающих философах: иллюстрации проблем синхронизации при разработке параллельных алгоритмов.

0152 Вы решили задачу о проблеме остановки?
0153 … Правильно?

Отсылка к “проблеме остановки” - задача о том, возможно ли написать программу на машине Тьюринга, которая определит, завершится ли произвольная программа на машине Тьюринга или зависнет.
В 1936 году Алан Тьюринг доказал невозможность решения этой задачи, поэтому на вопрос 0153 невозможно ответить “да” честно.

0154 Вы когда-нибудь заходили в тупик, пытаясь съесть спагетти? (Ever deadlock trying eating spaghetti?)

deadlock - тупик или блокировка, ситуация в многозадачной системе, когда два (или более) участников находятся в состоянии ожидания, потому, что каждый из них ждёт освобождения ресурса, который заблокирован другим участником. Пример из вопроса 0151, где каждый философ берет палочку слева от себя и вечно ждет палочку справа, является примером блокировки.

0155 Вы когда-нибудь писали саморазмножающуюся программу?

0156 Когда-нибудь выгружали своппер?

Своппер - программа, служащая для выгрузки из оперативной памяти данных, которые в данный момент не используются. Служит для использования в оперативной памяти объёма больше, чем есть в системе, сбрасывая и загружая данные в медленную память: с жёсткого диска, например.
Классическая ошибка: написать такой своппер, который может выгрузить самого себя. Как следствие, компьютер зависнет, так как некому будет загрузить обратно этот фрагмент памяти.

0157 Умеете ли вы читать диаграммы состояний?
0158 … А они вам вообще нужны?

0159 Создавали программу, работу которой невозможно завершить принудительно?
0160 … Случайно?

0161 Когда-нибудь просили печенье?

Похоже, отсылка к работе веб-серверов и тамошним “кукам”.

0162 Вы когда-нибудь ускоряли работу системы, убрав перемычку?

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

Вы знаете…

0163 Вы знаете, кто написал Rogue?
0164 … Rogomatic?

0165 Вы знаете код Грея?

0166 Вы знаете, что такое HCF?
0167 … Использовали?
0168 … Не специально?

HCF - мнемоника для “Halt and Catch Fire”, “Зависни и сгори”, любая из недокументированных машинных инструкций с разрушительными побочными эффектами. Микропроцессор MC6800 был первым, для которого опкод HCF стал широко известен. Эта инструкция заставляла процессор переключать сигналы на шинах так быстро, что в некоторых конфигурациях приводило к физическому перегоранию.

0169 Знаете ли вы, что такое “кружевная карта”? (lace card)
0170 … Делали такую?

Не уверен, что оно именно так обозначалось по-русски. Речь о перфокарте, в которой пробиты вообще все отверстия - все колонки и все столбцы. Такие карты иногда приводили к заклиниванию считывающего устройства.

0171 Знаете ли вы о конце эпохи?
0172 … Праздновали ли вы конец эпохи?
0173 … Пришлось переписывать код?

Сложно сказать, о какой эпохе, конец которой можно было бы отпраздновать, идёт речь. Есть термин Unix Epoch, “эпохой Unix” - время в секундах, прошедших с полуночи 1 января 1970 года. Ожидаемый “конец эпохи” и связанные с этим проблемы ожидаются 19 января 2038 года, когда в 32-битных числах, хранящих число секунд эпохи, кончится место для хранения новых.

0174 Знаете ли вы разницу между DTE и DCE?

Data Terminal Equipment - устройства, которые служат источником или получателем данных (компьютеры, принтеры и т.п.), и и Data Circuit-Terminating Equipment - устройства, которые обеспечивают физическое подключение к сети и осуществляют собственно, передачу (коммутаторы, сетевые интерфейсы и т.п.)

0175 Знаете ли вы распиновку RS-232C?
0176 … Можете подключить коннектор вслепую?

У вас есть…

0177 У вас есть экземпляр Dec Wars?

Пародия на звёздные войны в антураже компьютеров DEC

0178 У вас есть Canonical Collection of Lightbulb Jokes?

Набор шуток на тему “Сколько нужно … чтобы поменять лампочку”.

0179 У вас есть the Hacker's dictionary?
0180 … Являетесь его соавтором?

0181 У вас есть линейка для рисования диаграмм?
0182 … Ни разу не использовали?

0183 У вас есть свой собственный файл с предсказаниями? (fortune-cookie file)

Имеется в виду файл с “предсказаниями” и репликами для Unix-утилиты fortune.

0184 У вас есть “Поваренная книга анархиста”?
0185 … Что-нибудь делали по её рецептам?

Пособие по использованию общедоступных веществ и предметов для изготовления в домашних условиях оружия, взрывных устройств, ядов и т.п. В РФ с 21 апреля 2014 года включена в Федеральный список экстремистских материалов.

0186 У вас есть модем?
0187 … терминал?
0188 … игрушечный компьютер?
0189 … персональный компьютер?
0190 … миникомпьютер?
0191 … мейнфрейм?
0192 … суперкомпьютер?
0193 … гиперкуб?
0194 … принтер?
0195 … лазерный принтер?
0196 … ленточный накопитель?
0197 … устаревшее периферийное устройство?

0198 У вас есть программируемый калькулятор?


TI-59 / TI-58

0199 … Он с обратной польской нотацией? (RPN, Reverse Polish notation)


См 0148. Калькулятор без клавиши =. Чтобы сложить 2 и 3 нужно набрать на клавиатуре 2 <ввод> 3 +

0200 Владели ли вы когда-нибудь более чем одним компьютером?
0201 … 4 компьютерами?
0202 … 16 компьютерами?

0203 У вас есть SLIP-линия?
0204 … линия T1?

Предмет зависти в 90х. Высокоскоростные выделенные линии связи. SLIP (Serial Line Internet Protocol) не столько скоростная, сколько выделенная - подключение напрямую через последовательный порт. А T1 (Transmission System 1) - натурально, ураган. 1.5 Мегабита! Это при типичных модемных скоростях в 2400. Только в начале девяностых появились первые модемы на 9600 бод, а вскоре и на 14400.

0205 Есть ли у вас выделенная телефонная линия для вашего терминала/компьютера?
0206 … Она легальна?

В СССР/РФ выделенки могли себе позволить только компании, которым досталось множество линий, из которых они могли выделить одну или несколько под модемные соединения. Особо крутые поднимали у себя целые модемные пулы. Но находились и упоротые фанатики, которые свою единственную домашниюю линию телефона выделяли под круглосуточный модем.
Список советских BBS от 1992 года:

0207 Есть ли у вас память на магнитных сердечниках?
0208 … барабанная память?
0209 … пузырьковая память?

0210 Используете ли вы более 16 мегабайт дискового пространства?
0211 … 256 мегабайт?
0212 … 1 гигабайт?
0213 … 16 гигабайт?
0214 … 256 гигабайт?
0215 … 1 терабайт?

0216 Есть ли у вас оптический диск/дисковод?

Забавно, что сегодня это опять стало признаком “особенности”. Нечасто встретишь живой CD/DVD-привод.

0217 Есть ли у вас личная библиотека магнитных лент?
0218 … Они все без этикеток?

0219 Есть ли у вас более 16 дискет?
0220 … 64 дискет?
0221 … 256 дискет?
0222 … 1024 дискеты?

0223 У вас есть 8-дюймовые диски?

0224 В вашем процессоре есть внутренний стек?

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

0225 … А прерывания по тактовому генератору?

0226 У вас есть все три тома “Искусства программирования”? (The Art of Computer Programming)
0227 … Выполнили ли вы все упражнения?
0228 … У вас есть эмулятор MIX?
0229 … Можете ли вы назвать ненаписанные тома?

0230 Можете ли вы цитировать из “Мифического человеко-месяца”? (The Mythical Man-month)
0231 … Вы участвовали в проекте OS/360?

0232 Есть ли у вас справочник по ТТЛ? (TTL)

Справочник по стандартным цифровым ТТЛ-микросхемам

0233 Есть ли у вас распечатки более чем трёхлетней давности?

Карьера

0234 Есть ли у вас работа?
0235 … а была?
0236 … она связана с компьютерами?

0237 Работаете ли вы в неурочное время?

0238 Вы когда-нибудь были системным администратором?

0239 У вас больше мегабайт, чем мегабаксов?

0240 Приходилось ли вам снижать уровень своей работы, чтобы повысить свою вычислительную мощность?

0241 Вас нельзя уволить с этой работы?
0242 … Есть ли код, подтверждающий это?

0243 Вы когда-нибудь получали допуск к секретности?

Игры

0244 Играли ли вы когда-нибудь в Pong?

Играли в
0246 … Spacewar?
0247 … Star Trek?
0248 … Wumpus?
0249 … Lunar Lander?
0250 … Empire?

Проходили
0251 … Moria 4.8?
0252 … Rogue 3.6?
0253 … Rogue 5.3?
0254 … Larn?
0255 … Hack 1.0.3?
0256 … Nethack 2.4?

0257 Можете ли вы набрать больше очков в Rogue, чем Rogomatic?

Rogomatic - это программа, играющая в Rogue. Чтобы её победить придётся быть экспертом.

0258 Вы проходили Adventure?
0259 … Zork?

0260 Вы когда-нибудь писали redcode?

Язык, на котором пишутся программы для сражений в Core War. Цель игры - написать программу, которая выведет из строя программу соперника.

0261 Вы когда-нибудь писали приключенческую игру?
0262 … игру в реальном времени?
0263 … многопользовательскую игру?
0264 … сетевую игру?

0265 Можете ли вы превзойти доктора Элизу?

Отсылка к программе Eliza, симулятору разговора с психотерапевтом.

Железо

0266 Вы когда-нибудь пользовались световым пером?
0267 … сами собрали?

Использовали
0268 … телетайп?
0269 … перфоленту?
0270 … decwriter?

Терминал DECwriter, который частенько использовался тупо как принтер.

0271 … перфокарты?
0272 … SOL?

SOL-20, одна из первых “персоналок”

Вы когда-нибудь собирали
0273 … Altair?
0274 … компьютер от Heath/Zenith?

В наших реалиях не хватает вопроса про сборку ZX-Spectrum.

Вы умеете пользоваться
0275 … осциллографом?
0276 … вольтметром?
0277 … частотомером?
0278 … логическим пробником?
0279 … инструментом для намотки проводов?
0280 … паяльником?
0281 … логическим анализатором?

0282 Вы когда-нибудь проектировали LSI-чип?
0283 … он был изготовлен?

LSI (Large-scale integration) - интегральная микросхема большой степени интеграции, “БИС” - до 10 тыс. элементов в кристалле.

0284 Приходилось когда-нибудь травить печатную плату?

История

0285 Вы когда-нибудь набирали код загрузчика переключателями на передней панели?
0286 … по памяти?

0287 Можете программировать на Eniac?

Electronic Numerical Integrator and Computer - первый компьютер общего назначения. Построен в 1945 году.

0288 Видели когда-нибудь карту с 90 колонками?

Наиболее распространеты были 80-колоночные карты, под стандарт IBM. Но на компьютерах UNIVAC использовались 90-колоночные, стандарта Powers/Remington Rand.

IBM

0289 Вы произносите заводские номера IBM-компонентов во сне?
0290 Знаете ли вы, что такое деталь с номером IBM 7320154?


Фрагмент из инструкции по распаковке IBM System/34

0291 Понимаете ли вы поток данных 3270?

Терминалы 3270 были блочными, а не символьными, типа VT100. По сути, сначала передавалось содержимое блоков (растр), а затем этими блоками можно было что-то изображать на устройствах вывода.

0292 Знаете ли вы, что такое классы привилегий VM?

0293 Вы загружали IBM с магнитной ленты?
0294 … с перфокарт?

0295 Можете ли вы спеть что-нибудь из песенника IBM?

Языки

0296 Знаете ли вы более 4 языков программирования?
0297 … 8 языков?
0298 … 16 языков?
0299 … 32 языка?

0300 Когда-нибудь разрабатывали язык программирования?

0301 Знаете ли вы, что означает Basic?
0302 … Pascal?

0303 Вы умеете программировать на Basic?
0304 … и признаетесь в этом?

0305 Умеете программировать на Cobol?
0306 … и скрываете это?

0307 Знаете ли вы Pascal?
0308 … Modula-2?
0309 … Oberon?
0310 … Более двух языков Вирта?
0311 … Можете процитировать шутку Никлауса Вирта?

Видимо, отсылка к этой, известной в различных модификациях:

Whereas Europeans generally pronounce my name the right way (‘Ni-klows Wirt’), Americans invariably mangle it into ‘Nick-les Worth’. This is to say that Europeans call me by name, but Americans call me by value

“Европейцы читают моё имя как Никлаус Вирт, а американцы - Никельс Ворт (Nickel - пятицентовая монета, worth - стоимость, ценность). Другими словами, европейцы зовут меня по имени, а американцы - по значению”.

0312 Вы знаете Алгол-60?
0313 … Алгол-W?
0314 … Алгол-68?
0315 … Вы поняли описание Алгола-68?
0316 … Вам нравится двухуровневая грамматика?

Язык Алгол-68 сильно сложнее Алгола-60, даже его описание намноооого длиннее: 237 страниц, против 16 в Алголе-60. Кроме того, описание грамматик стало контекстно-зависимым, из-за чего у многих возникали сложности с их пониманием.

0317 Можете ли вы программировать на ассемблере на 2 разных машинах?
0318 … на 4 разных машинах?
0319 … на 8 разных машинах?

Вы знаете 0320 … APL?
0321 … Ada?
0322 … BCPL?
0323 … C++?
0324 … C?
0325 … Comal?
0326 … Eiffel?
0327 … Forth?
0328 … Fortran?
0329 … Hypertalk?
0330 … Icon?
0331 … Lisp?
0332 … Logo?
0333 … MIIS?
0334 … MUMPS?
0335 … PL/I?
0336 … Pilot?
0337 … Plato?
0338 … Prolog?
0339 … RPG?
0340 … Rexx (or ARexx)?
0341 … SETL?
0342 … Smalltalk?
0343 … Snobol?
0344 … VHDL?
0345 … любой ассемблер?

0346 Вы можете поговорить с VT-100?
0347 … Postscript?
0348 … SMTP?
0349 … UUCP?
0350 … English?

English тут - это не английский язык. Это ENGLISH - язык запросов к базам данных и создания отчетов, созданный в 1973 году на основе SQL.

Микро

0351 Вы когда-нибудь копировали защищённый от копирования диск?
0352 Создавали свою защиту от копирования?

0353 Делали ли вы когда-нибудь flippy disk?

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

0354 Восстанавливали данные с поврежденного диска?

0355 Вы когда-нибудь загружались с “раздетой” дискеты?

Сеть

0356 Вы когда-нибудь входили одновременно в системы из двух разных часовых поясов?

0357 Помните наизусть карту UUCP для своей страны?
0358 … Для любой страны?

0359 Находили ли вы когда-нибудь ошибку в sendmail?
0360 … Это была дыра в системе безопасности?

0361 Вы помните список из HOSTS.TXT?
0362 … Уверены, что он актуален?

Файл HOSTS.TXT в то время содержал имена и IP-адреса всех систем в сети. Приходилось время от времени обновлять этот файл. Если вы хотели добавить новый узел в сеть, нужно было отправить об этом письмо координатору. Позже на замену всему этому пришёл DNS.

0363 Можете ли вы назвать все серверы имен верхнего уровня (top-level nameservers) и их адреса?

На сегодняшний день это имена от a.root-servers.net до m.root-servers.net

0364 Знаете наизусть RFC-822?

RFC 822 - Standard for ARPA Internet Text Messages. Описание стандарта электронной почты. 0365 … Можете перечислить все ошибки в нём?

0366 Писали ли вы конфигурационный файл для Sendmail?
0367 … Он работает?
0368 … Бормочете во сне “defocus”?

Программа Sendmail известна сложностью формата своего конфигурационного файла. Авторы настолько перемудрили со сложностью, что язык конфигурации случайно оказался Тьюринг-полным.

0369 Знаете ли вы максимальное время жизни пакетов?

Операционные системы

Умеете пользоваться
0370 … BSD Unix?
0371 … non-BSD Unix?
0372 … AIX
0373 … VM/CMS?
0374 … VMS?
0375 … MVS?
0376 … VSE?
0377 … RSTS/E?
0378 … CP/M?
0379 … COS?
0380 … NOS?
0381 … CP-67?
0382 … RT-11?
0383 … MS-DOS?
0384 … Finder?
0385 … PRODOS?
0386 … больше чем одной OS для TRS-80?
0387 … Tops-10?
0388 … Tops-20?
0389 … OS-9?
0390 … OS/2?
0391 … AOS/VS?
0392 … Multics?
0393 … ITS?
0394 … Vulcan?

0395 Использовали ли вы для страниц или свопа ленточный накопитель?
0396 … перфокарты?
0397 … телетайп?
0398 … сетевой диск?

0399 Находили ошибку в операционной системе?
0400 … Пользовались ею?
0401 … Сообщили об ошибке авторам?
0402 … Вас проигнорировали?

0403 Когда-нибудь “роняли” машину? (crash)
0404 … Нарочно?

Люди

0405 Вам знаком кто-нибудь из людей?
0406 … больше, чем один человек?
0407 … больше, чем два?

Личное

0408 Ваши шнурки развязаны?

0409 Умеете общаться с незнакомыми людьми?

0410 Вы можете назвать телефонные номера пяти компьютерных систем, но не знаете свой собственный?

0411 Вы логинитесь до завтрака?

0412 Употребляете ли вы больше половины летальной дозы кофеина в день?

Около 75 миллиграммов на килограмм веса. В одной чашке заваренного кофе - до 150 миллиграммов кофеина.

0413 Отвечаете ли вы на вопросы с выбором или-или словом “да”? (“Вам чай или кофе?”)

0414 Есть ли у вас актуальная копия какого-либо руководства по операционной системе?
0415 … каждого руководства по операционной системе?

0416 Испытывают ли другие люди затруднения при работе в настроенной вами среде?

0417 Мечтаете ли вы на каком-нибудь языке программирования?

0418 Вам трудно сфокусироваться на трехмерных объектах?

0419 Вы игнорируете мышей?

0420 Вы презираете CAPS LOCK?

0421 Считаете, что меню должны быть в ресторанах?

0422 У вас на стене висит Мандельброт?

0423 Вы когда-нибудь украшали интерьер магнитной лентой или перфокартами?
0424 Висит ли у вас дома пластина от диска или “раздетая” дискета?

0425 Вы когда-нибудь встречали рассвет?
0426 … Два раза подряд?

0427 Используете слово “foobar” в повседневном общении?
0428 … “bletch”?

0429 Используете ли вы “P convention”?

В Common Lisp и некоторых других языках программирования используется суффикс “p” для предикатов, например (numberp 42). Более новые лиспы, такие как Scheme и Clojure, используют более понятный “?”, например (string? "foo"). По рассказам, некоторые использовали этот суффикс и в обычном разговоре.

0430 Вы автоматически отвечаете RTFM на любой вопрос пользователя?
0431 … А знаете, что это значит?

0432 Считаете ли вы, что уборка мусора - это управление памятью?

0433 Бывают ли у вас проблемы с выделением горизонтального пространства в комнате (офисе)?

0434 Читаете в барах Scientific American, чтобы подцепить женщину?

0435 Ваш автомобильный номерной знак связан с компьютерами?

0436 Вы когда-нибудь проходили the Purity test?

0437 Умеете что-нибудь за пределами центрального процессора?

0438 Вы когда-нибудь назначали через компьютер свидание вслепую?

0439 Общались с человеком, сидящим рядом с вами, через компьютер?

Программирование

0440 Можете написать компилятор Фортрана?
0441 … В TECO?

0442 Умеете ли читать машинный дамп?
0443 Можете дизассемблировать код в уме?

Вы когда-нибудь писали
0444 … компилятор?
0445 … операционную систему?
0446 … драйвер устройства?
0447 … текстовый редактор?
0448 … видеохак?
0449 … систему баз данных?
0450 … экспертную систему?
0451 … детектор границ?
0452 … систему управления реального времени?
0453 … бухгалтерскую программу?
0454 … вирус?
0455 … антивирус?

0456 Вы когда-нибудь писали программу для расчёта биоритмов?
0457 … Продавали результат?
0458 … Алгоритм для неё взяли “с потолка”?

0459 Вычисляли число пи с точностью более тысячи знаков?
0460 … число e?

0461 Находили ли вы когда-нибудь простое число, состоящее более чем из ста цифр?

0462 Когда-нибудь писали самомодифицирующийся код?
0463 … Гордитесь?

0464 Вы когда-нибудь писали программу, которая заработала правильно с первого раза?
0465 … Она была 20 строк?
0466 … 100 строк?
0467 … На ассемблере?
0468 … Во второй раз тоже правильно отработала?

0469 Можете ли вы решить задачу о “Башнях Ханоя” рекурсивно?
0470 … Не рекурсивно?
0471 … С помощью программы Troff?

0472 Вы когда-нибудь участвовали в конкурсе обфусцированного кода на C? (Obfuscated C code contest)
0473 … Победили?
0474 … Это привело к созданию нового правила контеста?

0475 Знаете что такое Duff's device?

0476 Знаете что такое Jensen's device?

0477 Вы когда-нибудь тратили десять минут, пытаясь найти ошибку, исправление которой состояло из одного символа?
0478 … Больше часа?
0479 … Больше дня?
0480 … Больше недели?
0481 … Первый человек, которому вы показали код, сразу же увидел ошибку?

Unix

0482 Умеете пользоваться Berkeley Unix?
0483 .. Не-Berkeley Unix?

0484 Сможете по тексту раздела сказать, относится он к четвёртому или пятому разделу руководства Unix?

В BSD (и Linux) 4 - это специальные файлы, а 5 - форматы файлов. В SysV 4 - форматы файлов, а 5 - “разное”.

0485 Можете ли вы найти TERMIO в документации по System V release 2?

0486 Вы когда-нибудь монтировали ленту в качестве файловой системы Unix?

0487 Когда-нибудь собирали Minix?

0488 Можете ли вы правильно ответить на вопросы quiz function ed-command?
0489 … Как насчет quiz ed-command function?

Если запустить quiz function ed-command - получите жёсткий тест на знание команд ed. А quiz ed-command function показывает вам случайный ответ на предыдущий тест и ожидает, что вы введёте вопрос, которому он соответствует.

Usenet

0490 Читаете ли вы новости?
0491 … Более 32 групп новостей?
0492 … Более 256 групп новостей?
0493 … Все группы новостей?

“Новости” - это коллекция дискуссионных тем в стиле “доски объявлений”. Дискуссии были организованы в беседы, а беседы - в различные группы новостей.
Новости обычно распространялись отдельными нодами по модему: один узел подключался к другому, передавал/получал все свои новые статьи, а затем отключался. Вызванный сайт затем звонил на другие сайты и распространял новости, и так далее. Также для этой задачи использовался FidoNet
Совокупность всех сайтов, участвовавших в распространении публичных сетевых новостей, стала называться Usenet.
Usenet стал для многих первым знакомством с тем, что впоследствии станет Интернетом, и породил множество терминов, которые используются и по сей день: “спам”, “флейм”, “FAQ”.

0494 Вы когда-нибудь размещали статью?
0495 … Вы регулярно публикуете статьи?

0496 Вы когда-нибудь начинали флейм?
0497 … Флеймили в ответ на кросс-постинг?
0498 … Разводили флейм по поводу флейма?
0499 … Регулярно ли вы флеймите?

0500 Вы когда-нибудь публиковали свою программу в группе новостей?

Бинарные данные встраивались в текст обычно в формате UUE - Unix-to-Unix Encoding

0501 Когда-нибудь начинали тему?
0502 Создавали новую группу новостей?
0503 … Существует ли она до сих пор?

0504 Помните ли вы
0505 … mod.ber?
0506 … the Stupid People's Court?
0507 … Bandy-grams?

mod.ber - модерируемая группа с еженедельным дайджестом всех групп, созданная, когда Usenet выпрос настолько, что один человек уже не мог охватить его целиком.
Stupid People's Court - группа новостей REC.HUMOR.SPC.
Bandy-gram - короткий неформальный саркастический-юмористический ответ в рамках темы.

Фрикинг

Phreaking - по сути, хак телефонной сети

0508 Вы когда-нибудь собирали black box?
0509 Можете ли вы назвать все цвета “коробок”?
0510 … и связанные с ними функции?

...-box” - это аппаратные устройства для хака
черный - для бесплатных звонков
синий - консоль телефонного оператора
зеленый - управление таксофоном (но только с того телефона, на который звонят с таксофона)
красный - имитировал опускание монет в таксофон
бежевый - телефонная трубка сервисного инженера
прозрачный - позволял использовать постоплатные таксофоны без оплаты
золотой - позволял соединять мостом две телефонные линии
пурпурный - генерация сигнала вызова (обычно использовался в паре)
оранжевый - подделка CalerID: замена номера вызывающего абонента
вермильон - комбинация пурпурного и оранжевого цветов
фиолетовый - имитация отключённого телефона
серебряный - генерация DTMF-тонов в Defense Switched Network (устаревшая телефонная сеть, использовалась Министерством обороны США)

Использование терминологии “цветных коробок” стало применяться к другим устройствам для хака. Например, “хромированная коробка” (chrome box) использовалась для управления сигналами светофора.

0511 Есть ли на вашем телефоне все 16 кнопок DTMF?

Это 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #, A, B, C, D. Кнопки ABCD встречаются очень редко, но также имеют тоны DTMF.
Эти четыре кнопки издавали дополнительные тональные сигналы, которые распознавались телефонными коммутаторами и выполняли специальные функции, предназначенные только для операторов, например, инициировали бесплатные междугородние звонки на другие станции.

0512 Создал ли распад MaBell для вас больше возможностей?

MaBell - Ma Bell - материнская компания. Речь об AT&T, которая в 1974 году проиграла антимонопольный иск и была разделена на семь частей, которые стали называть Baby Bells.
В 1990-2000 годах AT&T выкупила обратно четыре из семи этих компаний.