bash.im ithappens.me zadolba.li
10935

После конца света

Началось всё, как обычно, нежданно-негаданно; как говорят в этих ваших интернетах, внезапно. Представляется интересным заметить, что индейцы из племени майя ещё сотни лет назад разработали календарь, достаточно точно предсказавший эти события. Они ошиблись в малом: не учли действия Папы Григория XIII, который ввёл в католических странах свой собственный календарь. За прошедшие с 1582 года столетия набежало несколько дней разницы, и предсказанное майя событие грянуло не в тот день, в который его ожидали толпы безумного народонаселения, а в тихую и спокойную пятницу 4 января 2013 года, она же 22 декабря 2012 года по старому стилю.

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

Примерно в одиннадцать утра его сотовый телефон издал хрюк антивируса Касперского, наткнувшегося на вирус «Бластер». Сисадмин накапал корвалола жене, сменил штанишки детям и прочитал полученную эсемеску. Сообщение гласило (цитирую дословно): «Брат Митька помирает… Ухи просит…» Сисадмин опустил голову на грудь и глубоко задумался. Эта шифровка из головного офиса означала, что Самый Главный и Наиболее Центральный Сервер крупной международной компании прямо в данную секунду потребляет последние ватты электроэнергии и вот-вот сдохнет в жутких мучениях от голода. Делать нечего — сисадмин скорбно попрощался с женой и детьми, собрал котомку с бутербродами и отправился в рабочий кабинет, чтобы проверить, почему даже теоретически неубиваемый сервер жалуется на голод.

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

Виртуоз клавиатуры и отвёртки почувствовал, что медленно сходит с ума. Сервера подключены к источнику бесперебойного питания, который поддерживается генератором. Кроме того, генератор защищён источником бесперебойного питания всего здания, и у здания есть собственный генератор. Это четырёхуровневая система защиты, которая не должна упасть ни при каких обстоятельствах, разве что если начался конец света. На сервере крутятся программы, на которые завязаны многие миллионы долларов США, причём не клиентов, нет, а самой фирмы, поэтому их жалко. Интересно, является ли конец света форс-мажорным обстоятельством?

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

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

Перед внутренним взором сисадмина развернулись картины из недавнего прошлого. Воспользовавшись тем, что в пятницу в офисе никого нет, обслуживающая служба здания вызвала ремонтника для профилактики кондиционера. Тот, действуя строго по инструкции, отключил питание. Включился бесперебойник. Ремонтник отключил бесперебойник. Взревел генератор. Ремонтник заглушил генератор. Включился бесперебойник всего здания. Ремонтник отрубил и его, и запустившийся следом генератор. В этот момент Самый Главный и Наиболее Центральный Сервер отправил злополучную эсемеску, вызвав сисадмина в юдоль скорби.

Картины недавнего прошлого сменились картинами ближайшего будущего. По экспрессивности они дали бы по сто очков вперёд Иерониму Босху и Гигеру, а по кровавости превосходили тексты Napalm Death и Cannibal Corpse. Главным героем в них был незадачливый ремонтник, прекращающий своё существование очень многими, очень яркими и не всегда быстрыми способами. Сисадмин захлопнул талмуд и убежал искать ремонтника. Затемнение.

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

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

Сцена последняя. То же здание, получасом позже. Вскрытая серверная компании, заполненная гулом вентиляторов; сервера задорно перемигиваются друг с другом светодиодами. Сисадмин с блаженным видом поглаживает Самый Главный Сервер, вновь занявшийся тасованием миллионов долларов, дует на костяшки кулаков и обожжённые сверлом пальцы. Ответственный за техническое состояние здания стоит в дверях, прижимая к разбитой физиомордии холодный компресс. Лицо неопределённой сексуальной ориентации, слегка помятое и покрывшееся синяками, примеривается болгаркой к навесному гипсовому потолку, чтобы выпилить отверстие для ещё одного выхода кондиционера. Щелчок выключателя. Ничего не происходит. Лицо осматривает болгарку и замечает валяющийся на полу хвост питания. Лицо берет вилку в руку, оглядывается вокруг, выдёргивает какую-то другую вилку из розетки и вставляет в неё вилку болгарки. Раздаётся мощный хрюк, словно от Касперского при виде «Бластера». Лицо сисадмина вытягивается, пока вентиляторы Самого Главного Сервера затихают…

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

10944

NaN километров в час

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

И вот подцепляю блок, инвертер, ноут, прошивальщик… Сигнал тахометра получил без проблем, обороты подсчитал. А сигнал скорости? Фигня: задираю колесо, передача — поехали. И вот никак не выходит. С полчаса сижу. И тут в окно — тук-тук. Опускаю стекло. Стоит мужик.

— Не получается?
— Э-э-э, ну да. Вот, скорость снять не удаётся.
— AVR?
— Э-э-э… Да.
— Дай глянуть.

Открываю дверь, мужичок смотрит код процедуры обработки прерывания и процедуры вычисления.

— Вроде правильно. Хм… А переменную через volatile объявил?
— Точно…

В спешке по оборотам объявку-то повесил, а по скорости забыл. Вешаю — хоп, вот и скорость!

— Работает, спасибо!
— Да не за что, пока!

И уходит. Это что — нормально, да?

11007

Хлеб твоих коллег

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

Вот поэтому работа наша так низко и оплачивается. Например, переустановка ОС, вскрытие системного блока, проверка HDD — 500 рублей. Это три часа работы минимум. 150 рублей в час? Добавим пару часов на дорогу до клиента и обратно. 100 рублей в час? При непрерывном потоке заказов и восьмичасовом рабочем дне получаем 24–26 тысяч в месяц. А жить на что?

Альтруисты, не убивайте профессию! Если все пойдут работать за идею, квалифицированных кадров больше не останется. Останутся те, кому некуда пойти. Во многих фирмах замечал, что отношение к специалистам IT становится откровенно пренебрежительным. Потому что зарплаты этих «специалистов» на уровне секретаря или офис-менеджера. Потому что они готовы работать сутками за идею. Люди в большинстве эгоистичны. Если их проблемы решаются быстро и бесплатно, они считают, что так и надо. Поэтому если вы делаете хорошо, не делайте бесплатно. Этим вы наглухо вытесняете тех, кому надо кормить, например, семью.

Загляните вперёд. Представьте себя специалистом с 20-летним стажем. А расценки на работу будут только падать. И что в итоге? Квартира, за которую надо платить, дети, которым много всего надо, родители на пенсии, которым тоже надо помогать. А активов — на уровне недоучившегося студента.

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

10978

Интернет не по уставу

Как обстоят дела в Подмосковье с интернетом, знают, наверное, все, кто там живёт. Жителям «элитных» новостроек ещё повезло, а вот в старых советских хрущёвках совсем кисло: провайдеры не хотят ради десятка клиентов тянуть кабели и ставить аппаратуру. В результате приходится выбирать между 3G-свистком и ADSL от великого и ужасного монополиста, что взял за моду блокировать за картинку с голым младенцем целые подсети.

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

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

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

Вопрос зрительному залу: сколько ещё балом будут править тёмные невежественные люди?

11004

Слишком много сладкого

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

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

В 4,5 года купили приставку и много игр, чтобы вырабатывать у ребёнка неприязнь к играм вообще, а не только к определённой. Сначала просто обязывали играть по 45 минут в день (ребёнок за такое время успевает сильно устать), потом — проходить уровни за определённое время, иначе — в угол. Время выбирали такое, чтобы с большой вероятностью он не успел.

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

10957

Деньги вперёд

Дело было вечером, делать было нечего… По правде говоря, дело было утром, но админ только вернулся с ночной смены, и его биологические часы справедливо полагали, что сейчас именно вечер. Часов десять.

Внезапно — звонок! У юзера пропал интернет. Админ чешет в затылке и стучится на роутер. Роутер весело отвечает, демонстрируя бегающие мегабиты.

— Всё у вас работает, — отвечает админ, — вот только что подцепился из дому. А что не так?

— Сайты не открываются, — молвит юзер голосом человечьим. — И Самый Главный Рабочий Имейл не работает.

— Интересно… — говорит админ и углубляется в изучение конфига. — Интересно… — повторяет он же через десять минут.

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

— А ну давай Тимвьюер запускать, посмотрим, как оно с твоей стороны… — говорит админ.

Тимвьюер благополучно подключился, и админу открылся обычный рабочий стол. Пинги точно так же ходили во все стороны, скайп светился зелёным, а вот из сайтов открывался один Гугл. «Неужели неправильный MTU? — подумалось админу. — Там же как раз PPPoE. Сломаться не должно бы, вот только если ADSL-модем напакостил». Модем был куплен год назад и всё это время безглючно трудился. Но доверия китайской фирме не было, как не было и доступа к админке по причине забытого пароля, и админ решил ехать на место.

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

— Здравствуйте, а у нас интернет как-то странно работает, — сказал юзер в трубку.

— А мы знаем! — ответили ему. — Мы вас сами и заблокировали. Вы не заплатили за июнь.

— Но ведь сейчас только май начался?

— Ну так мы и не настаиваем. Просто напоминаем: мы помним о вас и заботимся. Звоните нам почаще. Готово, ваш интернет опять доступен. Всего наилучшего.

* * *

Пользуясь случаем, хочу передать привет «Бритиш Телекому». Вы там случаем не обкурились?

10937

Священная война сестёр

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

Не так давно я вернулся и уже с месяц живу как на пороховой бочке: старшая дочка — системный администратор UNIX-систем, младшая — наоборот, админит «форточки». Оба ребёнка эникеят вовсю и дома появляются довольно поздно. И каждый раз я наблюдаю вялое такое, бессильное переругивание на вечную тему холивара Linux vs Windows.

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

10931

Проблема 2004

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

Разработчик провёл потрясающее по своей глубине исследование и выяснил, что шестнадцатибитное значение времени ожидания ответа сервера (server timeout) в секундах рассчитывается по хитрой формуле, включающей в себя нынешнюю дату. В какой-то момент результат расчётов становится равным или большим, чем 0x8000. Но число с ненулевым старшим битом по компьютерным правилам считается отрицательным. Отрицательное же время ожидания невозможно, поэтому программа легко и незатейливо обрубает его до нуля. Ноль — вполне легитимное время ожидания отклика, и дальше программа работает с ним. Выглядит это примерно так:

— Эй, сервер, дай-ка мне список твоих фай… Ай, ладно, некогда мне тебя ждать, тебя только за смертью посылать! Вот, пользователь, смотри: нету никаких файлов на сервере!

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

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

Часы на компьютере того пользователя были случайно переведены вперёд. Но у всех остальных они рано или поздно сами доберутся до часа «Ж», в который время ожидания отклика, согласно формуле, станет отрицательным. И тогда все пользователи во всём мире, хранящие данные на серверах (а это абсолютное большинство клиентов фирмы), не смогут открыть ни единого своего файла. Программист быстро провёл расчёт: момент, когда фирма неминуемо обанкротится, наступал через два месяца. А начальство-то и не знает…

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

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

А вы говорите — «проблема 2000»…

10992

Законы Мёрфи для IT

Закон 1. Автоматизация бизнес-процессов не приводит к росту производительности — она приводит к большему количеству свободного времени у менеджеров/клерков исполнительного звена.

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

Дополнение к 1 закону. Любое время, потраченное на оптимизацию, в геометрической прогрессии увеличивает нагрузку на IT-отдел.

Вывод из 1 закона. Автоматизировать бизнес-процесс надо тогда и только тогда, когда это уже назрело и этого требует руководство. После внедрения обязательно потребовать премию.

Закон 2. Каждый менеджер/клерк стремиться сделать свою среду работы максимально удобной для себя в максимальный ущерб компании.

Дополнение к 2 закону. Уникальность бизнес-процессов компании — миф. Желание менеджера/клерка адаптировать интерфейс программ под свои нужды — это их нежелание осваивать работу со стандартной конфигурацией и программными средствами.

Следствие из 2 закона. Любое желание менеджера/клерка оптимизировать работу несёт вред.

Закон 3 (закон Парето для IT). 20% времени должно уделяться резервированию и документированию. Это лучше, чем 80% времени тратить на решение аварийных ситуаций.

Дополнение к 3 закону. 20% времени дают 80% результата по оптимизации и улучшению информационной системы. 80% времени и усилий пропадают зря.

Закон 4. IQ пользователя — величина отрицательная. Примите это как данность и делайте всё исходя из этой аксиомы — это сэкономит вам время и нервы.

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

Закон 5. Глючит всё. Всё, что не может глючить, всё равно заглючит от сопряжённых с ним элементов. Если что-то не глючит — значит, оно скоро сгорит.

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

Закон 6. Все сроки, назначаемые IT-специалистами, срываются.

Дополнение к 6 закону. Если вы удвоили сроки — добавьте ещё 10–20% на дедлайн.

Закон 7. Любая система хаотична. Степень хаоса системы прямо пропорциональна времени её эксплуатации.

Закон 8. Ни один программный продукт или платформа не готовы к использованию при первом релизе.

Следствие из 8 закона. Любой продукт можно внедрять только после 1–2 полноценных пакетов исправлений.