Работаю в одной госконторе в центральном офисе. В мои обязанности входит проверка XML-файлов, присылаемых филиалами, для последующей отправки дальше по «пищевой цепочке». Особенность проверки заключается в том, что эти файлы приходится отсматривать вручную — открывать, проглядвыать содержимое и при необходимости править. Для учёта файлов программисты написали утилитку.
Каждый месяц мы сдаём отчёт о проделанной работе, чтобы получить в итоге свои кровные. С появлением программы учёта мы решили, что со встроенной статистикой составлять отчёты будет проще — ан нет! То ли кодеры поленились, то ли программа подглючивала — у пользователей статистика не работает. Иду к ведущему программисту: «Женя, открой базу данных и дай мне количество файлов, проверенных за месяц». Он кивает и приступает.
Разговорился с админами. Краем уха слышу, как Жека что-то бубнит под нос. Наверное, думаю, мантры программерские читает. Поворачиваюсь и вижу, что это чудо, отсортировав строки по датам, с помощью стрелки «вниз» пересчитывает строки вручную. Долго смеялись, но он их всё-таки пересчитал — когда статистику в итоге починили, количество сошлось.
Как-то раз, будучи в командировке, на территории заказчика отлаживал я работу одной несложной программки. Где-то глубоко в ней скрылся очень неприятный баг. Времени на отладку было немного, бегал я целыми днями в мыле.
Ситуацию ухудшал неприятный тип — начальник отдела, в котором я и устанавливал эту прогу. Умом был не силён, мышкой еле шевелил, да и вообще не очень понимал, для чего ему сдалась эта программа, однако под давлением сверху всё время капал мне на мозги фразой «когда будет готово?»
В один день моя расшатанная дебаггингом нервная система не выдержала — в ответ начальнику отдела была выдана фраза, после которой он долго боялся меня о чём-либо спрашивать:
— В данный момент прикладное программное обеспечение для сбора информации через коммутируемый канал оператора телефонной связи находится на стадии отладки программного кода, вследствие чего работоспособность его ограничена и полноценное функционирование не может быть обеспечено. В данный момент нашими специалистами ведётся работа по нахождению несоответствия в работе программного кода — как только данная проблема будет решена, я обязательно поставлю Вас в известность.
Решил тут ради эксперимента сделать из своей машины «хакинтош» — благо, болванка с какой-то сборкой Леопарда уже давно валялась. Естественно, что Mac OS на чужом железе сразу работать не возжелала и периодически «радовала» меня kernel panic. Получилось, что переустанавливать всю систему приходилось много раз.
В один прекрасный момент, уже в который раз собираясь на автомате щёлкнуть кнопку «Принимаю» на экране лицензионного соглашения, периферийным зрением в углу окна я заметил слово, которого там явно не должно быть. Начинаю читать с самого начала и понимаю, что вместо стандартного «бла-бла-бла» заботливые пираты написали весьма подробную инструкцию по установке.
Было это в далёком девяносто восьмом. Компьютеры ещё были чем-то загадочным, и те, кто хоть как-то в них разбирался, своим сленгом внушали простому обывателю уважение и страх перед неизведанным.
Приходит ко мне как-то друг — компьютер купили, а играть-то не во что. Перебирает диски на моей полке и доходит до какого-то «набора юного хакера».
— А что это? — Этот... весь в вирусах. (Такие вещи лучше новичку не давать, решил я).
Начинающий компьютерщик бросает диск, с глазами, полными отчаяния, смотрит на свои руки и трагически произносит:
— Что же мне теперь делать!
Друга успокоил, вручив свежих игр и посоветовав хорошо помыть руки.
Однажды я проходил собеседование на должность программиста. HR-менеджер в числе прочего спросила: «Как вы начали программировать?» Никогда об этом не задумывался, но всё-таки вспомнил.
В самом начале девяностых я учился классе в пятом и захотел себе компьютер для игрушек. Жили мы в то время небогато, родители такую покупку бы не потянули — на компьютер копил я сам, долго и упорно подрабатывая по мелочи.
Наконец красавец-компьютер был куплен. 48 Кбайт ОЗУ и процессор Z80 — это был всем известный ZX Spectrum. Подразумевалось, что дисплеем должен служить телевизор, а в качестве внешнего накопителя использоваться кассетный магнитофон. Вооружившись паяльником, к телевизору я «спектрум» подключил , а вот с магнитофоном повезло меньше — его не было. Свовсем.
Все игры были записаны на кассеты — загрузить их было нельзя, а играть-то хотелось. Пришлось писать игрушки самому — совсем простенькие, зато свои!
Каникулы теперь у меня выглядели следующим образом: полдня пишу игру, полдня играю, а вечером мама, вернувшись с работы, вырубает машину и тем самым уничтожает все труды. Следующим утром цикл повторялся.
Если же я не успевал дописать игру или результат выходил уж очень интересным, листинг «сохранялся» на бумагу при помощи ручки и с утра набирался заново. Частенько я замечал, что процесс написания стал интереснее самих игр!
Дело было в начале нынешнего тысячелетия. Порнотехнологии с их выпадающими окошками и прочей ерундой развивались гораздо быстрее браузеров, умеющих всю эту «клубничку» блокировать.
В это интересное время я работал в одной полугосударственной компании сисадмином. Стол в моём кабинете стоял так, что от двери монитора видно не было, но, стоило сделать лишь шаг вперёд, взору открывалась вся 19-дюймовая картинка. С интернетом, напротив, повезло — моими стараниями в контору был проведён весьма толстый по тем временам выделенный канал на 256 Кбит/с.
Выпало мне как-то дежурить в выходные (благо, я был молод и не женат). Решил я найти крэк для одной программы. Куда идти? Разумеется, на «Альтависту»!
Я не учёл, того, что эти товарищи уже начали зарабатывать на рекламе порносайтов. На экране открылось окошко с фотографией девушки, которую парень со знанием дела раскладывает на столе в ряд Лорана. Начинаю думать, как бы прибить это окно так, чтобы не породить десятка новых подобного содержания — в конце концов, в кабинет могут зайти сотрудники и посетители.
В этот самый момент на пороге возникает сам директор — крепкий сибирский мужик.
— Работаешь? — Работаю! — отвечаю я, щёлкая по крестику.
Мои худшие предположения оправдываются. Экран со скоростью 256 Кбит/с заполняется кучей картинок явно «голубого» содержания. Шеф делает роковой шаг вперёд.
Я готов провалиться сквозь пол: доказать, что я не верблюд, просто невозможно, а городок у нас маленький. Начинаю обдумывать, сколько мне понадобится времени, чтобы слинять, пока моя ориентация не станет достоянием общественности.
— Ну, работай! — вдруг улыбается шеф и выходит из кабинета.
За всё время эту ситуацию мы с директором ни разу не затрагивали в разговоре, да и в конторе ко мне хуже относиться не стали. Только когда я пришел просить неделю свадебного отпуска, шеф заметно повеселел и подписал аж две недели.
Мораль: пользуйтесь лицензионными программами, чтобы не прослыть педерастом!
В школьные годы, помню, проводили у нас олимпиаду по программированию. Меня, как самого продвинутого, послали на нее. В то время о VB и Delphi никто и не знал почти, поэтому программирвали на Паскале и QBasic'е. Задачи все были сложные, и очень небольшой процент людей смог сделать хоть что-то... Но я смог. Одну задачу.
Суть ее состояла в том, чтобы загрузить из текстового файла матрицу — модель лабиринта, в которой цифрами обозначались стены, пустые пространства и начальная позиция, и выяснить, есть ли из него выход. Предполагалось, что программа должна виртуально "пройти" этот лабиринт, возвращаться из тупиков и следить за тем, чтобы не войти в цикл. Я же сделал проще — нарисовал этот лабиринт на экране, в начальной позиции сделал операцию заливки, а вне границ рисунка — операцию считывания цвета с экрана. Если лабиринт замкнут, заливка не выходила за его пределы, если же выход имелся, заливка распостранялась на весь экран и оператор считывания цвета возвращал значение ее цвета.
До сих пор помню смех моего учителя, который рассказывал про офигевшие лица организаторов, открывших посмотреть текст программы и увидевших 10 банальных строк кода. За одну лишь эту задачу присудили 6 место.Вот оно — нетрадиционное мышление.
Сидел я за проектом, заработался до глубокой ночи (приблизительно, до трех). Сохраняю исходники, начинаю отлаживать, а прога берет и вылетает с критической ошибкой. Я, ударяясь в панику, начинаю перелопачивать код в поисках огреха, но напрасно. Немного помучившись, я случайно глянул на часы и решил, что утро ночи мудренее.
Утром, продрав глаза, я снова первым делом окинул взглядом проект и решил во что бы то ни стало определить, где же возникала ошибка. Запускаю... и все нормально. И так, и сяк — все прекрасно работает! Начинаю думать, уж не приснилось ли мне.
Ответ оказался прост. Дело было в последнее воскресенье октября. И надо же было попасть именно в три ночи. Программа, "созданная" через час после того, как ее запускают, работать не хотела...
Стажировалась я в одной фирме в должности айтишницы широкого профиля. На эту же самую вакансию устраивалась по очень большому блату некая дева, в компьютерах — ни в зуб ногой.
Попросил меня шеф обучить её минимальным навыкам. Поскольку работы было невпроворот, я решила поделиться с девицей обязанностями и отправила к компу набрать одностраничный документ. Слышу, принтер шуршит — молодец, думаю, справилась. Ан нет! Десять, пятнадцать минут прошло — девушка (надо сказать, очень старательная и ответственная) всё ещё стучит по клавиатуре.
Подхожу и интересуюсь, нужна ли помощь. Рядом лежал образец документа — выключка по ширине, 14 кегль, полуторный интервал. Девица каждый раз набирала документ с вордовским форматированием по умолчанию, распечатывала и любовалась плодами труда. Обнаружив несоответствие, барышня качала головой, всё стирала и набирала заново.