Читаем Bash.org.ru IT Happens Истории ## 2901 – 3000 полностью

Однажды в студёную зимнюю пору нам позвонили и сообщили, что связи нет. Надо срочно ехать на место (400 км в одну сторону) и выяснять, в чём же проблема. Ехать очень не хотелось, мы попытались выяснить причину удалённо, но не вышло.

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

<p>#2959: Опрометчивая оптимизация</p>

15:00 26.04.2010, IT happens

Начну издалека. Есть такая модель вычислений: demand-driven computation. В ней считается только то, что нужно посчитать. А еще есть common subexpression elimination — это такая техника оптимизации в компиляторах. Проще всего объяснить на примере: из sqrt(2) в пяти местах компилятор один раз сделает double s2 = sqrt(2), после чего везде будет использовать s2. Это можно усугубить, вбив вместо вычисления sqrt(2) просто константу.

Так вот, когда-то давно, когда машины были большие, проводились сравнения разных компиляторов Фортрана. Им подсовывалась тестовая программа, измерялось время компиляции и время работы скомпилированного бинарника. Особенно в этом сравнении отличились два коммерческих компилятора.

Дело в том, что тестовая программа только что-то считала, но не выводила результат. Умный компилятор рассуждал так: если результат никому не нужен, зачем его считать? Это допустимое поведение, но не для Фортрана же! В результате тест был провален, потому что тестовая программа отрабатывала моментально. Да-да, вы правильно догадались. Оптимизированный вариант выглядел так: exit(0).

После этого в тест добавили вывод результата вычислений. Тут уже отличился другой продукт: компилировал тестовую программу он три часа, зато отработала она опять-таки моментально. В оптимизированном коде было нечто вроде printf(result) — программа сразу выводила результат вычислений, который компилятор в поте лица и считал так долго.

<p>#2960: Копия копии копии</p>

15:00 26.04.2010, IT happens

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

— Алло! У меня шрифт потолстел!

Никак рожать собрался.

Иду по коридору, хватают за рукав и затягивают в пещер... кабинет:

— Э-э... Мы документ потеряли в компьютере!

— А где он?

— Не знаю, я его сохранила.

— Куда?

— Не помню.

— Как называется?

— Тоже не помню.

Видимо, о них писали: «Пойди туда, не знаю куда». Ищу потерянный файл. Нахожу четыре разных версии оного:

\Мои документы\Копия Акты 2010\Копия Иванова\Копия (4) Акты 2010\

\Рабочий стол\Копия (2) Акты 2010\Копия Акты 2010\Иванова\

\Рабочий стол\Копия Акты 2009\Акты 2010\Акты Ивановой\Копия Акты 2010

\Мои документы\Мои рисунки\Копия Ивановой\Акты 2009\Акты 2010

В каждой папке — ещё по десятку «Копия Копия Копия (6) %documentName%». Как жаль, что мы не работаем с гостайной — все шпионы с нервными расстройствами падали бы на месте замертво при попытке что-нибудь найти.

— Слушай, я ничего не трогаю, а у меня букв на экране много-много становится!

Думал, «потолстевший шрифт» разродился наконец-то — оказалось, из кучи хлама на столе съехала папка и ткнула углом в пару букв на клаве.

— У меня ничего нет!

— Где?

— На экране! Вчера такое было, а %admin% нажал кнопку — всё появилось! Я тоже что-то нажала — что-то появилось, но не то.

Оказалось, тётка влезла в BIOS. Как я вас люблю, коллеги, и как же вы меня задолбали!

<p>#2961: Аккорд двадцати четырёх иголок</p>

16:45 26.04.2010, IT happens

История про будильник (История #2943) напомнила мне собственное изобретение для пробуждения. Было это лет двенадцать назад, когда винда стояла ещё не везде. Пришлось заночевать на работе, но проснуться надо было часов так в шесть утра. Сотового у меня не было, а будильник «Витязь» из дома взять я не догадался.

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

На FoxPro я сваял программульку, которая в заданный момент отправляла на принтер фразу «Просыпайся, твою мать!» раз сорок. От тихого шума лазерника, подключённого к моей машине, явно не проснёшься, поэтому alarm.prg выводила всё это на матричный принтер, стоящий рядом на сервере.

<p>#2962: SEO-волна</p>

16:45 26.04.2010, IT happens

Перейти на страницу:

Все книги серии Bash.org.ru IT Happens

Похожие книги