Bash.org.ru IT - Bash.org.ru IT Happens Истории ## 1 – 800
На тестовый прогон подсунули программе некую базу реальной конторы. И все вроде бы считалось хорошо, но внимательные тестеры обнаружили некоего гражда нина, у которого суммарное рабочее время было отрицательным. Мы, конечно, стали искать ошибку в подсчете. Ошибок в нем не было, все стройно и логично, время ухода минус время прихода, или начала рабочего дня, если пришел раньше чем надо. А сумма отрицательная, хоть ты тресни!
Оказалось, что этот зловредный дядя приходил за два часа до начала рабочего дня, а уходил... за час до его начала. А мне, как нормальному разработчику, который прекрасно понимает людей, способных смыться из конторы за час до конца дня или наоборот проторчать до полуночи, даже в голову не приходило, что най дется деятель, способный уйти раньше, чем остальные на работу приходят. Программа честно вычитала из времени ухода время начала дня, получала примерно минус час и впихивала это в результат.
Я крякнул и спросил, как мне реагировать на такое самоуправство. Начальство почесало репу и выдало: ну раз уж он такой умный, что явился невовремя, хотя ограничение на день стоит – значит вообще эту явку не учитывай. Так я и сделал, но с тех пор при разработке программ стараюсь учесть не только все возможные комбинации ситуаций, но и все невозможные и ряд невероятных.
#369: Ничего не изменилось
16 декабря 2008, 20:30. рейтинг: 2642
У нас политика – мы не знаем пароли юзеров. Звонит как-то девушка:
Девушка:У меня почта не приходит в thunderbird..
Я:Сейчас сменю тебе пароль и зайду на webmail посмотрю, что тебе там пришло.
Меняю пароль на 123, захожу на вебмыло, вижу что почты новой нет, отправляю от себя письмо юзеру, на webmail приходит без проблем.
Я:Принимай у себя почту в thunderbird (забываю сказать, что нужно указать новый пароль).
Девушка:О, от тебя пришло письмо.
Я:Как это, пришло письмо?
Девушка:Ну, ты же мне отправил письмо, вот оно пришло, тема – "тест 1".
Я:Я тебе сменил пароль, ты не могла получить почту, не указав новый пароль: 123.
Девушка:Так у меня и был 123...
#370: Все, починил!
17 декабря 2008, 09:00. рейтинг: 2711
Утро, ресторан быстрого обслуживания, наш главный клиент. Я приехал обнов лять ПО на кассах до новой версии.
Апдейт и патч прошли на ура, вроде все нормально и тут – горе мне луковое – не открываются денежные ящики, только ключом. Я в тихом ужасе – к десяти утра у кассиров очереди по десять человек, а тут такой сюрприз. Отзвонился разработ чику, оказалось – не предусмотрели хитровыщипанность сочетания торгового оборудо вания от разных производителей. Сижу, жду новостей из тыла, деликатно выясняю у главного менеджера ресторана и регионального менеджера – что им больше нравится, когда открывается ящик или когда работает дисплей покупателя.
В менеджерскую зачем-то заглядывает девушка-кассир и, попутно, сообщает, что она встала на кассу, а там не открывается денежный ящик.
– Да, мы уже в курсе – отвечаю я – все денежные ящики пока не работают, отк рываются только ключом!
– Да? Хм, странно, на моей старой кассе все работало!
Я в замешательстве выхожу в зал и обнаруживаю, что на одной из касс ящик действительно работает адекватно. Пару секунд ступора и до меня доходит – сис тему не включили во время обновления, клиентские бинарники не обновились.
Закрываю систему и захожу в неё заново – билд сменился, ящик не открыва ется.. Я успокоился и, с чувством выполненного долга, сообщаю кассиру:
– Все в порядке, я починил вашу кассу – (давно не видел такой кратковре менной улыбки!) – теперь на ней ящик также не работает, как и на остальных!
#371: Бригада вредителей
17 декабря 2008, 09:00. рейтинг: 2380
Процесс переезда в новый административный корпус очень затянулся.
Строительство и все дела. Мы, что характерно, тянули там сетку. Вернее, тянули монтеры, а меня, как самого сильного админа, прикрепил к ним для уско рения процесса. Все в лучших народных традициях – сроки горят, зад в мыле, и тут нас просят докинуть еще десяток внеплановых кабелей на первом этаже. Нужно про бивать еще одно отверстие в несущей стене или рассверливать старое.
Сверлить нужно под подвесным потолком, да еще пробить дырку так, чтобы не врезаться в гипсокартонный потолок на лестничной площадке. Я примеряюсь по уже имеющемуся отверстию электриков и пробиваю отверстие. Затем обращаю внимание ,что пробил какой-то странный кабель. Приглядевшись, понимаю, что это наше опто волокно.
Оказывается, сеть здесь тянулась в два этапа. В первый этап, еще до меня, здесь сделали кабелеводы в стенах и кинули оптоволокно. Добрые строители оптово локно заштукатурили, а часть кабелеводов задули монтажной пеной.
Внезапно я понимаю, что попал на бабки. Большие бабки. Присматриваюсь к кабелеводу электриков. Выдыхаю, понимаю, что на бабки попали все таки они – кабель пробит изначально ними.
Но потом оказалось, что и электриков пронесло.
При извлечении перебитого оптоволокна из-под штукатурки, выяснилось, что кабель в нескольких местах был тупо пробит гвоздями. Видать, оборвали кабель в процессе ремонта и решили прикрепить его на место.
Проматюкавшись, на следующий день скооперировались со связистами и начали перетягивать оптику. Строители отличились и тут. Входной кабелевод в здание ока зался залит раствором. Причем свежим – заливали явно утром, причем зная, что мы будем тянуть линию в здание.
Виновных так и не нашли.
А вы говорите – бухгалтерия, электрики...
#372: Все сожрал вирус!
17 декабря 2008, 11:00. рейтинг: 1215
Когда я служил в части, у нас на объекте стоял компьютер. И было на нем много секретной информации. Возиться с засекречиванием/опечатыванием компьютера никому заниматься не хотелось, информация была нужна по ходу работы, а во время проверок его просто прятали. А проверки компьютеров военных на предмет содер жания гос тайны – вещь довольно таки серьёзная.
И вот как-то приехала очередная проверка, начальника нету, я один. Заходит проверяющий – видит комп, находит на нем массу секретных документов. Отключает системник и отдает его прибывшим с ним солдатам отнести его в штаб части. А сам уходит дальше по объектам. Как только он ушел, я звоню начальнику – он приезжает по-быстрому, находит солдат, подключает системник к монитору в финчасти и быст ренько удаляет все материалы. А на все вопросы проверяющего потом приходилось разводить руками и намекать про какой-то таинственный вирус..
#373: Монитор сохранению не подлежит!
17 декабря 2008, 11:00. рейтинг: 1677
Устроился как-то на работу администратором учетной системы.
Так уж повелось там, что эта должность никак не относилась к IT-департаменту – был я обычным пользователем, пусть и со слегка расширенными правами.
Принесли мне машину, ИБП, все как положено. Только вот подключили все напря мую. Пошел просить кабели ПАПА-МАМА, чтоб подключить через ИБП. Дали один.
– А второй?
– Зачем?
– Для монитора!
– (Смеясь) И что ты там будешь сохранять?
Так и не понял – то ли шутили, то ли нет. Нет, ведь в мониторе и в самом деле сохранять ничего не надо, ага...
#374: А делать-то нам нечего!
17 декабря 2008, 11:00. рейтинг: 1255
Наверняка вы знаете, что часто причиной тормозов некоторых коммерческих программ являются закладки в коде типа:
for(i = 0; i < 100000000; i++);
на самых часто используемых операциях: отрисовка окна, реакция на событие и т.д. Но иногда бывают случаи, когда подобная закладка несет полезную нагрузку.
Итак, нужно было сделать курсовую, иллюстрирующую, как несколько потоков разделяют общей ресурс – очередь. Одновременно потоки добавляют в очередь дан ные, а затем считывают из нее то, что добавили. Реализовал на C в Knoppix с использование pthread. Но веселье началось, когда я понял, судя по выводу проги, что потоки выполняются не одновременно, а поочередно.
Два дня и две ночи разбирался в чем дело. Поставил вывод промежуточных результатов после каждого добавления в очередь. Смотрю в логи – работают потоки одновременно, в очередь кидают как надо данные – все в порядке. К слову, сема форы у меня стояли правильно и никаких потерей указателя на очередь не было. Вырубаю ведение логов – потоки упрямо идут друг за дружкой.
После 5-часовой медитации и курения исходников до меня дошло – ведение логов и заставляло прогу работать правильно! При операциях ввода-вывода между добавле нием данных в очередь теряется часть времени достаточная, чтобы хоть немного потоки поработали вместе.
После добавления аналога: for(i = 0; i < 100000000; i++) в поток, я заплакал над убитыми впустую выходными...
#375: Смерть звездочета
17 декабря 2008, 11:00. рейтинг: 3671
В одной конторе прикручивали мы к астрономической программе плагин для управления домашним телескопом. Прикрутили и поставили следить за какой-то звез дочкой. А дело было в пятницу. За выходные телескоп честно сделал два оборота вокруг оси, обмотал силовой кабель вокруг треноги, тренога сложилась, телескоп грохнутся и выдернул шнур питания из сети.