Выбрать главу

Работал я по сути в отделе технического сопровождения, но отдел занимался помимо чистого сопровождения еще и дополнительными работами: прокладкой сети, установкой ПО и прочим в этом же духе.

Приходит заявка – в учреждении не открывается программа. Звонок ничего не дал. Никто ничего не знает, приезжайте и смотрите.

Приезжаю.

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

Никто ничего не знает.

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

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

Понял.

В серверной тихо.

Смотрю на серверный шкаф, а он обесточен вместе со свитчами. Все провода отключены и шкаф заперт.

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

#76: Программа, не забудь! – 2

8 ноября 2008, 20:30. рейтинг: 1964

...После чего долго медитирую на фрагмент:

...

a=a;

b=b;

...

Видимо это было напоминание программе, чтобы точно не забыла...

Шутки шутками, а в SharePoint некоторым контролам действительно нужно напоминать их значения, иначе они обнуляются. В результате появляются подобные строчки:

dtc1.SelectedDate = dtc1.SelectedDate; // так надо :(

dtc2.SelectedDate = dtc2.SelectedDate; // не трогать, сломаю руку

dtc3.SelectedDate = dtc3.SelectedDate; // по другому работает некорректно

dtc4.SelectedDate = dtc4.SelectedDate; // обожаю SharePoint

#77: Это было бы слишком просто

8 ноября 2008, 20:30. рейтинг: 425

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

Я: Ты забыл $num передать.

Товарищ: Может мне через fopen все сделать?

Я: Можно, конечно. Но лучше все-таки $num передать.

Товарищ: Ну, можно и так, да...

#78: И незамедлительно отменить

8 ноября 2008, 20:30. рейтинг: 1434

Ловит меня в коридоре женщина и рассказывает, что у нее наша программа работать не хочет. Список не дает выбрать – сразу закрывается.

Подходим, она показывает: мышкой жмет на стрелочку, список действительно разворачивается и тут же сворачивается. После несколько попыток машина начинает пищать.

Я окидываю взглядом рабочее место и обнаруживаю то, что ожидал увидеть – стопку бумаги на клавиатуре, точнехонько на клавише Escape.

#79: Изобретатель велосипедов

9 ноября 2008, 09:00. рейтинг: 665

Позвал меня молодой товарищ – не компилится в Borlanc C++ Builder новый проект со старыми файлами. Модули исправные – только что сам компилировал.

При попытки компиляции в новом проекте даёт ошибку в глубинах wtypes.h, на строку LONGLONG int64;

Долгая медитация вывела на потрясающей по своей глубине строчку, гласящую #define int64 int64. LONGLONG, понятное дело, где-то в wtypes определён. А wtypes совсем не в курсе, что есть на свете извращенцы, которые переопределяют int64, да ещё и таким суровым образом.

В результате сейчас юный гений сидит и мрачно делает автозамену строк вида "([\(\s])(u)?int(\d{1,2}) " –> "$1(unsigned) int$3 ", так как в его творениях мы нашли и int8, и int16, переопределенные таким образом.

А виновник торжества сидит и с наивным видом оправдывается – "ну я ж не знал", "ну это ж было для другого писано", "и ваще, чо вы от меня хотите", "я не знал, что intXX – стандартная конструкция" и так далее. Так что я совсем не удивлюсь, если мы реально обнаружим #define TRUE FALSE где-нибудь в глубинах его кода.

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

#80: Цена бесплатного сыра

9 ноября 2008, 09:00. рейтинг: 1046

Известная компания "%companyname%". Подключаем интернет. Одного-единственного клиента.

Для этого едем на другой конец города, монтируем большой стальной ящик на площадке на высоте примерно 2,5 м (шоб не лазили). Внутри ящика находятся :

1) Маршрутизатор CISCO (примерно 40 тыс. руб.), который ещё и настраивается админом.

2) Оптический модем (тоже примерно 40 тыс. руб.).

3) UPS, достаточно приличный

в квартиру идёт уже обычный ethernet кабель.