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

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

4313

Десятый лишний

Три года назад я работал в команде PHP-программистов, создававших практически с нуля движок для одного крупного и достаточно известного в рунете интернет-магазина: каталог, разбитый на множество страниц для удобства отображения. В пылу дебага в одном месте глобальная константа ITEMS_PER_PAGE была почему-то вбита числом. В пылу клюнувшего в пятую точку жареного дедлайна на стадии финальной отладки пропустили не только это число, но и комментарий из разряда:

// Внимание! Заменить на глобальную переменную перед внедрением!!!

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

Сайт пережил один редизайн и две доработки движка. Команда разработчиков почти полностью сменилась. Ошибку обнаружили только в августе этого года маркетологи, которые начали выяснять, почему некоторые товары из рук вон плохо продаются.

4308

Подстановка подстановки

Решил повесить в автозагрузку скрипт, чтобы монтировать рабочий каталог на диск P:. Я так часто делаю, чтобы рабочие файлы можно было таскать по компьютерам с сохранением вписанных в конфиги пути. Дело простое — пишу subst.cmd с простым содержимым:

subst P: C:\WorkRoot

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

Надо меньше работать. Или хотя бы давать нормальные имена скриптам.

4282

Винты не бить

Проходил как-то практику в местной домостроительной конторе, сидел в IT-отделе за компом и почитывал Баш. Пришёл к нам как-то ещё один практикант из лучшего вуза региона (сам я, к слову, учился тогда в ссузе). На местном сленге «пни комп» означало «включи его». С выражением я был знаком ещё до практики, а вот новенький слышал фразу впервые и незамедлительно исполнил её без всяких вопросов. От его нехилого пинка на новеньком системнике появилась неплохая вмятина. С тех пор, кроме замены картриджей, больше практиканту ничего не поручали. Отличных специалистов готовят высшие учебные заведения!

4272

Через пень-колоду

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

Собрал, подключил — нет сигнала на монитор. @#$, хана видяхе! Придётся сидеть до лучших времен на интегрированной. Переключаю моник на неё — нет сигнала...

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

Мораль проста: сколько бы опыта ни было за плечами, а от случайностей никто не застрахован.

4265

Иди проспись

Просыпаюсь от звонка начальника. Еле-еле понимаю его речь о неработающем сервере и заодно пытаюсь вспомнить, что было вчера. А что было вчера?.. Ничего не помню. Смотрю на календарь — суббота! Значит, вчера была пятница. Начальник уже матюгается в трубку и требует работающего сервера сейчас. Открываю консоль.

$ ssh root@srv1.*****.net

«Connection refused», — отвечает сервер. Получается, он обесточен?

За семь минут доезжаю до работы. Сломя голову, бегу в серверную и вижу там... да, выключенный сервер.

— Александр ***ич (так зовут начальника), вчера после меня кто-нибудь заходил в эту комнату?

— Нет, никто.

Поднимаю сервак, смотрю историю команд... Кто-то (как выяснилось, я с домашнего компьютера) зашёл по SSH и тщетно пытался перезагрузить сервер:

# rebiet

# rebiit

# rebott

# reoooot ,kzlm!

# куищще бл#дь!

Последняя команда убила наповал. Это же как напиться надо было, чтобы додуматься до такого:

# poweroff; sleep 5; poweron &

4246

Не совсем завтра

Работаю в банке на поддержке АБС. Звонит операционист: «Набираю дату рождения, и программа не даёт ничего сделать: не пропускает дальше, не делает отмену операции, тупо не выходит из поля ввода даты».

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

4243

Исключив случайный фактор

Если уж все пошли вспоминать своих институтских преподов, то вспомню и я. Первый же день моей учёбы в универе был омрачён парой по информатике (или как её там), где женщина солидного возраста объясняла поточной аудитории, что в течении двух семестров мы будем изучать с ней язык программирования Turbo (тут она сверилась с бумажкой) Basic. Тут мой здравый смысл ушёл на покой, разбудив во мне подросткового быдлокодера, который выучил C++ по книжке и ещё в школе писал всем зачётные-выпускные по информатике — двумерные аркады с подробными комментариями, которые потом были дисквалифицированы за единый стиль. «Бейсик — не язык, а обучающая программа. Для высшего образования это слишком слабо! Да он проходится за неделю! Он не соответствует современным концепциям!»

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

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

— Встретимся на экзамене, — тихо ответила женщина.

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

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

— Садись за компьютер, набирай программу. Если заработает — «отлично». У тебя полчаса.

— Мне хватит пяти минут.

Методом десятипальцевого слепого копипаста я набрал код и запихнул его в менюшку: все задания в одной проге. Всё оформил, проверяю. С примером из задания — ОК. С «введите вручную» — ОК. С значениями из генератора случайных чисел, в том числе знакопеременными — неправильный результат! Я покрываюсь холодным потом: время заканчивается... Убираю из менюшки вариант со случайными числами.

— Всё готово. Проверяйте.

— Результаты сошлись?

— М-м-м... Да!

— Ну, не мне вас проверять. Пять.

Ошибку я нашёл позже. На потоке пятёрки получили всего несколько человек: я и моя «группа».

* * *

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

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

4239

Жара, местами заморозки

В этом году в Черноземье стояла дикая жара: нормальной температурой считались +40 ˚C. В серверной, забитой оборудованием, было бы ещё жарче, если бы не промышленные кондиционеры. Но и они в конце концов сдались. Главный «Дед Мороз» переставал запускаться, если за бортом было теплее +30, что объяснялось наличием защитной бипластины. Приходилось выключать на ночь.

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

Так и сделали. Кондиционер охлаждается, мы стоим внизу ждём. Тут одна из бутылок падает с четвёртого этажа и разбивается с характерным ледяным хрустом. Налицо потенциальная производственная травма! Стали ржать по поводу возможной формулировки: «В разгар жары прибило сосулькой».

4238

ПТУшная логика

Сейчас я программлю на 1С, но во времена студенчества работал на Delphi и C++. Денег у студента нету, зато есть куча людей, у которых они есть, и они готовы ими делиться ради написанных программ. Брался я с охотой, делал максимально хорошо. Проблем с заданиями не возникало, тем более если они были толково составлены преподом.

В пору сессий «подфартило» мне взяться за задачи каких то ПТУшников. Профит ожидался небольшой, но студенту три задачи по 40 рублей, помноженные на 40 человек в группе ПТУ, могли только сниться. Естественно, меры предосторожности я принял, сперва взявшись за задачи лишь одного человека. Полчаса — и две готовы, а взглянув на третью, я понял, что задания надо читать сразу. Не буду приводить точный текст, но требовалось написать программу, которая парсит и вычисляет логические выражения.

Была убита неделя. За другие задачи я даже браться не хотел после этого. Добило то, что человек платить отказался: программа «не работала», то бишь он не смог объяснить преподавателю, что происходило на экране.

Прошло много времени, но калымить желания так и не появилось. Лёгких денег не бывает.

4226

Цейтнот и цугцванг

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

Комп верой и правдой служил до момента, пока в кабинете не случился пожар. Верного друга залили водой. Обесточить-то, конечно, обесточили, но UPS на 2600 ВА выдержал. После реанимационных действий и шаманских танцев с бубном машина ожила и с незначительными глюками продолжила работать. Но вот настал страшный день «П»: комп мигнул синим экраном и отказался заводиться. Два дня, прошедшие в попытках оживить боевого друга, лишь подтвердили первоначальный диагноз: сдохла мать.

Прихожу к начальству и сообщаю: так, мол, и так, умер комп.

— Пиши служебку. Опиши причины, обоснуй замену.

— Так и писать: «Ввиду того, что мой домашний компьютер вышел из строя, прошу приобрести мне новый?»

— ...

— Не вопрос! Сейчас напишу, только как вы её подпишете?

— А как мне объяснить, что у тебя на рабочем месте стоял компьютер, не числившийся на предприятии, и ты на нём нормально работал?

В общем, полный цейтнот и цугцванг. Крайний срок сдачи программы через полторы недели.