3314

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

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

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

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

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

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

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

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

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

3313

Не ходите, дети, в сети

Я — стандартного вида админ: борода, волосы в хвост, майка с пингвином. 27 лет, но выгляжу ещё старше. Итак, звонок в дверь. С той стороны — молоденькая блондиночка. Открываю.

— Не хотите ли к интернету подключиться?

— Я не пользуюсь инетом.

— Почему?! Это же круто! Вы сможете гораздо продуктивней использовать свой компьютер, [бла-бла-бла]...

— Мне мама не разрешает.

Грустно разворачиваюсь, ухожу дальше копать какой-то код.

3312

Уберите-ка эту политику

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

3311

В музее фотошопов

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

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

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

Я видел дипломные проекты выпускников техникума — попадаются очень неплохо сделанные работы. Как им только это удаётся? Памятники таким студентам надо ставить.

3309

Что едят принтеры?

Как-то от скуки просканировал сетку провайдера и всем, у кого нашел зашаренный принтер, отправил .prn-файлик, печатающий крупными буквами: «Хозяина, жрать хочу!»

Через неделю случайно забрёл на городской форум. Самой популярной темой был топик «Что едят принтеры?» на 18 страниц. Весь вечер не вылезал из-под стола.

3307

Говорите чётче

На металлургическом заводе в Донецкой области установили новую систему управления доменной печью. Объект сложный, куча параметров. В качестве метода реализации мозга САУ выбрали нечёткую логику. В задачу системы входила доставка исходных материалов (руда, известняк, топливо, кислород) и выгрузка готовой продукции. Всё оборудование монтировали и пусконалаживали инженеры фирмы-производителя, местные только консультировали.

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

«Умную» систему быстренько сняли и поставили привычную, на релейной логике.

3306

Исходники нараспашку

Спасибо незнакомым добрым людям,

Что в сей угрюмый копирайта век

Исходников рабочих не жалеют,

Спасая от провала мой проект.

Спасибо вам, коллеги-программисты,

Всем тем, кто тоже за открытый код.

Без вас нам, молодым специалистам,

Значительно б прибавилось забот.

Спасибо тем «компьютерным поэтам»,

Кому нетрудно комментарии вписать.

Что код работает — спасибо и на этом,

Но так ещё ведь можно и понять,

Прочесть, обдумать, вникнуть, научиться,

Ваш программистский опыт перенять,

И с ним ещё быстрее развиваться,

И что-то новое, полезное создать.

Мы, программисты — творческие люди.

Творец творца всегда поддержит и поймёт.

Давайте ж помогать друг другу будем,

Пусть будет он всегда — открытый код!

3305

Орешек знаний твёрд

Вот как выглядят вопросы юзера с точки зрения сотрудника техподдержки IT-компании. Звонок в фирму по доставке грецких орехов в Россию:

— Здравствуйте, я поела ваших орехов и теперь не могу сходить в туалет. С чем это может быть связано?

— Здравствуйте. Странно, у нас ещё не было таких проблем. А как вы их ели?

— Ну, обычно: взяла и поела.

— Расскажите поподробнее, как именно, по порядку.

— Я открыла пакет.

— Угу.

— Взяла орех.

— Ага.

— И съела.

— Как именно?

— Положила в рот и проглотила.

— Вы перед этим скорлупу очистили?

— А что, надо было?

Про себя: «П#$@ец, надеюсь, детей она ими не кормила».

— Конечно!

— Ой, спасибо, а я и не знала...

— На будущее: после очистки и помещения ореха в рот его нужно тщательно прожевать и только после этого глотать.

— А что, его ещё и жевать надо?

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

— Спасибо за помощь. А сейчас-то мне что делать?

— Могу посоветовать наесться обезболивающих и поставить огромную клизму, если не поможет — обратиться к проктологу. Спасибо за обращение в службу поддержки!

3301

Эритроциты с бубенцами

День, очередная банка очередного клиента. Кофе на столе перед монитором; приятное, уже совсем летнее солнышко греет небритую морду лица. Как же всё хорошо начиналось...

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

— Вань, я жёсткий убил, по симптомам — что-то коротит.

— Не очкуй, вечером приду — посмотрим.

Вечер. Я описываю ситуацию. «Ясно», — говорит Ваня, врубает отдельный блок питания на столе и запитывает хард на горячую. «Пых», — говорит жёсткий диск и немного дымит. «Зато теперь не коротит!» — с довольной улыбкой произносит Ваня, смотря в мои округлившиеся глаза и вставляя жёсткий в родную банку. Кнопка включения, знакомый сигнал работоспособности железа, хард благополучно определяется, начинает грузится винда.

Иногда складывается впечатление, что бубен у моего друга в крови. С меня пиво!

3300

<Тяп/><Ляп/>

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

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

— Ну, мне тут одна девочка сказала, что сделает мне сайт за двадцать гривен. А вы сколько хотите?

— Не меньше двухсот.

— А... Тогда я попробую... э-э-э... с той девочкой.

— Дело ваше. Я искренне рад за девочку, что будет делать вам сайт за двадцать гривен, и счастлив, что вы нашли такого человека.

— Да? Хорошо. Спасибо. До свидания.

На ближайшие дни эти «двадцать гривен» стали понятием нарицательным. Я подсчитал в шутку: чтобы встретиться, нужно будет потратить на транспорт шесть гривен, где-то одна гривна уйдёт на телефонные звонки. Итого у меня остаётся тринадцать гривен чистыми за всё потраченное время. Что можно купить сегодня за тринадцать гривен? Буханку хлеба и пару кило картошки? Две пачки сигарет?..