1381

Потоковый эксплойт

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

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

cin >> SumString;

cout << "Сумма строк: " << SumString;

На экране же это выглядело так:

> Это полов

> ина строки

> Сумма строк: Это половина строки

> Press any key to continue...

Пока препод в ведомости не расписался, нажимать на Any Key я не давал.

1380

Я не нарочно, просто совпало

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

Пользователь нажимает кнопку включения.

Загорается индикатор питания на системнике.

Загорается зеленая лампочка на мониторе (вроде пошёл сигнал), но изображения нет.

Индикатор HDD не мигает — ОС явно не грузится. Писка нет.

Какие могут быть диагнозы? Первое, что пришло в голову — сбой монитора, но тогда система продолжала бы грузиться. Еще вариант — поломался интегрированный видеочип. Но не пищит же! Память, БП — вряд ли, опять же был бы писк. Пищалка поломаться не могла. На этом идеи закончились — надо ехать.

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

Разгадка оказалась проста — объём HDD определился как 0 МБ. Какова вероятность того, что во всем отделении, где около 30 рабочих мест, в одно и то же время умрут винт (SATA, более-менее устойчивый к слабым скачкам напряжения) и монитор, оба стоящие на одном рабочем месте?..

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

1379

Гравитационное списание матценностей

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

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

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

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

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

Лицо руководителя описать не представлялось возможным. Брякнув «я позже зайду», он спешно ускакал из кабинета.

1378

А по вечерам хешируемся

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

— Что это с вами? — спрашивает препод.

— Связный взвешенный граф! Мы вершины, он — ребро, а это (взмах руками) — петли!

— Ага, я ребро весом 55, — соглашается одногруппник. Препод смеётся.

— А недавно мы были массивом и хотели покьюсортиться, но тренер нам не разрешил, — заявляет одна из вершин.

1377

Интернет на батарейках

Эти ваши UPS — для слабаков. У меня всё было гораздо хардкорнее.

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

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

1376

Где эта улица, где этот дом?

Работал как-то в одной организации сисадмином. Было в сети полсотни компов, пара серверов с Windows 2003 и КрасноШапкой. Был поднят и сендмейл на собственном доменном имени. Надо оговориться, что глубоко с линуксом я не знаком, но тем не менее и почта, и домен, и сквид, и айпитаблицы каким-то образом работали.

На втором году моей работы внезапно перестала ходить почта. Я был отозван из отпуска — благо, два дня до окончания оставалось и я был уже в городе. Пара дней сидения на упсе в серверной (каморка 2х1,5 м) в ковырянии манов по сендмейлу и настроек параметров А, NS и иже с ними, а также постоянное общение с админом провайдера результата не дали. Записи доменных зон в норме, порты открыты, трафик ходит нормально, а почта так и не работает! Причём локально ходит, а во внешний мир и из внешнего мира — глухо. В итоге получил я выговор и сокращение лимита на мобильную связь.

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

А мораль такова: не каждая айтишная проблема решается техническими специалистами.

1375

К взлёту готов

Работаю на дому веб-программистом. Свои плюсы, свои минусы — но речь не об этом.

Есть у меня древний ноут. В нем косой кулер, поэтому внизу стоит охлаждающая подставка с вентиляторчиком, а у самого ноута снята крышка. Ноут подключен (уже и не помню, почему родная матрица издохла) к отдельному монитору 20" ЭЛТ-монитору; кнопка отключения питания у ноутбука тоже отдала концы, и золотые руки моего друга вместо неё припаяли замечательный тумблер на отдельном шнуре. К ноутбуку прилагается внешний жесткий диск, который нещадно перегревается, и USB-вентилятор, который дует на этот жесткий диск для охлаждения.

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

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

С чувством исполненного долга иду ужинать.

1374

Кручу-верчу, посчитать хочу

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

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

Гашетка шуруповёрта нажата. «1+1+1+1...» — калькулятор считает витки. Одно плохо: крутить приходится медленно, не чаще пары оборотов в секунду. Больше не выходит, видно, срабатывает программная защита от «дребезга» контактов. Подумав, отключаю один из герконов и открываю ворд. Бинго! Около 10 символов, то есть оборотов в секунду. Ещё немного подумав, отрегулировал движками длину строки так, чтобы в неё умещалась ровно сотня символов. Осталось только считать строки.

Обе катушки я намотал за 40 минут.

1373

Постельный режим

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

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

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

1372

Метрометр

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

Беседую с мамой по поводу превышения месячного лимита трафика — та в слёзы:

— Опя-ять ты своих игр накачал, скорость упала!

— Знаешь, ты круглыми сутками YouTube юзаешь и Google Maps глядишь, да еще это радио по утрам — знаешь, сколько накручивает?

— Да я-то всего ничего... А ты игры скачиваешь. Знаешь, сколько они весят? (Показывает две DVD-болванки.) Вот столько! А ещё и больше бывают!

Глаза падают из орбит. Предки знают о весе игрух? Научил на свою голову... Ну ладно, раз поумнела — обьясняю посложнее.

— Видишь торрент-клиент? Вот статистика загрузок. Я в этом месяце с внешних ресурсов скачал только 3,99 ГБ. Это были The Sims 3 — ты же тоже в них играешь!

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

— А куда тогда?..

— Надо счётчик с нового месяца поставить, вот и узнаем, кто у нас такой ненасытный.

— А где его купить? И кто ставить будет?

— Ты вообще о чём?

— Ну где счётчик на интернет купить?

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