bash.im ithappens.me zadolba.li
3322

Система удалённого отсутствия

Живу в славном городе Питере, занимаюсь разработкой софта для систем удалённого присутствия. Только что сдал решение для внутрикорпоративного общения одной немаленькой зарубежной фирме. Заказчик поставил одно условие: готовый софт должен в 720p отдавать несколько потоков прямо от меня, причём две недели, без обедов и выходных. Требование, конечно, странное, но хозяин — барин, и деньги на кону стоят весьма и весьма внушительные.

Когда контракт ещё только подписывался, я от греха подальше подключил себе чуть ли не всех провайдеров, которые есть у нас в доме: «Б***», «И***» и «Ц***». Завёл от каждого из них кабель в квартиру, подключил к отдельному роутеру и прицепил к отдельной сетевой плате рабочего компьютера.

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

Ага, допредвкушался. Три дня до окончания тестового пробега. Звонит из своей буржуинской страны, где на тот момент рабочий день уже успел кончиться, заказчик и задаёт сакраментальный вопрос, как, мол, так: никакого трафика от меня нет уже часа три, на письма я не отвечаю, а скайпы и джабберы отключены?

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

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

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

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

Нет, им не оказался соседский вайфай или 3G-свисток — просто у «Ц***» два-три дня на восстановление связи странным образом сократились до двух-трёх часов. Ещё через час вернулся в строй «Б***», а через два — «И***».

Иногда то, что говорят саппорты, нужно делить не на два, а на двадцать четыре.

3321

Птичку жалко

8 июня 2010, 11:45

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

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

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

Включать компьютер сразу как-то расхотелось.

3320

Диск жужжит — кусты трясутся

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

Вместо привычного монотонного звука я слышу чуть ли не рёв реактивного двигателя, что заставляет меня отпрыгнуть от рабочего места вместе со стулом. Я много читал о том, как люди разгоняют разные вещи, но как можно разогнать DVD-привод, да ещё и до такой скорости? Ответ оказался довольно банальным: в тот момент, когда я запустил прожиг, под моим окном рабочие включили мощный перфоратор.

3319

Подпольная хирургия

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

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

— Что здесь случилось?
(хором) Бумага застряла — пытались вытащить.

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

3318

Наше дело — не обжать

8 июня 2010, 10:00

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

— Работали с витой парой?

Что-то щёлкнуло у меня:

— Работал!
— Обжимали?
— Втыкал!
— А-а-а... Ну да, это, в принципе, тоже работа...

На ту работу меня, к сожалению, не взяли.

3317

Ячейка за ячейкой

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

Сидим мы с ней как-то на конференции, где наши коллеги демонстрируют разного рода новшества. Была в том числе и тётенька, которая приспособила простенькую программу по отображению звука в виде графика к работе логопеда. Принцип прост, как яйцо: ребёнок говорит в микрофон, программа отображает характеристики его голоса в виде графика и сохраняет их. В зависимости от силы, высоты и особенностей нарушений голоса графики выглядят по-разному. Для демонстрации работы приглашаются несколько человек. Естественно, смех, развлекуха, тётечки веселятся, глядя на свои графики.

Моя коллега смотрит на всё это со огромным почтением и, не выдержав, спрашивает: «А они это в Ворде нарисовали?» Я, с трудом сдерживая смех, отвечаю: ага, мол, всю ночь, поди, над Вордом сидели. Уловив иронию, коллега с придыханием, близким к священному экстазу, вопрошает: «Что — неужели в Экселе?»

3316

На Марс на дизеле

8 июня 2010, 10:00

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

Представьте: на балконе офиса тарахтит генератор, сжигая нефтепродукты, которые по прогнозам учёных закончатся через 30–40 лет, выбрасывает в атмосферу выхлопные газы — и всё для того, чтобы четыре человека поиграли в Doom II!

3315

Плюс-минус день писать мне лень

8 июня 2010, 08:00

Работаю в рекламном агентстве дизайнером, а заодно эникейщиком — некому больше. Принесли макет в PSD, надо отпечатать. Собираю PDF под Люстрой, открываю Акробатом и печатаю. Отдали тираж — всё нормально. Через два часа клиент перезванивает, просит изменить немного оборот и перепечатать — понятно, за его счёт.

Переделываю, печатаю, режем, отдаём. Клиент матерится: «На фига вы мне то же самое отдали?» Я в шоке, смотрю — и правда, стоит 19-е число, а надо 20-е. Открываю TIFF - там 20-е, открываю PDF в Люстре — 20-е. Нажимаю Ctrl+S, закрываю Люстру, открываю Акробатом. И что вы думаете? Оказывается, Иллюстратор, автоматически перелинковавшись на новый файл с тем же названием, не счёл нужным записывать в PDF изменения. Для того, чтобы всё было нормально, пришлось нарисовать и удалить квадратик.

3314

Вырубившийся рубильник

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

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

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

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

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

Что такое десять одинаковых сообщений в секунду? Конечно же, спам, даже если все письма идут на один и тот же адрес. По этой причине почтовый ящик сервера был довольно быстро заблокирован. Ошибку в коде сервера я исправил, а в адрес поддержки почтового сервиса написал письмо, в котором изложил причины столь неприличного поведения и пообещал исправиться. Ящик разблокировали быстро, и процесс тестирования продолжился.

Во время майских праздников я заметил, что хотя студенты и слали запросы на тестирование, сервер ничего не делал. Пришлось пообещать разобраться после праздников. Каково же было моё удивление, когда во вторник я обнаружил, что сервер «забанен» админами университета! Выяснилось, что третью ошибку я совершил совсем давно: увлечённый созданием тестов для домашних заданий, я забыл проверить функциональность удаления сообщений неизвестной природы. Результатом было то, что сервер со скоростью 500 килобайт в секунду скачивал с почтового ящика одно и то же письмо и больше ничем не занимался. Чтобы не иметь проблем с администрацией почтового сервиса, админы университета закрыли доступ «проблемному» пользователю. По иронии судьбы письмо, спровоцировавшее это поведение, было ответом службы поддержки почтового сервиса на мои разъяснения по поводу предыдущего происшествия.

Программисты, тестируйте свои программы и протоколы тщательно, не забывайте о mock-объектах и всегда оставляйте себе возможность «повернуть рубильник», даже находясь на другом краю света.