164

Средство от комаров.

Некогда работал я в IT-службе одной сети супермаркетов. В один прекрасный день в одном из магазинов начал сбоить сервер. Удаленно ничего решить не получилось, поехал на точку. Открыл корпус - и тихо выпал в осадок. Корпус наполовину забит дохлыми комарами. Реально наполовину. Столько дохлого комарья я не видел ни до ни после. Сразу стала ясна причина проблем - перегревался, бедняга. Пропылесосил его, поднял - заработал как миленький.

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

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

Жалею, что не обзавелся таким сервером - летом лучше любого фумитокса.

163

Позвони мне, позвони!..

Ставил при помощи аутсорсеров на работе охранную систему.

Десяток вибродатчиков на потолке, шлейфы сходятся в control unit на UPS в серверной. В ящике этого контрольного юнита обычный дешевый мобильник Nokia, который при срабатывании датчика и при проблемах с питанием звонит по телефонам, занесенным в адресную книгу. В адресной книге только мой мобильный телефон. Прибор изредка мне звонил, в основном сообщал о проблемах с электропитанием по вечерам в бизнес-центре, где постоянно шел ремонт. Вскоре необходимость в этой системе отпала и я про нее банально забыл.

Однажды вечером я по какой-то причине отключил свой мобильный, затем в час ночи вспомнил о нем и включил. Надо сказать что у МТС есть такая милая услуга, как уведомление по СМС о пропущенных звонках. "Я, номер такой-то, звонил вам 2 раза, последний раз в 21:35 01.01.2008".

В общем, включаю я мобильный и через минуту получаю подобную СМС, вот только текст там немного другой. "Я вам звонил 3265 раз, последний раз...минуту назад".

Несколько секунд гляжу квадратными глазами на номер, пытаясь вспомнить кто это и где я его мог видеть, тут раздается звонок и в трубке "приятный женский голос"....

Кто же знал, что в тот вечер в бизнес-центре снова отключат электропитание?

162

Птица мира

Работал как-то кабельщиком у одного провайдера, таскал витую пару от свитча к клиентскому компьютеру.

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

Не находим. В лифтовом помещении (очень часто ставим ящики именно там) - нету, на чердаке, будь он во веки проклят, вроде как нету. Куда девался ящик? Кругом темень, пылища и сталагмиты голубиного гуано. И вот обращаю внимание на то, что один из сталагмитов имеет какую-то смутно-угловатую форму.

Ну, вы поняли.

Голубь - птица мира, замаскировала ящик.

161

Не кричи!

Ремонт в офисе.

На стене висит свитч, подключен к бесперебойнику. Равшанам было приказано "вот это" накрыть пленкой и не трогать. "А если нам розетка нужна?". Хорошо, выдернули, включили свое, просверлили-отпилили-перемешали, вернули обратно. Делать быстро, пару минут, не больше, поняли?

Поняли.

Полдня все было хорошо.

Звонок: "у нас все из базы вылетели". Сразу же еще один: "у нас почта не работает". И еще один. И еще. В общем, все по топологии сходится на этой комнате. Заходим - бесперебойник в розетке, но выключен. "А мы его из розетки выдернули, а он знаешь как противно пищит! Ну мы кнопку нашли и выключили. Чего кричишь, мы же его обратно воткнули..."

160

Вертолет, как средство удаленного администрирования

Работал с одним банком, %bankname%, большим и известным.

У них есть какое-то отделение, не то в дальней сибири, не то вообще за полярным кругом.

Обновление специального программного обеспечение идёт по RAdmin'у из крупного города %bigcityname%, на 16ти цветах и прочей экономии ресурса скорости, ибо далеко.

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

В общем-то девочка, накатывавшая по бумажке апдейт, сделала всё правильно, за исключением одного маленького момента. Она решила, что покуда она все дела закончила, машину можно выключить, и вместо log off сделала shut down.

Включать через RAdmin сервер, находящийся в центре очередной снежной бури в восьми сотнях километров, оказалось сложно.

159

Хорьки в телефоне

Внедряем у себя ip-телефонию.

Asterisk.

Читаем список звуковых файлов, использующихся в голосовом меню.

1 - agent-alreadyon.gsm - That agent is already logged on. Please enter your agent number followed by the pound key. - Этот оператор уже зарегистрирован. Пожалуйста, введите ваш номер оператора и нажмите на клавишу "решетка".

2 - agent-incorrect.gsm - Login incorrect. Please enter your agent number followed by the pound key. Неверное имя пользователя. - Пожалуйста, введите ваш номер оператора и нажмите на клавишу "решетка".

3 - agent-loggedoff.gsm - Agent Logged off. - Оператор разрегистрирован.

И так двести сорок девять файлов.

А потом мы умерли.

250 - tt-monkeys.gsm - [sound of monkeys screaming] [звуки орущих обезьян]

251 - tt-monkeysintro.gsm - They have been carried away by monkeys - Их унесли обезьяны.

252 - tt-somethingwrong.gsm - Something is terribly wrong - Что-то сильно не так.

253 - tt-weasels.gsm - Weasels have eaten our phone system - Хорьки сожрали нашу телефонную систему.

Пытаемся понять, в какой ситуации нам должны это сказать...

158

Высокие технологии

Лет 6-7 назад, будучи еще студентом первого курса, подрабатывал я летом совсем не по специальности - кровельщиком.

И, помнится, в тот волнительный день, когда я пришел на работу в первый раз, бригадир (колоритная, надо сказать, личность: маленький, сухонький, суетливый, двух слов без "етить" не мог связать), подзывает меня к себе и спрашивает, на кого, мол, студент, учишься?

Я, не вдаваясь в подробности определений информационных систем и САПРа, коротко отвечаю, что на компьютерщика.

Бригадир: Компьютерщик, етить? Отлично! Иди, етить, сюда. Вот это, етить, бетономешалка. Вот это, етить, кнопка "ВКЛ", вот это "ВЫКЛ". Будешь нажимать! По специальности работать будешь, етить!

Добро пожаловать в мир высоких технологий.

157

Распознавание образов

Велик и могуч Русский Язык!

А все началось с простой задачи: принять на входе строку, введенную пользователем, и найти информацию в БД по ключевым словам.

Будь это какой-нибудь английский - задача решается в два счета.

Но ведь у нас как всегда все иначе, у нас есть падежи, склонения, спряжения, окончания, рода, а поэтому простое слово "трансклюкатор" может иметь множество форм, включая "трансклюкаторное оборудование".

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

Надоело. Написал скрипт, который анализирует слово, сам подбирает подходящие варианты на выбор - остается только выбрать из нескольких.

Стало легче, но все равно работы много.

Подумалось: а откуда Я знаю, как правильно? Видел-читал-запомнил, так?

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

Осталось только слов побольше туда набить. Посадил ЭТО на сервер, читать книги из библиотеки Мошкова. Пусть набирается ума-разума.

Чувствую, следующим шагом научу его пользоваться Гуглом...

156

Порождение изначального хаоса

Занимался я пару лет назад поддержкой одной CMS, написанной на PHP в течении лет 4-5 несколькими сменявшими один другого программистами.

CMS платная, исходники сначала никому не давали. А потом в один прекрасный момент гендиректор почему-то стал относиться к раздаче исходников совершенно спокойно. "С энкодером проблемы? Высылай как есть, ничего страшного". На мой вопрос о том, что случилось, ответом было имя одного файла и предложение заглянуть.

Посмотрел. Файл по сути является ядром CMS - принимает данные от пользователя из админской части, хитро распихивает их по куче XML-файлов и просто текстовых файлов, что-то кладет в реляционную базу, предварительно проверив права доступа и так далее. Взгляд останавливается на 4х строках:

// TODO: фигня какая-то написана

$respondent = $respondent;

global $preLoadExternals;

$preLoadExternals = .....;

Комментарий имеет логический смысл. Первая строка - чтоб точно запомнил, да. Вторая - оно и так исполнялось только в global scope. Третья - строка длиной в пару килобайт с несколькими закрывающимися скобками в конце, после чего $preLoadExternals далее в скрипте нигде не используется.

И такой фигни на три тысячи строк

Да, действительно. Стоит ли бояться, что исходники попадут в чужие руки, если сами разобраться не можем.

155

Призрак клавиатуры

Была у шефа беспроводная клавиатура, да кончилась вся - много кофе и колы на неё пролито было, пару дорожек и разъело.

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

А шефу поставили другую, тоже, в общем, красивую, чорную.

Но на следующий день началось странное - клавиатура начала беспрерывно генерировать букву "r".

Ни в систему не войти, ничего.

Ну ладно, бывает. Воткнули другую.

И что бы вы думали - она тоже генерирует букву "r".

Воткнули третью. То же самое.

Что за дела ?

И с USB, и с PS/2-клавиатурами - одно и тоже.

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