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". Исправно играть в призрака она собиралась явно до тех пор, пока не закончилась бы батарейка...

154

Ревность и свитч

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

- Да!

- Надо нас от интернета отключить и договор разорвать!

- Адрес?

Мальчик сообщает адрес. Техник берет инструменты и идет по адресу. Звонит в дверь. Мальчик из-за двери:

- Кто там?

- Интернет отключать пришел!

- А мне родители сказали никого незнакомого не впускать!

- Ладно, не важно, витуха сюда идет. Интернет вы у себя хотели отключить?

- Да, мы.

Техник берет кусачки и перерезает витую пару. В ДВУХ местах. Мало того, что ему потом пришлось тянуть провод по-новой (когда родители вернулись с работы) - он перерезал кабель, по которому в этот момент шли пакеты, поскольку родители оставили включенным мю-торрент. Одно гнездо в свитче сожгло нафиг.

153

Шифровка до Штирлица не дошла

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

Так как офис обычно разворачиваем в аврале, то с каналами связи всегда возникают накладки. Так было и в 2005 году, как временное решение - спутник. Но связь нестабильная. Соответственно почта работает переодически, пока не дотянут оптический канал. Из-за этого постоянные курьёзные случаи возникают.

После того как 12 часов работал только РОР3 на почтовом сервере, а служба поддержки после каждого звонка отвечала: "Проверяйте, всё работает", я написал в рассылку по ИТ холдинга письмо следующего содержания:

"Люди! До кого дошло моё письмо - ответьте, пожалуйста!"

Первые три письма были примерно одинакового содержания:

"Всё нормально, дошло, работает..."

А потом пришло четвертое.

"Здраствуйте. Перечитал два раза. Недошло........"

152

Вы знаете, у нас давно не DOS!

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

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

Он, злобно шипя: Что!? Музыку слушаем? А работать когда будем!?

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

Он, подозрительно: А ну-ка, включи музыку!? Поработай…

151

Красиво жить не запретишь!

Админю в сервисе, по совместительству чиню ноутбуки. Прихожу на работу 5 мая после праздников и замечаю на своём рабочем месте две подозрительно знакомые коробки из %marketname%, которые я вроде бы всего несколько дней назад выдал из ремонта. Разворачиваю квитанцию с первой коробки, читаю: точно, повтор. Дефект - не выезжает трей привода.

А на аппаратах этих привод со слотовой (щелевой) загрузкой.

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

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

Вернул без ремонта.

Проходит неделя. Выхожу на работу после Дня Победы. Замечаю на своём столе две подозрительно знакомые коробки...

Обзавидовался.

150

Аглийцкая языка сложный!

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

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

Приходит. Клиент его, соответственно, опять спрашивает, есть ли у нас браузер для принтера. Босс делает очень задумчивое лицо и спрашивает, что под этой фразой он имеет в виду. "Да вот, у меня тут написано" - говорит покупатель и протягивает клочок бумаги.

На клочке записана модель картриджа для принтера Brother.

149

Новый франкенштейн

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

Извращаться с двойной установкой и тремя разделами, чтобы получить имеющуюся NT, но на старой NTFS неохота. Система стоит - русская, а дистрибутив на руках есть только английский. Поставил английскую систему, накатил 4й сервиспак. Скопировал из нерабочей профиль и реестр поверх новой. Загрузилась, но есть проблемы с русским шрифтом. Скопировал фаром старую систему поверх новой без замены. Загрузилась. С полноценной поддержкой русского. Попытался накатить шестой русский сервиспак - не понравилась версия. А вот английский встал без проблем.

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