938
Как-то раз «попросили» меня срочно сочинить одну программку: с любого рабочего места нужно было получить возможность смены прошивки в мозгах одной из железяк нашего комплекса. Имелся один нюанс — для переключения из рабочего режима в режим программирования в разъём на железякиной морде вставлялся хвостик, оканчивающийся обычным двухпозиционным тумблером. Тумблер, естественно, никак не был промаркирован — положений-то всего два.
В то время я занимался большой красивой задачей, и отвлекаться на подобную фигню совершенно не хотел. Получившаяся в итоге программка была обозвана неприлично звучащей аббревиатурой, интерфейс имела весьма скромный, но работала. При старте программа проверяла, в каком режиме находится железка, и при необходимости выдавала лаконичное сообщение: «Щёлкни тумблером».
В один прекрасный день моему коллеге понадобилось загрузить новую прошивку. Он поинтересовался, что означает фраза «щёлкни тумблером». Я объяснил в двух словах. Какое-то время коллега меня не беспокоил, но чуть позже появился над моим столом с пунцовым лицом и вежливо, но громко вопросил: «Какого хрена? Ты что, издеваешься? Я уже полчаса щёлкаю этим @#$ным тумблером!»
Немало удивившись, я отправился на стенд, прихватив по пути одного из аппаратчиков. Причина «ужасного» глюка обнаружилась мгновенно — у тумблера отвалился один из проводков, так что можно было щёлкать им аж до судного дня. Но виноватыми, как водится, всё равно остались программисты.
928
Я уж думал, что совсем свихнулся. Моя числодробилка периодически показывает, какую итерацию она сейчас считает. Запустил, понял, что надо бы немного поменять алгоритм. Нажал Ctrl+C, поправил код, снова пускаю. Пишет:
а = -1
а = -0.9
а = -0.8
а = 0.3
а = -0.7
И почему же она на 0.3 скакнула, а потом вернулась обратно на –0.7 вернулась? Опять жму Ctrl+C, снова лезу в алгоритм, всё просматриваю — не может такого быть! Я этот код долго вылизывал, нечему там ломаться. Запускаю по новой.
а = -1
а = -0.9
а = 0.6
а = -0.8
а = -0.7
а = 0.7
Такого не может быть, потому что такого не может быть никогда! Я поиском по коду смотрел — переменная меняется только в строчке «for a = -1:0.1:1».
Понял, в чём было дело, только когда появилось сообщение «запущенный в бэкграунде процесс завершён». Я случайно не прервал выполнение программы, а отправил её в фон, откуда она и посылала мне свои «приветы».
891
Работаю в небольшой компании программистом. Чаще всего мне приходится писать программки ленивым студентам.
В среду после обеда с сайта приходит заказ на курсовую. Собственно, работа не очень сложная, но указана куча дополнительных требований: какие конструкции использовать, как организовать хранение данных и так далее. В поле «срок выполнения» стоит «четверг, вечер».
Шеф, прикинув, заявляет: «Ну его, дольше требования читать! И так работы сейчас хватает — конец семестра, дипломы». Отправили заказчику ответ, что сроки слишком сжатые — не возьмёмся.
В четверг после обеда от студента приходит ещё одно сообщение: «Так уж и быть, можно до вечера пятницы».
888
Работаю в небольшой конторке, занимаемся поставкой различной съедобной продукции.
Имеем две базы 1С: одна управленка, а другая чисто бухгалтерия. И так уж вышло, что директория с бухгалтерией находится в директории базы-управленки. Всё это бэкапится хорошей (на мой взгляд) программкой-бэкапером.
Спустя некоторое время пришлось переселить управленку на SQL, а бухгалтерию оставить, как было, в файловом хранении, в той самой папочке со старенькими файликами управленки. Настроили бэкапер на бэкап скульной базы и отключили бэкап старой, файловой базы, позабыв о работающей бухгалтерской.
Сегодня утром, главный бухгалтер что-то не то выгрузил и загрузил в свою базу. И, конечно же, сразу обратился ко мне, чтобы я восстановил свеженький бэкапчик. Но как только я понял, что речь идёт о той самой базе, которую удалил из задач бэкапера ещё неделю назад, я упал в осадок. Перед тем как расстроить бухгалтера, решил глянуть, за какое число есть последний бэкап. Как же велико было моё удивление, когда я увидел, что последний бэкап той самой базы был сегодня! Все счастливы, все рады.
Спасибо бэкаперу, что вовремя заглючил и продолжил делать свою работу несмотря на то, что правило уже давно было удалено.
870
Работаю в одной госконторе в центральном офисе. В мои обязанности входит проверка XML-файлов, присылаемых филиалами, для последующей отправки дальше по «пищевой цепочке». Особенность проверки заключается в том, что эти файлы приходится отсматривать вручную — открывать, проглядвыать содержимое и при необходимости править. Для учёта файлов программисты написали утилитку.
Каждый месяц мы сдаём отчёт о проделанной работе, чтобы получить в итоге свои кровные. С появлением программы учёта мы решили, что со встроенной статистикой составлять отчёты будет проще — ан нет! То ли кодеры поленились, то ли программа подглючивала — у пользователей статистика не работает. Иду к ведущему программисту: «Женя, открой базу данных и дай мне количество файлов, проверенных за месяц». Он кивает и приступает.
Разговорился с админами. Краем уха слышу, как Жека что-то бубнит под нос. Наверное, думаю, мантры программерские читает. Поворачиваюсь и вижу, что это чудо, отсортировав строки по датам, с помощью стрелки «вниз» пересчитывает строки вручную. Долго смеялись, но он их всё-таки пересчитал — когда статистику в итоге починили, количество сошлось.
853
Как-то раз, будучи в командировке, на территории заказчика отлаживал я работу одной несложной программки. Где-то глубоко в ней скрылся очень неприятный баг. Времени на отладку было немного, бегал я целыми днями в мыле.
Ситуацию ухудшал неприятный тип — начальник отдела, в котором я и устанавливал эту прогу. Умом был не силён, мышкой еле шевелил, да и вообще не очень понимал, для чего ему сдалась эта программа, однако под давлением сверху всё время капал мне на мозги фразой «когда будет готово?»
В один день моя расшатанная дебаггингом нервная система не выдержала — в ответ начальнику отдела была выдана фраза, после которой он долго боялся меня о чём-либо спрашивать:
— В данный момент прикладное программное обеспечение для сбора информации через коммутируемый канал оператора телефонной связи находится на стадии отладки программного кода, вследствие чего работоспособность его ограничена и полноценное функционирование не может быть обеспечено. В данный момент нашими специалистами ведётся работа по нахождению несоответствия в работе программного кода — как только данная проблема будет решена, я обязательно поставлю Вас в известность.
843
Решил тут ради эксперимента сделать из своей машины «хакинтош» — благо, болванка с какой-то сборкой Леопарда уже давно валялась. Естественно, что Mac OS на чужом железе сразу работать не возжелала и периодически «радовала» меня kernel panic. Получилось, что переустанавливать всю систему приходилось много раз.
В один прекрасный момент, уже в который раз собираясь на автомате щёлкнуть кнопку «Принимаю» на экране лицензионного соглашения, периферийным зрением в углу окна я заметил слово, которого там явно не должно быть. Начинаю читать с самого начала и понимаю, что вместо стандартного «бла-бла-бла» заботливые пираты написали весьма подробную инструкцию по установке.
841
Было это в далёком девяносто восьмом. Компьютеры ещё были чем-то загадочным, и те, кто хоть как-то в них разбирался, своим сленгом внушали простому обывателю уважение и страх перед неизведанным.
Приходит ко мне как-то друг — компьютер купили, а играть-то не во что. Перебирает диски на моей полке и доходит до какого-то «набора юного хакера».
— А что это?
— Этот... весь в вирусах. (Такие вещи лучше новичку не давать, решил я).
Начинающий компьютерщик бросает диск, с глазами, полными отчаяния, смотрит на свои руки и трагически произносит:
— Что же мне теперь делать!
Друга успокоил, вручив свежих игр и посоветовав хорошо помыть руки.
838
Однажды я проходил собеседование на должность программиста. HR-менеджер в числе прочего спросила: «Как вы начали программировать?» Никогда об этом не задумывался, но всё-таки вспомнил.
В самом начале девяностых я учился классе в пятом и захотел себе компьютер для игрушек. Жили мы в то время небогато, родители такую покупку бы не потянули — на компьютер копил я сам, долго и упорно подрабатывая по мелочи.
Наконец красавец-компьютер был куплен. 48 Кбайт ОЗУ и процессор Z80 — это был всем известный ZX Spectrum. Подразумевалось, что дисплеем должен служить телевизор, а в качестве внешнего накопителя использоваться кассетный магнитофон. Вооружившись паяльником, к телевизору я «спектрум» подключил , а вот с магнитофоном повезло меньше — его не было. Свовсем.
Все игры были записаны на кассеты — загрузить их было нельзя, а играть-то хотелось. Пришлось писать игрушки самому — совсем простенькие, зато свои!
Каникулы теперь у меня выглядели следующим образом: полдня пишу игру, полдня играю, а вечером мама, вернувшись с работы, вырубает машину и тем самым уничтожает все труды. Следующим утром цикл повторялся.
Если же я не успевал дописать игру или результат выходил уж очень интересным, листинг «сохранялся» на бумагу при помощи ручки и с утра набирался заново. Частенько я замечал, что процесс написания стал интереснее самих игр!