#4610: HP BurnJet14:00 05.11.2010, IT happens
Купили для нужд кладовщиков цветной лазерный принтер. Их начальница (хотя с компьютером почти на «ты») сильно удивилась:
— Я всю жизнь думала, что лазерный принтер печатает, выжигая лазером буквы на бумаге, поэтому может быть только чёрный цвет!
#4611: Сорцы давно минувших дней
14:00 05.11.2010, IT happens
...Обратите внимание: несмотря на низкую человекопонятность, недостаточную структурированность, а также на появление в последующие годы более совершенных языков и стилей разработки, этот код считался образцом правильно спроектированных систем ещё 0x40 лет. Каждый из вас даже при поверхностном анализе сможет выявить в нём не менее 0x800 уязвимостей. Дайте-ка, посчитаю с нуля... У меня получилось 0x81c, но это с минимальной глубиной анализа. Ну так вот: несмотря на огромное количество уязвимостей, эта система считалась образцом надёжности и защищённости. Репутацию спасало лишь слабое развитие аппаратных средств: если бы самый мощный пракомпьютер конца эпохи UNIX начал анализ, который я только что произвела, в момент выхода первой версии ядра, мы с вами не дожили бы до обнаружения им первой из только что найденных мною уязвимостей.
На этом я предлагаю закончить обзор зала кода процедурного стиля и перейти к рассмотрению раннего объектно-ориентированного программирования. Его зарёй почему-то принято считать вторую половину того же 0x14 века, хотя существовавшие тогда технологии нельзя считать программированием в современном смысле этого слова. Достаточно упомянуть о том, что код создавался людьми или примитивными кодогенераторами опять же по заказу человека, а такие аспекты, как универсальность, структурированность и надёжность, не являлись неотъемлемыми его свойствами и целиком зависели от программиста. Тем не менее, историки считают этот этап шагом вперёд, поскольку он позволил добиться немного более полного выражения предметных областей в терминах языков — разумеется, не на том уровне, на котором это делается сейчас.
В качестве примеров языков зари ООП можно привести C++ или Java, хотя считать их языками программирования в современном понимании опять-таки нельзя. В качестве примеров могу предложить вам исходные коды линейки операционных систем Windows, нескольких систем комплексного управления оборудованием, а также нескольких сред, реализующих тот язык, на котором они написаны. Как вы видите, эти программы по-прежнему рассчитаны на работу с человеком. Несмотря на огромное количество проблем с безопасностью и стабильностью, этот код использовался даже в критических местах! Не надо смеяться: я говорю серьёзно. Поскольку весь этот код был написан людьми, никаких имён здесь назвать, как вы понимаете, нельзя; однако уже в следующем зале мы с вами сможем увидеть наконец код, имеющий авторов. Началом объектно-ориентированного программирования можно считать...
Проснулся я в холодном поту. Так вот на какие экскурсии будут ходить будущие хозяева планеты!
#4612: Скрепость духа
14:00 05.11.2010, IT happens
Я работаю в саппорте ККМ (кассовых аппаратов). Есть такая машина «Штрих-Комбо-ФР-К». Вызывают нас либо при поломке, либо при плановой замене ЭКЛЗ (раз в год). Ещё есть ежемесячное техобслуживание, но оно сводится к краткому диалогу по телефону: «Всё окей? Зашибись».
На торговой точке юзвери за 11 месяцев эксплуатации умудрились импортировать 11 скрепок в самые неожиданные места внутри ККМ. При этом касса согласно действующему законодательству абсолютно закрыта от доступа извне.
— Но как? Как всё это ещё работает?!
— Ну, иногда загудит, иногда чек зажуёт, бывает, приходится потрясти, а так нормально.
Да здраствуют наши кассы, самые живучие кассы в мире!
#4613: Пустим на мясо
15:45 05.11.2010, IT happens
Крупное госпредприятие. Бюро по ремонту станков с программным управлением. Старые, еще советского выпуска, станки — никаких запчастей, естественно, уже не найти. На токарном станке близок к выходу из строя главный двигатель. Решено поставить обычный трёхфазный асинхронник через частотный привод. Сказано — сделано: найден двигатель мощностью 5,5 кВт, куплен дорогущий привод Siemens. На двигатель укрепили тахогенератор для обратной связи. Подключили — всё работает. Красота! Теперь надо погонять это дело пару недель вхолостую для проверки.