НЕТРИВИАЛЬНОЕ РЕШЕНИЕ: Как пострадать от излишней бережливости?

Лукас ван Ворстерман. Скупость
ВНИМАНИЕ — ВОПРОС!
Даже в начале этого тысячелетия память домашнего компьютера превышала миллиард байтов — это очень много.
Тем не менее возможность сэкономить два байта кому-то казалась важной. А в результате прогноз возможного ущерба от этой экономии был примерно полтриллиона долларов — похоже, где-то так и вышло!
Что же могло нанести такой ущерб?
Ответ — несколько позже.
КТО ВИНОВАТ?
Высказано мнение, что первопричиной всего этого зла является всем известная фирма Motorola. Именно она в какой-то столькотодесят затертый год разработала микросхему аппаратных часов реального времени MC146818, в которой для экономии год представлялся всего двумя цифрами.
А вторым, не менее коварным злодеем оказалась фирма IBM, использовавшая, такая нехорошая, именно эту схему при разработке компьютера IBM PC AT (в его предшественниках вроде РС ХТ, не говоря уже о каких-то более ранних моделях, энергонезависимых часов не было вообще).
Эту микросхему под разными названиями производили многие. Конечно, она быстро устарела (в компьютерном мире все быстро устаревает), но новые схемы использовали похожую архитектуру, чтобы избежать возможной несовместимости со старым программным обеспечением.
Никаких противоречий с нашими привычками поначалу никто не замечал. Сам еще помню принятую в годы моей работы в НИИ ЕСКД — Единую Систему Конструкторской Документации. Там специально было сказано, что даты записывают шестью цифрами: по две на число, месяц и год.
БУРЕВЕСТНИК
Первым заметил опасность американец Боб Бемер — разрабатывая еще в 1958 году программное обеспечение, имеющее отношение к генеалогии, он заметил, что двух цифр для номера года может оказаться мало. Но на его предупреждения не обращали внимание — времени, мол, хватит!

А настоящую серьезную тревогу поднял сотрудник IBM, канадский программист Питер де Ягер. Еще в 1978 году он заметил, что компьютер, увидев номер года из двух нулей, решит, что это 1900 год, со всеми последствиями. Руководство ответило ему, что еще 22 года можно не беспокоиться.
Но уже в 1989 году тот же Питер де Ягер, работая на компанию-разработчика некой офисной системы, заметил, что 1 января 1990 года вся эта система «подвисла» — ее сверхэкономные разработчики отвели на номер года всего одну цифру! «Что же будет в 2000 году?» — подумал он.

Он сам поставил на своем компьютере эксперимент — установил время, соответствующее нескольким минутам до полуночи 31 декабря 1999 года. Эти минуты прошли — и дата изменилась на 1984 год (не понимаю, почему именно так, но это все равно достаточно опасно!).
«А если такое случится во всем мире?» — подумал де Ягер и уже в 1993 году опубликовал в журнале Computerworld статью с ярким названием «Doomsday 2000» («Судный день 2000»). Тут-то и началась довольно серьезная паника — все стали прикидывать, что же на самом деле случится.
Y2K
Первое, что нужно сделать для любой новой проблемы, — придумать ей название. Поначалу создали кучу не прижившихся аббревиатур вроде CDC (Change Date jf Century — «изменение даты столетия») или FADL (False At Date Logic — «ошибочная логика даты»). Они не прижились.
Автором прижившегося варианта, скорее всего, был программист из Массачусетса Дэвид Эдди. В электронном письме от 12 июня 1995 года он назвал эту проблему Y2K (от Year — «год», и двойки с префиксом К, у программистов означающим 1000 (строго говоря, 1024, но кто им считает?).
Как второстепенные, прижились названия «Миллениум баг», то есть «Ошибка тысячелетия», и простое незатейливое «Проблема 2000». Теперь названий было достаточно, даже больше, чем требуется, — можно было позаниматься и самой проблемой, тем паче что уже началось.
Еще в конце 80-х британская сеть гастрономов получила партию консервов со сроком годности до 1 января 2000 года — то есть 01.01.00. Ее компьютерная система сочла, что консервы должны были испортиться еще в январе 1900 года, и потребовала немедленно утилизировать неликвид.
А в середине 1997 года компания «Крайслер» решила проверить, что будет, и перевела часы своих компьютеров на 31 декабря 1999 года. Начался сущий кошмар: никому было невозможно платить зарплату, все проходные закрылись, никого на завод не впускали, да и не выпускали.
УЖАС-УЖАС
Мрачные пророчества усилились. Ведь компьютеры и тогда уже были очень важной частью технологической сферы всего мира. Что будет, если они все одномоментно откажут? Масса народу была жутко перепугана. Особенно сильно — те, кто в компьютерах не понимает.

Многие считали, что в первый день нового тысячелетия откажут компьютерные системы всех банков. Нельзя будет не только положить деньги на счет (это полбеды), но и получить хоть мелочь на пиво. Будут недействительными все кредитные карточки, и ни за одну покупку нельзя будет заплатить — кто же тогда что-то продаст?
Поскольку более-менее продвинутый транспорт уже тогда без компьютеров представить было невозможно, ожидали столкновения поездов, исчезновения с маршрутов автобусов, массового попадания кораблей на скалы и мели, падения самолетов и уйму автомобильных катастроф.
Больше всего боялись бунта военных компьютеров — а вдруг оборонительные системы прозевают удар подгадавшего к этому случаю коварного врага, и, что еще хуже, обезумевшие компьютеры сами осуществят ядерное нападение без приказа из штаба? Страшнее даже трудно придумать…
Особо чувствительные к слухам люди готовились к такому счастью, как могли. Запасались наличкой на случай отказа банкоматов, закупали харчи и кока-колу, если вдруг гавкнутся платежные системы, а кое-кто, не мудрствуя лукаво, попрятался по подвалам. Мало ли что…

ВНИМАНИЕ — ПРАВИЛЬНЫЙ ОТВЕТ!
Вы, наверное, уже все поняли — неумеренная тяга жадных программистов к ничтожной экономии навлекла на мир угрозу Y2K, «Проблемы 2000».
Миру грозили реальные неприятности, поэтому надо было подготовиться к ним заранее и по возможности вообще избежать.
ЧТО ДЕЛАТЬ?
Когда правительства крупных стран осознали реальность проблемы, они начали решать ее проверенным методом столоначалия: есть проблема — ставь заведующего. Более 120 стран образовали Y2KCC — Международный центр сотрудничества по Y2K с офисом в Вашингтоне.
Правительство США избрало трехэтапный подход: (1) информационно-пропагандистская деятельность, (2) мониторинг и оценка, (3) планирование и регулирование на случай непредвиденных обстоятельств. Даже приняли особый «Закон 2000-го года» — тут не забалуешь!

Британское правительство разделило все компании и учреждения в соответствии со схемой светофора: от зеленого «нет проблем» до красного «серьезные сомнения в том, что работа может быть завершена в срок». Многие организации закончили работу намного раньше срока.
Целый ряд стран — Норвегия, Финляндия, Румыния — изменили идентификационные номера, которые присваиваются каждому человеку. В них ранее год рождения отображался двумя цифрами, и это уже вело к путанице, поскольку некоторые умудрялись прожить больше ста лет.
Забавно то, что отчет Y2KCC 1999 года указал, что одной из лучших в мире стран в решении этой проблемы является Уганда, подготовившаяся к ней лучше, чем Германия, Италия, Швейцария и Австрия. Как им это удалось, не знаю — может, там просто еще не было компьютеров…
С ЛЕВОЙ РЕЗЬБОЙ
А вот кому Y2K была как бальзам на душу, то это всяческим конспирологам, маргинальным группам, религиозным сектам, любителям теорий заговоров и прочему подобному народу. Им такая ситуация очень даже нравилась, позволяя заниматься любимым делом — стращать.

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

Каковы же результаты этой вакханалии? Тот же Кол Стрингер подвел итог: «Ни один банк не обанкротился, ни один самолет не разбился, ни одна война или гражданская война не началась. И все же ни один из этих пророков судьбы никогда не извинялся за свою тактику запугивания».
И ЧТО ЖЕ БЫЛО?
Возможно, от шума по поводу Y2K была и определенная польза — практически все успели внести в компьютерные программы и базы данных необходимые изменения, и ничего особенно существенного не произошло. Но сказать, что не произошло совсем ничего, будет неправильно.

Клиент салона видеопроката в Нью-Йорке вернул кассету и получил счет на 91250 долларов штрафа — за просрочку длиной в 100 лет. Ошибку тут же исправили и извинились.
На счет некоего жителя Германии поступил непонятно откуда перевод от 30 декабря 1899 года на сумму более $6 000 000. Наверное, ему потом было очень обидно эти деньги возвращать…
В двух австралийских штатах автоматы для продажи автобусных билетов начали печатать на них дату продажи как 1900 год. Сканеры в автобусах эти билеты не принимали, хотя за них было заплачено совершенно настоящими деньгами.
В японском городе Исикава ровно в полночь вышло из строя оборудование радиационного контроля, а на АЭС в городе Онагава через две минуты после полуночи сработал сигнал тревоги. К всеобщему удовольствию, ложной.
Ну и в США компьютеры на наземной станции управления перестали обрабатывать информацию от разведывательных спутников. Военные восстановили все нормальные функции примерно за два дня. Потом оказалось, что в сбое виновна не Y2K, а патч для ее исправления.
Ну и еще немного по мелочам. Все самолеты сели, поезда не столкнулись, корабли не утонули, банки не обанкротились, банкоматы исправно выдавали денежки. Все обошлось.

КАК Я ПЕРЕЖИЛ Y2K
Ночь Миллениума я отлично запомнил. Я провел ее в ялтинской гостинице «Ореанда» — приехал туда выступать на большом гала-концерте. После него сразу улетел в Москву, где в «Что? Где? Когда?» выиграл свою вторую «Хрустальную сову». Такие вещи хорошо запоминаются…
Естественно, со мной был мой ноутбук — без него я уже много лет никуда не езжу. Вечером я немного на нем поработал — все было в порядке. Я внимательно смотрел на экран и думал: «Увижу ли я его завтра таким же?» Я, видите ли, очень внушаем и действительно беспокоился.
Ночью я долго ворочался и не мог заснуть. Взглянул на часы и понял, что Миллениум уже наступил. Взрывов было не слышно, светлые огоньки за окном не погасли, в ресторане довольно громко звучала музыка. В общем, все было как всегда, но я не удержался и включил ноутбук.
Программы работали, информация сохранялась, интернет был хороший, содержание новостных сайтов обычное. Только в почтовой программе The Bat! два пришедших недавно письма нашлись не сразу, а оказались в конце списка — исказилась дата. Это было все. Остальное не изменилось.
КРАТКИЕ ИТОГИ
Людям нравятся страшилки, которые на самом деле неопасны. До наступления Миллениума статьи о возможных ужасных последствиях Y2K появлялись непрерывно, все их читали, и мало кто совсем не волновался. А когда он прошел и ничего не случилось — забыли моментально.
Стоимость подготовки к Y2K вышла примерно такой, как прогнозировалось, — примерно 300 миллиардов долларов вполне хватило, может быть, даже еще осталось. Так что в материальном смысле Y2K действительно стала для человечества проблемой. Хорошо, что только в нем.
Когда беспристрастно посмотрели на действия тех, кто больше всего вопил о великих бедствиях, оказалось, что их деятельность принесла им немалую прибыль — от продажи наборов для выживания до огромных тиражей панических книг. Когда не знаешь, о чем речь, речь о деньгах.
Один академик сказал: «Активность по проблеме 2000 года носит скандальный характер, потому что она понятна любому, даже непрофессионалу. Имеются бюджетные деньги. На них можно создавать комиссии, слеты, выездные сессии… Халявные деньги, почему бы не урвать?»
«Проблема 2000» — не последняя из подобных. 19 января 2038 года на всех 32-битных компьютерах переполнится счетчик времени в системе Linux. 20 ноября 2286 года для хранения времени в секундах понадобится не 10, а 11 цифр. В 30828 году переполнится время в формате, нужном для файловой системы NTFS. Можно начинать бояться…
И еще одно, чуть не забыл, но это очень важно — не очень-то экономьте! А то бывает, что сбережешь какую-то мелочь, вроде двух байт на каждую дату, а потом потеряешь 300 миллиардов, и совершенно не гривен! Скупой платит дважды.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.