Подписка на блог

В Telegram сообщения не читаю и на них не отвечаю, в канал за меня постит робот.

В Twitter помимо ссылок на заметки пишу всякую ерунду.

В TJournal и Tumblr есть автоматические трансляции. Если не работает, напишите мне: [email protected].

По RSS и JSON Feed трансляции для автоматических читалок

#длиннотекст

Электронная почта, которая не смогла

From [email protected] Fri Nov 29 18:00:49 2002
Date: Sun, 24 Nov 2002 21:03:02 -0500 (EST)
From: Trey Harris
To: [email protected]
Subject: The case of the 500-mile email (was RE: [SAGE] Favorite impossible
task?)

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

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

«У нас проблема с отправкой почты с кафедры»
Я:
«В чем проблема?»

«Мы не можем послать электронную почту больше чем на 500 миль»

Я роняю чашку с кофе. «Повторите, пожалуйста?»

«Мы не можем отправить письмо адресатам, находящимся далее 500 миль отсюда», повторяет завкафедрой. «Точнее, 520. Но не дальше».

Я пытаюсь собраться с мыслями. Крыша начинает медленно меня покидать, но нельзя позволить крыше уйти в разговоре с завкафедрой. Даже завкафедрой статистики. «Хммм... Понимаете, принцип доставки электронной почты не зависит от расстояния. Почему Вы думаете, что не можете отправлять почту далее 500 миль?»

«Я не думаю, я знаю» — довольно жестким тоном заявляет завкафедрой.
«Когда мы впервые это заметили, несколько дней назад...»
«Вы ждали несколько ДНЕЙ?» — перебиваю я уже слегка дрожащим голосом — «и вы обходились без почты?»
«Нет. Мы могли отправлять письма, но...».
«Но не далее 500 миль, сэр? Но почему же Вы не позвонили раньше?»
«Ну, у нас не было достаточного количества данных до сегодняшнего дня».
Ну да. Кафедра статистики, как-никак. О Господи...
«Ну, так или иначе — я попросил наших геостатистиков разобраться...»

Так. Геостатистики.

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

«Я понял, сэр». Крыша-таки решила меня оставить. «Когда это началось? Вы сказали — несколько дней назад. Вы перенастраивали Ваши сервера в последнее время?»

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

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

Нууу... Для начала я залогинился на сервер их кафедры и отправил несколько пробных писем. Все это происходило в Северной Каролине, и все письма моментально вернулись ко мне в ящик. Ричмонд, Атланта, Вашингтон — сработало. Принстон (400 миль) — сработало.

Далее я попробовал послать письмо в Мемфис (600 миль). Отлуп.
Бостон, отлуп. Детройт, отлуп. Я открыл адресную книгу и начал пытаться сузить круги. Нью-Йорк (420 миль) — работает, Провиденс (580 миль) — отлуп.

У меня появились сомнения в собственной вменяемости. Я решил попробовать отправить письмо своему другу, живущему в Северной Каролине, но работающему с провайдером в Сиэттле.
Благодарю Тебя, Господи. Отлуп. Если бы оказалось, что прохождение писем зависит от того, где находится человек, их получающий — я бы сам, по собственной инициативе и с гордо поднятой головой пошел бы сдаваться санитарам.

Поняв, наконец, что завкафедрой не бредит, я решил посмотреть на sendmail.cf. Вполне нормальный sendmail.cf. Знакомый даже.

Я сравнил его diff’ом со стандартным sendmail.cf у меня на диске. Он не изменялся. Это был ровно тот же sendmail.cf, который я делал собственноручно.
Но опцию «FAIL_MAIL_OVER_500_MILES» я не включал, это точно.
Каюк. Ну что еще попробовать? telnet по 25-му порту на сервер этой гребаной кафедры.
Сервер радостно отвечает, как ему и положено — blah-blah-blah, я, говорит, SunOS.

Стоп-стоп-стоп... SunOS sendmail? Sun тогда поставлял со своей операционкой sendmail 5, хотя все нормальные люди уже работали с sendmail 8.
Поскольку я — все-таки неплохой администратор, почта у меня ходила под sendmail 8. Ну и опять-таки — поскольку я — человек, приученный к порядку, я переписал sendmail.cf с нормальными, понятными именами переменных и опций. Что с переменными и опциями делал sendmail 5, вы должны помнить.

Так-так-так... Картинка собиралась. Мне снова захотелось кофе.
Ребятки от Sun пропатчили операционку, но sendmail, в общем-то, тоже ее часть. Они удачно закрыли дыры, но sendmail снова стал 5, а не 8. Но в одном они были правы — sendmail.cf действительно никто не тронул. А какая разница, для восьмой версии он или для пятой?

Ну, короче говоря. Пятый (по крайней мере, в варианте Sun’а) — нормально отрабатывал sendmail.cf от восьмого. Рулсеты-то не изменились.
Но вот опции настройки, такие неприлично длинные — он считал чуть ли не комментариями. Клал на них. А откомпилирован он был без настроек по умолчанию.
И, как честный человек, не найдя чего-то в sendmail.cf, он устанавливал это в 0.

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

Так. Ага...
Сетка наша уже в то время была на коммутаторах, и задержек практически не имела.
Задержки снаружи — это, в общем. Было понятно.

Ага. Скорость распространения электромагнитной волны.

Опаньки...
Умножаем время на скорость света и получаем... получаем...
558.84719

Пятьсот пятьдесят восемь миль.

Оригинал

 Нет комментариев    46   7 дн   #айти   #длиннотекст   #забавное

Люди-роботы

В годы формирования SuperbServices, Inc её бизнес процветал. Это было благословением и проклятьем; как и в любом стартапе, работы было больше, чем рук. Отделу продаж отказываться от своего успеха было нельзя, поэтому технарям приходилось адаптироваться.

Гендиректор SuperbServices, Inc дал Роланду серьёзную задачу, которая могла спасти компанию, или, по крайней мере, умственное здоровье сотрудников. «Нам нужно автоматизировать всю обработку, чтобы мы могли сосредоточиться на предоставлении услуг», — сказал CEO. «Самое ценное у нас — это наши услуги, а всё остальное — ненужная возня. Нужно её автоматизировать, этим ты и займёшься. Ты будешь сотрудничать с людьми-роботами, чтобы автоматизировать всё: подтверждение операций, покупки, транзакции средств, электронную почту клиентов — всё!»

«С… людьми-роботами?»

У Роланда появилась новая фобия. Серверный отдел компании был необычно эксцентричным, даже по стандартам отрасли. Лишь немногие видели его сотрудников, а до Роланда доносились только странные слухи.

Когда Роланд постучал в дверь серверной, камера наблюдения над его головой ожила и бесстрастный голос робота спросил его: «ЧТО ТЫ ИЩЕШЬ?»

«Э-э-э, привет… Я Роланд, менеджер проекта. Вроде мы с вами, ребята, или кто вы там, должны автоматизировать задачи?»

«ЧТО ТЫ ПРЕДЛОЖИШЬ НАМ?», — ответил зловещий металлический голос.

«Ну-у-у… Роботы любят пончики? У меня с собой. Это всё, что есть».

«ПРОХОДИ». Электронный замок на двери с щелчком открылся. Роланд потянул дверь на себя, и из-за неё вырвался ледяной воздух. Внутри мерцали тысячи огоньков и стоек, рядом был небольшой столик. Над столиком мигала лампочка. «ПОЛОЖИ ПОДНОШЕНИЕ СЮДА», — сказал из тени автомат.

Роланд положил коробку с пончиками на стол и медленно отошёл. Из-за его спины раздался крик «СПАСИБО!». Роланд подпрыгнул. Тщедушный человек с модулятором голоса захихикал и взял пончик.

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

Роланд был удивлён тем, насколько обычным оказался Рой, а не тем, что он на самом деле человек. «А, да, гендиректор сказал, что вы много работаете с роботами, и что мы можем использовать их для автоматизации всего, что сможем», — Роланд изложил требования и спецификации.

Рой вздохнул. «Жаль тебя разочаровывать, но мы на самом деле не имеем ничего общего с роботами, что бы там гендир ни думал. Он настаивает, что Ruby — это имя робота, хотя это просто язык программирования. Но большинство этих процессов мы сможем автоматизировать. Дай нам две недели, столько пончиков и энергетических напитков, сколько мы можем потребить, и мы с этим справимся».

В течение следующих двух недель Роланд приносил затребованные подношения и получал в обмен информацию о ходе работы и демки функций. Рой и другие люди-роботы писали код, и вскоре гора бумажной работы, которой занимались все наверху, переместилась в серверы в подвале. Роланд объяснил, что бОльшую часть работы сделали «люди-роботы», но генеральный директор высоко оценил его старания.

«Роланд, проделана мастерская работа, теперь эти машины дёргают за рычаги, приводящие в движение наш бизнес», — похлопал его по спине гендиректор. «Твоей наградой будет новый проект — ещё один проект с максимальным приоритетом. Наш финансовый отдел не справляется с объёмом транзакций. Я поговорил с финансовым директором и она хочет, чтобы вы с людьми-роботами автоматизировали новый купленный нами продукт — MoneyWorx. Не подведи меня!»

Роланд вернулся в серверную. Если предыдущий проект по автоматизации был таким простым, то и тут всё будет так же, правда? Он показал Рою требования.

Загоревшая в свете мониторов кожа Роя стала ещё бледнее. «Это плохо, очень плохо! Опасно!», — закричал Рой. Он в ужасе размахивал руками. «Это не MoneyWorx, а MoneyDoesntWorx. Даже когда сервисы работают, они требуют токенов RSA-SecurID. Кто-то должен вручную вводить код».

«Вручную? То есть чтобы система работала, кто-то должен быть на линии?»

«Да. У нас используется три токена SecurID, поэтому обычно, когда MoneyWorx просит новый код, „на линии“ должны быть три человека».

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

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

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

«Шедевром» была пустая коробка из под пончиков, поставленная набок. Токены RSA-SecurID были приклеены к коробке. Вся система была установлена перед дешёвой веб-камерой. «Когда MoneyJerks будет требовать новый двухфакторный токен, кто-нибудь может удалённо зайти на эту машину, проверить токены и ввести правильный код».

«Не думаешь, что эту коробку нужно защитить паролем?», — предложил Роланд.

«Думаешь, что пользователи запомнят, как логиниться?», — возразил Рой.

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

«Это потрясающе! Они навели свои роботические глаза на эти фиговины, и теперь никому в компании не нужно говорить MoneyWorx, что нужно делать! Великолепная работа, Роланд. Поздравь от меня людей-роботов. Их робот — просто чудо».

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

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

Оригинал

 Нет комментариев    30   7 дн   #длиннотекст