Bash.org.ru IT Happens Истории ## 1301 – 1400 - страница 22

Шрифт
Интервал

стр.

 

Горжусь отцом! Старая гвардия не сдаётся.

 

 

 

#1383: Счастливой отладки!

12:00 29.10.2009, IT happens

 

Однажды мне довелось «подхватывать» проект на C++, оставшийся от одного программиста, уволенного несправедливо (по его личному мнению). Впрочем, проект был почти завершён, и мне оставалось лишь немного дописать интерфейс, провести тестирование, отладку и сдать всё заказчику.

 

Как обычно, сроки поджимают, а я всё никак не могу разделаться с «ловлей блох»: приложение то работает нормально, то вдруг начинает глючить и вылетать на ровном месте. Как выяснилось, периодически возникало std::exception, но отследить, откуда оно бралось, у меня никак не получалось: казалось, что таинственная ошибка присутствует буквально всюду, при этом появляясь далеко не при каждом запуске.

 

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

 

Дома первым делом в надежде на чудо запускаю экзешник — вылетает, сволочь. Ладно, запускаю полную компиляцию и иду чистить картошку. Возвращаюсь — ошибка!

 

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

 

#include

 

Гугление результата не даёт; просто комментирую эту строку и компилирую заново — успешно! Запускаю — программа работает как часы.

 

Придя в понедельник на работу, первым делом я решил глянуть, что же это за таинственная библиотека. Код её оказался настолько же лаконичным, насколько садистским:

 

 

#ifndef CFDC_H

#define CFDC_H

 

#include

#include

 

#define return if (std::random(1000) < 2) throw std::exception(); else return

 

//Счастливой отладки!

 

#endif

 

Надо ли говорить, что наш проект использовал в одном незначительном месте стандартный генератор случайных чисел, а вызываемый при инициализации std::randomize() успешно заметал любые следы?..

 

 

 

#1384: Укротитель сверхзвуковых грызунов

12:00 29.10.2009, IT happens

 

Стоят у меня в фирме тонкие клиенты — грузятся с сетевухи, получая параметры загрузки из конфигурационного файла на сервере. У каждой сетевухи есть собственный конфиг, в котором помимо имени пользователя, IP-адреса и прочей лабудени есть параметр mouse_acceleration, управляющий скоростью движения курсора. Параметр этот по умолчанию равен 1. Чем больше число, тем быстрее двигается маус — при значении 5 мышка при минимальном движении прыгает из одного угла экрана в другой по диагонали.

 

Был один надоедливый манагер, который всю душу мне выел, пока я настроил все параметры под него. Два дня меня он мучил. Всё настроил — вроде как успокоился. Звонит он опять на следующий день и говорит: «Иван, мышка медленно ездит, можно побыстрее?» Я в сердцах выставляю ему запредельное на мой взгляд ускорение — 22. Думал, он поглядит, как мышка шустро от него убегает, и попросит «вернуть всё, как было». Но он не попросил, а я потом и забыл об этом.

 

Манагер тот все-таки уволился; посадили на его место другого. Тот мне сразу звонит: «Мышка — не аллё. Почините». Прихожу чинить — глазок светится; пробую покатать грызуна — курсор мечется по экрану так, что его едва видно. Вспомнил я про злосчастную шутку над предыдущим менеджером и вернул параметр к нормальному виду.

 

Вернувшись на своё рабочее место, я три дня пробовал научиться пользоваться «сверхзвуковой» мышкой и смог добиться точности лишь в половину экрана. А ведь человек так полгода смог проработать! Мне кажется, он без проблем смог бы уничтожить Звезду Смерти, попав в выхлопное отверстие реактора диаметром 2 метра.

 

 

 

#1385: Померяемся FPS?

12:00 29.10.2009, IT happens

 

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

 

Встретились сразу после работы. Друг зашёл и с порога разрушил мои планы на вечер: «Давай прогоним 3DMark, сравним производительность видюх. Неинтересно же просто так их переткнуть!»


стр.

Похожие книги