Выпало мне как-то дежурить в выходные (благо, я был молод и не женат). Решил я найти крэк для одной программы. Куда идти? Разумеется, на «Альтависту»!
Я не учел, того, что эти товарищи уже начали зарабатывать на рекламе порносайтов. На экране открылось окошко с фотографией девушки, которую парень со знанием дела раскладывает на столе в ряд Лорана. Начинаю думать, как бы прибить это окно так, чтобы не породить десятка новых подобного содержания - в конце концов, в кабинет могут зайти сотрудники и посетители.
В этот самый момент на пороге возникает сам директор - крепкий сибирский мужик.
- Работаешь?
- Работаю! - отвечаю я, щелкая по крестику.
Мои худшие предположения оправдываются. Экран со скоростью 256 Кбит/с заполняется кучей картинок явно «голубого» содержания. Шеф делает роковой шаг вперед.
Я готов провалиться сквозь пол: доказать, что я не верблюд, просто невозможно, а городок у нас маленький. Начинаю обдумывать, сколько мне понадобится времени, чтобы слинять, пока моя ориентация не станет достоянием общественности.
- Ну, работай! - вдруг улыбается шеф и выходит из кабинета.
За все время эту ситуацию мы с директором ни разу не затрагивали в разговоре, да и в конторе ко мне хуже относиться не стали. Только когда я пришел просить неделю свадебного отпуска, шеф заметно повеселел и подписал аж две недели.
Мораль: пользуйтесь лицензионными программами, чтобы не прослыть педерастом!
#838: Paper-ROM
2 мая 2009, 09:00
Однажды я проходил собеседование на должность программиста. HR-менеджер в числе прочего спросила: «Как вы начали программировать?» Никогда об этом не задумывался, но все-таки вспомнил.
В самом начале девяностых я учился классе в пятом и захотел себе компьютер для игрушек. Жили мы в то время небогато, родители такую покупку бы не потянули - на компьютер копил я сам, долго и упорно подрабатывая по мелочи.
Наконец красавец-компьютер был куплен. 48 Кбайт ОЗУ и процессор Z80 - это был всем известный ZX Spectrum. Подразумевалось, что дисплеем должен служить телевизор, а в качестве внешнего накопителя использоваться кассетный магнитофон. Вооружившись паяльником, к телевизору я «спектрум» подключил, а вот с магнитофоном повезло меньше - его не было. Свовсем.
Все игры были записаны на кассеты - загрузить их было нельзя, а играть-то хотелось. Пришлось писать игрушки самому - совсем простенькие, зато свои!
Каникулы теперь у меня выглядели следующим образом: полдня пишу игру, полдня играю, а вечером мама, вернувшись с работы, вырубает машину и тем самым уничтожает все труды. Следующим утром цикл повторялся.
Если же я не успевал дописать игру или результат выходил уж очень интересным, листинг «сохранялся» на бумагу при помощи ручки и с утра набирался заново. Частенько я замечал, что процесс написания стал интереснее самих игр!
#839: Обстоятельства непреодолимой силы
3 мая 2009, 12:45
Надо было мне распечатать один листик. Смело жму Ctrl+P, иду в соседнюю комнату, где стоит принтер - странно, но ничего не напечатано. Принтер работает, тонер и бумага есть, а результат нулевой.
Отправляю еще раз из другой программы, поглядывая на очередь печати принтера: все отлично, но распечатки так и нет.
Причина обнаружилась листе на седьмом-восьмом: кто-то выкрутил мощность кондиционера на полную, и за то время, что мне требовалось, чтобы дойти до принтера, искусственный «ураган» успешно сдувал очередной листок в дальний угол под стол.
#840: Закрепляющее + слабительное
3 мая 2009, 12:45
Серьезный космический проект. Интегрируется система дифференциальных уравнений движения спутника. С точки зрения программеров - примитивное консольное приложение, которое периодически выводит в левый верхний угол экрана время, в течение которого летает спутник, и его координаты. Все данные мы сверяем с аналогичной программой, созданной в другом институте - так сказать, проверяем друг друга на вшивость.
Все бы хорошо, но время от времени спутник «прыгает назад» во времени часов на двенадцать. При этом в каждый момент времени он по нашим расчетам находится там, где и должен быть - вроде как ошибок нет.
Однако временные скачки напрягают, и после изучения кода я таки нахожу баг - даже и не баг, а глупую опечатку. Исправляю, запускаю прогноз движения… и спутник «улетает» со свехсветовой скоростью за пределы галактики!
Восстанавливать старый код смысла нет. Продолжаю поиски и через час нахожу второй баг, который полностью компенсирует влияние первого. Между двумя ошибками и стоял оператор вывода информации на экран.
С тех пор я помню: при отладке программер, как правило, наблюдает сложный результат интерференции нескольких багов и исправление одного из них не всегда меняет ситуацию в лучшую сторону.