Школа-интернат. Все давно играют в World of Warcraft. Сервер московский, так что играют чаще ночью. В общаге имеется воспитатель, который патрулирует комнаты и коридоры, и за игру в три ночи наказывает нещадно. Играют все лёжа на кроватях — так видно меньше. Однако это не летний лагерь, а всё-таки школа, и выполнение домашней работы по программингу происходит в той же обстановке, на кровати с чашкой кофе/банкой энергетика/бутылкой воды.
Итак, на часах 3:30. В комнате двое играют и один пишет код к завтрашнему уроку.
— Колян, ты где там бродишь? Танковать я, что ли, должен? — Да не парься ты, тут я, щас запинаем как ребёнка. — Серый, напомни, у нас в шестом номере через какую конструкцию процедуру делать? — Через while... Не, ну ты посмотри, срывается, козёл! Саня, тебе долго ещё проги набивать? Нам твой хант позарез нужен. — (под нос) Факинг Паскаль... Где я запятую пропустил? (шёпотом) Да щас зайду, убьём мы эту элитку и орду распинаем. Я вон вижу, у вас там пара орков бегает. — Ладно, ждём тебя.
Звонит телефон: — Элвис, не тупи, заходи в онлайн. Мы в ауте... Да-да, сделал я лит-ру, завтра спишешь. Заходи резче... Что?.. Какое ОБЖ? Какой конспект?.. Да сделаем, щас, добьём гада одного.
— Всё, добил прогу. Как часы работает! Я захожу. Ждите... — А нам не только ОБЖ задавали...
Патруль не дремлет. Мастер-класс от общаги: закрыть ноут и притвориться спящим за полсекунды, пока открывается дверь комнаты. Школа, а за выполнение домашней наказывают — жестокие нравы!
Пишем стрелялку. Естественно, в игровом мире куча всего стреляющего, взрывающегося, просто летающего и, самое главное, сталкивающегося.
При каждом столкновении должна вызываться функция под названием hit_happened(). Получилось так, что именно с этим у нас было связано огромное количество мелких глюков: вызывалась эта функция не с теми параметрами или через два раза на третий. Мы её чинили, потом она снова начинала глючить.
После очередной итерации мой начальник задумчиво сказал, что надо было с самого начала назвать её shit_happened().
Мои «продвинутые» родители тоже ставили мне пароль на BIOS, чтобы я в Quake II поменьше играл. Удаление пароля путём извлечения батарейки ни к чему хорошему не привело: пароль, естественно, появился вновь.
Перебирая в голове детективно-шпионские методы, я решил узнать для начала, какие символы используются. Сначала была идея положить внутрь клавиатуры под кнопки лист бумаги и лист копирки. После того, как клавиатура была разобрана, копирка не понадобилась — я придумал идеальный способ.
Клавиши фиксировались от выпадения защёлками. Особенность была в том, что они имели промежуточное состояние, в котором клавиша ещё не изъята из клавиатуры, но уже зафиксирована. Такая клавиша немного выступала над остальным и нажималась с характерным щелчком.
Таким образом были «подняты» все буквенно-цифровые клавиши. После того, как пароль был набран, нажатые клавиши стали ниже остальных и были переписаны на бумажку. Аналогичным способом, с той лишь разницей, что фиксировалась лишь одна кнопка, определялся порядок следования букв — по звуку щелчка было нетрудно выяснить, какой по счёту была набрана конкретная буква. Слово удалось подобрать за пару дней.
Работал в одной электротехнической компании программистом. Делал доработки к бухгалтерской программе и, как это обычно бывает, занимался всем, что связано с компьютерами, от замены картриджей до прокладки сети. Однажды во время квартального отчета подошла ко мне бухгалтерша и попросила:
— У нас сейчас дел невпроворот, пригляди за сынишкой, пусть он с тобой побудет — он у меня компьютерами интересуется.
Мне не жалко, лишь бы не доставал сильно. Приводит ко мне парнишку лет семи-восьми и говорит ему:
— Вот, это дядя Андрей, он программист, ты будешь с ним.
Началось с того, что срочно понадобилось подцепить к сети еще одну машину. Взял кабель, молоток, стяжки, гвозди — тяну пару. Ребёнок рядом со мной:
— А я думал, что программисты гвозди не заколачивают.
Подцепил машину к сетке, пошли в кабинет, посадил его за свободный компьютер, сижу, занимаюсь своими делами. Слышу, он меня спрашивает:
— Дядя Андрей, а вы знаете пароль, чтобы в «контр-страйке» перейти на уровень ***? — Да нет, я в него вообще не играю. — Да? А я-то думал, что вы программист...
В общем, после этого дядя Андрей в глазах мальчика упал ниже плинтуса.
За обедом оседлал моё рабочее место юзверь — погонять какой-то шутер решил. Юзверь хороший, с компами обращается правильно, так что я без лишних вопросов дал ему полчаса расслабиться. Допив чай, я и сам чувствую непреодолимое желание «поdoomать». Подхожу к рабочему месту и говорю ставшую сакральной фразу:
— Всё, хватит, стоп-игра!
Никогда не глючившая машинка наглухо виснет: ни Alt+F4, ни Ctrl+Alt+Del не помогают. Юзверь с очумелыми глазами молча уступает мне место. После нажатия волшебной кнопочки на корпусе всё продолжило работать с прежней стабильностью и в моих руках не глючило. Коллеги стали посматривать на меня с опаской: мало ли что ещё выкину?
Во времена моего школьного детства была у меня 486-я машина и шариковая мышь. Однажды я достал шарик, протёр его и оставил на столе. Маленький круглый серый объект нашла собака и из интереса немного погрызла. Понятно, шарик стал абсолютно непригоден для использования, но денег на внеплановую покупку нового манипулятора у меня не было.
Мышь пришлось разобрать. Ролики крутились пальцем — двигать их приходилось в обратную сторону относительно движения курсора, отдельно по вертикали и горизонтали. В микропереключатели же приходилось попадать ногтём.
Таким макаром я проработал целый месяц. Скажете, велика проблема, во времена DOS мышь была особо не нужна? Так-то оно так, но основное время за компьютером я тогда проводил, играя в Warcraft...
Электрики подкрались незаметно. Медленно погас экран, унося с собой винду, торренты и музыку, которую я не успел переписать на диск D. Крик души из комнаты слева: «Уроды, я этот фильм третий час качаю!» Оттуда же: «Б#я, плакало обновление на гиг!» Контрольный детский голос ставит точку:
Есть у нас с друзьями традиция: каждую последнюю субботу месяца мы собираемся на LAN-party, пьём пиво и играем во всё, к чему лежит душа.
Я только-только решил поменять свой стационарный компьютер на ноутбук, с которым и припёрся играть. Много ли пива выпили, мало ли, но я начал замечать, что клавиатура ведет себя в играх как-то странно. Когда я нажимал пробел для прыжка, частенько происходил выстрел из оружия в руках героя.
Что за фигня? Над этим вопросом я размышлял до самого утра, сетовал, что что-то не так с ноутбуком, и думал, какая кнопка может залипать или ни с того ни с сего генерировать до кучи чужой скан-код. Так и играл: прыжок — выстрел, прыжок — выстрел...
Только утром, когда я, сонный и уставший, шёл пешком домой с ноутбучной сумкой через плечо, до меня дошло, что тачпад не отключался при подключенной мышке и заботливо генерировал нажатие левой кнопки мышки, когда я случайно задевал его рукой, нажимая на пробел.
Каюсь, увлекался одно время Lineage II. Ботоводов в «линейке», как нигде, выше крыши, и отлавливают их в немалом количестве. Я же программных ботов не юзал никогда, но... В связи со спецификой айтишной работы компьютерного барахла у меня имелось в достатке, и для одной задумки я собрал минимально тянущий игру комп и соорудил занимательный механизм.
В хламе я обнаружил пятивольтовое реле. Из полумёртвой оптической мыши выдрал плату, засунул в пластиковую коробочку из-под винта, к контактам левой кнопки припаял два проводка. С выхода звуковухи сигнал направил в линейный вход старого «Маяка-240» — в лом было ехать на радиорынок за низковольтным реле. Один из выходов «Маяка» на колонки я соединил с управляющими контактами реле; в SoundForge сгенерировал белый шум с максимальной амплитудой и длиной импульса в 0,3 секунды, а в Winamp создал плейлист с чередующимися треками импульсов и тишины нужной длительности.
Дальше всё просто: запускаем Winamp, запускаем плейлист, логинимся в игру, усаживаем твинка-гномика клепать патроны, наводим курсор на кнопочку «Создать», переключаем KVM-свитч на другой порт (теперь курсор с кнопки уже никуда не съедет ни при каких обстоятельствах), включаем питание на магнитофоне.
Солдат спит — служба идёт! Аудиоэлектромеханический автонажиматель обеспечил мне безбедное соло-существование вплоть до А-грейда, а потом мне уже как-то и надоело.