970

Язык Кавычек и Треугольных Скобочек

В некоем учебном заведении преподавал я компьютерную графику, в частности, курс HTML/CSS. Дошло дело до экзаменов. Практику сдали, отвечают теорию; желающих нет, объявляю, что оценка на балл выше первому добровольцу.

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

— %Studentname%, хорошо, скажите мне, какой предмет вы сдаёте?

— HTML...

— Вот скажите мне, как название расшифровывается, и получите свою заслуженную тройку.

Должна ж она была как старательная девочка тупо зазубрить конспект... Не тут-то было. Я грустно вздыхаю:

— %Studentname, это очень просто. Вот пусть сейчас нам %Отличникname% ответит.

Гнетущая пауза.

— Не понял. Кто-нибудь может сказать, как расшифровывается аббревиатура HTML?

Вся группа ушла на пересдачу.

969

Замуровали, демоны!

Работаю саппортом в крупной европейской компании, занимающейся розничными и оптовыми продажами. Под серверную обустроена отдельная комната. Всё серьёзно: фальшпол высотой 40 см, кондиционер Liebert Hiross HPM, больше напоминающий здоровый сейф, несколько коммутационных шкафов, серверная стойка, крутой ИБП и остальное в том же духе.

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

Но вот на улице стало сухо, а влажность всё равно доходила до 70%. Ради интереса решил заглянуть под фальшпол.

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

Когда начали разбираться, выяснилось, что дренажную трубку кондиционера, которая выходила сквозь стену на улицу, по незнанию замазали цементом строители при внешней отделке здания. Как долго Liebert Hiross «ходил под себя», неизвестно, но с пола мы собрали литров 15 воды.

968

Конспект в RAID 1

Довелось мне как-то замещать лекцию по информатике. Курс был не мой, поток — тем более. Я с прикладной математики, а меня к инженерам-конструкторам отправили. «Хуже» информатики у них был только русский язык — его инженеры не проходили вовсе.

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

— Как вы собираетесь писать? Вы левша?

— Нет, — мрачно отвечает парень, а потом кивает на сидящих справа от него. — Но у меня есть друзья.

— Они перепишут вам лекцию?

— Нет. Сейчас увидите.

Парень, что сидел слева, был левшой и кистью правой руки придерживал свою тетрадь, а локтем — тетрадь соседа справа. Студент с гипсом локтем левой руки держал... вторую тетрадь того, что сидел в центре; тот же писал двумя руками в двух тетрадях одновременно. Почерк, конечно, был тот ещё, но сам факт!..

Мало того, мне довелось вести у этого потока ещё и практику. Этот уникум и тут не бросил друга в беде, умудряясь набирать текст на двух клавиатурах сразу. Учитывая обстоятельства, я зачёл им одну программу на двоих.

967

Распиливай и властвуй

Я люблю эту страну и наш изобретательный народ. Где ещё можно отыскать столько талантов в области распиливания бабла налогоплательщиков, организации изысканной халтуры и имитации бурной деятельности?!

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

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

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

Пару месяцев всё работало, а потом вдруг перестало. Начались чудеса — дистрибутивы с жутко лицензионным программным обеспечением непонятно где, ключ от ящика там же. Дозвонились до монтажников, выяснили, что все у «обслуживающей организации». Представители же организации сказали, что нас они не обслуживают, поскольку Большое Начальство не заключило договор.

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

Клиентские машины (которые, напомню, просто показывают картинку) оборудованы 250-гигабайтными хардами и гигабитными сетевухами. Витая пара (4 жилы) от них идёт в гигабитный 24-портовый свитч, а всё это дело подключено к обычному стомегабитному сетевому интерфейсу «сервера». Жёсткий диск сервера — 80 ГБ, влезает туда записей дай бог на сутки. Те самые «автономные» источники питания оказались обычными (но очень дорогими) выпрямителями, поскольку установка батарей проектом предусмотрена не была.

Но и это ещё не всё — после нескольких жалоб охранников на периодическое пропадание картинки выяснилось, что доблестные монтажники перед обжимом коннекторов старательно зачищали провода.

966

Брутфорс и здравый смысл

Однажды на нашем ФГУПе слетела программа, обслуживающая электронный замок входной двери с электронными же пропусками.

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

Собственно, принципиальное отличие нового софта было лишь в формате БД. Контроллер в нём не определялся, но сигналы входа/выхода и ID карточки давал исправно. Я решил поправить таблицы вручную, благо, они были в формате Access, но столкнулся с проблемой — база была запаролена.

Тут же скачал несколько ломалок паролей «на попробовать». Как водится, утилиты заявляли: «Пароль я подобрала, купите меня, и я вам его скажу». Естественно, платить 20–30–80 единиц СКВ я никому не собирался, да и не пришлось — одна из программ добродушно выдала три первых знака пароля и 9 звездочек после, доказывая свою полезность и предлагая заплатить за остаток.

Выглядел пароль так: «1qa*********». Надеюсь, не надо объяснять, как я достроил его до полного?

965

В Советской России Гугл ищет вас!

Работаю веб-программером — делаем разнообразные сайтики и интернет-магазины. Очередной клиент попросил, чтобы к сайту была прикручена статистика от Google. Я прикрутил, а до кучи поставил сайт в очередь на индексирование.

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

Прошло некоторое время. В аську стучится админ сервера компании-заказчика: «Твой проект грузит на 103% процессор MySQL-сервера!»

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

Поиск после этого доработали, бота от страницы выдачи отвадили и даже морфологию прикрутили. Вспомнили и бессмертную фразу Стива Макконнелла: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете».

964

Профилактическая вакцинация

Админили мы с другом одну фирму по удалёнке. В один прекрасный день звонок: «У нас база 1С не грузится». Заходим на сервер и видим, что кто-то вставил новый жесткий диск. Пребывая в лёгком шоке, открываем его и видим полный суповой набор чудесных файлов: fun.xls.exe, autorun.inf, csrcs.exe и прочие в том же духе.

Друг хватает трубку и перезванивает, пытаясь разобраться в ситуации. Оказывается, приходил человек, который обновляет систему «Гарант». Чтобы не тратить время, ставя апдейт на каждый комп, он решил залить обновление сразу на сервер — тут-то его и повело. Звоним в поддержку «Гаранта», описываем ситуацию и требуем, чтобы приняли меры.

Самое интересное заключалось в том, что все эти файлы были пустыми! Их специально создали на внешнем HDD и заблокировали от перезаписи, чтобы вирус точно не пролез. До сих пор непонятно, что случилось с 1С, но после перезагрузки всё заработало.

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

963

Не смешите начальника СБ, он лопнет

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

Как-то сидим, админим наши сервера. Работа достаточно скучная, так как настроены они по всем «фэн-шуям» и вероятность факапа минимальна. Внезапно сонное лицо руководителя группы администрирования Unix-систем, оживает, и он помпезно изрекает: «%Adminname%, я считаю, что употребление слов „жопа“ и „косяк“ неприемлемо при постановке служебного задания».

Через минуту хохота %Adminname%, Oracle-админ, начинает оправдываться, что он скопировал в задачу кусок из своих ночных записей — в них было отмечено, что старт инстанса Oracle с такими-то параметрами и с использованием такого-то массива приводит к жопе с производительностью, и это явно косяк в Solaris!

962

Меня и так прёт, наяву, без всякого компота

Звонит клиентка: «Спасите-помогите, бросайте всё! У меня ноутбук умирает — стоит отойти, вылезают полоски цветные на весь экран и треск идёт. Там базы важные!»

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

961

Бухгалтер-мультибоксер

Однажды вызывает меня финдиректор — не открывается база в 1С. Начинаю проверять. Действительно, «эска» ругается, что путь к БД задан неверно. Проверяю нужную папку на сервере — базы нет. И бэкапов тоже нет — там, где была папка, теперь пустое место. У меня начинают дрожать руки.

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

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