Истории с тегом: факапы

Всего историй: 808

2324

Истинный фейл

Кодеры под Новый год порадовали. Есть требования на дизайн некой функции, которые звучат примерно так: «The %function()% shall perform %action% when its %parameter% is true...» Автор документа опечатывается и пишет: «its %parameter% os true». Понятно, буковки „i“ и „о“ рядом. Доблестный вордовый спеллчекер не согласен с вариантом и заменяет на «its %parameter% or true».

Умница. Так лёгким движением электронов по кремнию условие превращается в чёрт знает что, оставаясь при этом вполне понимаемым. Верификаторы — люди непривередливые, на логичность им ругаться запрещено, не их ума дело, кода (якобы) не видят. Пишут пару тест-кейсов на покрытие этого условия, получают фейл и тут уже с чистой совестью открывают issue на requirement/code mismatch — всё по процедуре.

На носу католическое Рождество. Прекрасно понимая, что америкосовый интегратор скоро уйдёт на каникулы, индусский кодер торопится исправить баг, втыкает в требования, втыкает в код, видит там if(param) {}, говорит «угу, непорядок» и приводит код в соответствие с требованиями: if(param || TRUE) {}. Код по требованиям, фейлов нет, придраться не к чему.

2307

Чище мыши

Произошла эта история в середине девяностых. Закончив институт, я устроился на одно из предприятий, нанимавших молодых специалистов без опыта работы. Предприятие было государственным, но под давлением экономического кризиса изо всех сил пыталось встать на рельсы самоокупаемости, в силу чего активно искало источники финансирования на стороне. Лучше всего продавалось всякое прикладное ПО, потому в наш вычислительный центр начальство регулярно водило целые экскурсии «инвесторов» — толстых и важных дяденек в пиджаках и золотых цепях, изредка размещавших на предприятии заказы.

Мне, вчерашнему студенту, достался неплохой, но уже видавший виды Pentium-166 MMX, оборудованный престарелой «шариковой» мышкой. Мышка нормально работать не желала ни в какую, курсор двигался по экрану еле-еле, чем постоянно выводил меня из себя. Наконец, нервы не выдержали — поборов природную лень, я решил разобрать и почистить грызуна. Сняв шайбу-заглушку, я вытащил шарик: он буквально блестел в свете люминесцентных ламп, настолько был испачкан и засален. Отправившись на прилегавшую к ВЦ кухню, я взял с полки первую попавшуюся кружку, налил в нее тёплой воды, щедро плеснул туда стоявшего возле раковины моющего средства, подумав, добавил пригоршню обнаруженного поблизости стирального порошка, и, вернувшись на свое рабочее место, утопил шарик в получившейся адской смеси, принявшись тем временем отскребать слои налипшей на мышиные ролики грязи.

В этот момент дверь распахнулась, и в помещение вошла очередная делегация инвесторов в сопровождении нашего Самого Главного Начальника.

— А вот тут у нас вычислительный центр, — по-хозяйски обвел комнату рукой Начальник, — здесь у нас работают программисты...

Продолжая рассказ о нашем самом передовом в городе и окрестностях вычислительном центре и его вкладе в научно-технический прогресс, Самый Главный Начальник приблизился к моему столу, взял в руку стоявшую рядом с разобранной мышкой кружку, и, прежде чем я успел произнести хоть слово, сделал из нее приличный глоток.

Деньги и очередной заказ мы всё-таки получили: видимо, на инвесторов произвело неизгладимое впечатление зрелище булькающего, пенящегося и обильно пускающего во все стороны мыльные пузыри руководителя вычислительного центра. Меня же этот случай раз и навсегда отучил хватать без спроса чужую посуду.

2296

Я устал, я ухожу

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

Сегодня с одной из шахт, где наши контроллеры стоят, пришло письмо со скриншотом с пульта диспетчера, управляющего запуском и остановом конвейерных лент. На картинке, в частности, указываются причины последнего пуска конвейера и последнего останова, числовые коды ошибок анализируются «скадой», и им сопоставляются текстовые строки.

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

Произошло невозможное — видимо, где-то что-то не учли, и ошибка всё же вылезла. Диспетчер с ошарашенными глазами наблюдал у себя на мониторе следующую причину остановки конвейера:

КОНТРОЛЛЕР УСТАЛ

2290

Рождённый сгореть

Утро. Огорчённый программер принес из дома «недобук» одного из известных брендов, ходит понуро и спрашивает у всех, где бы найти клавиатуру на такое. «Что случилось?» — спрашиваем. — «Да ребёнок залил. Чаем. Нет, не горячим, но сладким».

Два с половиной года в сервисном центре из кого угодно сделают не мальчика, но мужа. «Не печалься, — говорю, — будет жить твоя клавиатура». Отвёртку в руки бойцу, демонстрирую, как отщёлкивать клавиши. Под моим чутким руководством извлекаем плёночку с напылёнными дорожками и контактами, моем, сушим, подключаем, тыкаем пальцами в резинки контактов — идеально.

Ну почти успех. Только после этого боец решил помыть сами пластмассовые кнопочки, чтобы не липли. Помыл и сварил их в комок к чёртовой бабушке, когда сушил под тепловентилятором. Ну что тут сказать? Рождённый сгореть не утонет.

К обеду вышел на свет из кабинета начальник. Окинул взглядом безобразие, подозвал к себе программера и молвил: «Ты это... вот что. Я такой выставочный в %companyname% видел — ты сходи туда тихонько с отвёрточкой, так-то он зафиксирован, но кнопками разживёшься...»

2273

Мы его и так, и сяк

Работаю в небольшом СЦ Донецка. Принесли в ремонт компьютер из крупного, известного в нашем городе сервиса. Технический талон я отксерил себе на память. Цитирую:

Причина неисправности:

Временами зависает.

Выполненные работы:

Стояло два антивируса. (зачёркнуто)

Перепрошивка BIOS. (зачёркнуто)

КЗ в материнской плате — возврат без ремонта.

Посоветовали клиенту подавать в суд — мать сгорела бесповоротно.

2225

Беззубый Проверкин

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

Кое-как подключаюсь по интернету и поднимаю архив базы. На триста тысяч налечился пациент Проверкин Тест Тестович. Оказалось, это новый доктор тренировался управляться с программой. Попробовать надо было все виды услуг — гражданин Проверкин лечил, отбеливал, удалял и протезировал все зубы несколько раз.

2205

Аромат печёных яблок

Работаю я в учебном заведении с компьютерным уклоном, где всегда много детей. Часто сотрудники приводят своих чад, чтобы те поиграли и позанимались на халяву.

Привёл и директор своего сынка. Мальчик был капризный, а папа занятой — всё, что отпрыск хотел, исполнялось. Рисовать — вот тебе фломастеры, играть — вот тебе ноутбук, чтобы всё волшебно было — вот папа свечечку зажёг и ушёл.

Сынок успокоился, сел поудобней и стал демонов по экрану гонять. Через несколько минут стал экран в углу темнеть. Пока мальчик звал папу, угол этот взял и вспыхнул. Оказалось, что подвинул он новенький макбук так, что свечка оказалась сзади, и немножко крышечку отклонил. Вот сидит теперь директор и думает, как оформить акт о списании «сгоревшего на работе» ноутбука.

2197

Перед запуском удалить предохранитель

У меня свой малый бизнес по IT-обслуживанию компаний. Живу в Нью-Йорке, город большой — ездить далеко, поэтому стараюсь часть работы делать удалённо.

Надо было до понедельника поднять сервер на Gentoo для одного проекта. Заехал по пути в офис, который от меня находится в 35 километрах, вставил минимальный установочный диск, настроил сеть, запустил SSH, проверил, что всё работает, и поехал домой.

Вы когда-нибудь настраивали сервер с пониманием, что придёт решающий момент необходимости перезагрузки? Вот я и сидел вчера до четырёх утра: скомпилировал ядро, выставил все use flags, всё настроил, тысячу раз проверил — осталось перезагрузить и заново зайти уже в живую систему. Только бы всё работало!..

Всё еще раз проверяю, пишу reboot и начинаю жёстко материться на всю квартиру — про eject -t /dev/cdrom я совсем забыл! Пришлось ехать в офис и вытаскивать загрузочный диск вручную. Удалённый доступ, блин...

Обходных путей не существует, товарищи.

2195

Не ведает правая, что творит левая

Курсы — это не только место получения знаний, но и обмен опытом, весёлым и не очень.

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

2192

Топология на практических примерах

На заводе варили оптику, а в перерывах сварщик рассказывал истории о прокладке оптических кабелей.

Север, мороз за тридцать, сварка идет в автобусе. Два конца кабеля затащили в салон из подземного колодца, сварили, проверили. Когда стали вытягивать, то выяснилось, что один конец кабеля затащили в переднюю дверь, а другой в заднюю. Резали и варили заново.

В другой раз тяжёлый многожильный кабель вытянули из колодца, упираясь в стоящий рядом столб освещения, и затащили в автобус — памятуя о прошлой неудаче, в одну дверь. Только вот один помощник обошёл столб слева, а другой справа. Правильно — резали и варили заново.

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