– Но если что-то является атавизмом, это не значит, что это что-то не продолжает использоваться повсеместно… На этом все, до следующего вторника. Антон, спасибо.
– Борис Николаевич, к вашему Антону претензий нет. Даты – это очень и очень важно. Но обозначенную «Проблему-2000» вы так и не раскрыли в ходе лекции.
– Михаил Сергеевич, извиняюсь, память старая… Запамятовал. В следующий вторник обязательно расскажу.
– Что кроме нее?
– Информационная безопасность. На этой лекции буду рассказывать на основании своего опыта. На следующую хочу позвать еще одного бывшего коллегу.
– Специалиста по ИБ?
– Специалиста по общению с ИБ.
– Если бы я был японцем, я бы сказал:
Каждый диалог
С вами сердце скорбью
Наполняет мне.
Лекция от 29.10.2019
– Всем ку! Мы в прошлый раз разглагольствовали целую лекцию про даты, а «Проблема-2000» опять мимо. Давайте быстренько. На дворе рубеж третьего десятилетия двадцать первого века. Те, кто писал программы в начале девяностых прошлого века, особо не думали о проблемах календарей. Сотрудники передовых многомиллиардных корпораций не думали о том, что их детища проживут пять-десять лет и перешагнут рубеж тысячелетия. Что уж говорить о сотрудниках более мелких продуктовых компаний. Хотя официально рубеж вроде бы перешагнулся с 00 на 01, а не с 99 на 00, но именно смена с 99 на 00 грозила всему миру. Из-за этого отвратительного мученичества с датами, а также еще и из-за крайне невысокой производительности компьютеров того времени считать биты было необходимостью. На один символ два бита. Еще два бита на каждый разделитель. А выкидывание двух лишних символов из каждой даты («19») позволяло сэкономить четыре бита и чуть-чуть сократить трудоемкость операций над ними. Сделали и забыли, другие тоже сделали и забыли, третьи… Четвертые поставили ПО и решили больше не обновляться, пятые поставили, но больше обновлений не прилетало от шестых, потому что они закрылись и разбежались. И вот в какой-то момент времени оказывается, что компьютеров на планете десятки миллионов, на каждом десятки программ, компьютеры замешаны уже практически во всех сегментах человеческого бизнеса… И большая часть экземпляров используемого ПО, то есть сотни миллионов инсталляций, считает, что после 1999 года идет 1900-й. Точнее, после 99 идет 100, что могло запросто считаться и как 19100.
– Возникала натуральная квантовая неопределенность. Каждая программа могла умереть или жить дальше при начале 2000 года. И только позиция наблюдателя, который посмотрит в программный код, могла внести ясность в эту неопределенность. Это, конечно, шутка, квантовой неопределенностью тут и не пахнет. Обычная такая, неквантовая… Человечество спохватилось своевременно, что-то обновили разработчики, что-то поменяли пользователи: подкрутили в исходниках, где это было возможно, либо перешли на новые системы, где нет. Также некоторым системам было индифферентно, какой на дворе год, хоть 1601-й, хоть 2038-й. Калькулятор и пасьянс «Косынка» будут служить вам верой и правдой вне зависимости от года. Человечество преодолело проблему малой кровью.
Мерзкое солнце вышло из-за тучи и внезапно ударило по глазам. Прямо хоть опять аудиторию меняй. Но все остальные были меньшего размеры. Поэтому приходилось терпеть все пытки, назначаемые светилом.
– При этом не стоит забывать, что «Проблема-2000» была не только в 2000. Она случалась каждый год, но в сильно меньших масштабах. Вот представьте, разработчик ПО добавляет выбор года из списка на экран. Неважно, на какой, просто выбор года из списка. В техническом задании сказано – «год должен быть этот и предыдущий». Разработчик доблестно выполняет требование, прописывая ручками номер «этого» и номер «предыдущего». На этапе тестирования это проходит незамеченным… Как минимум потому, что с таким разработчиком наверняка там будет огромный перечень других, более наглядных ошибок. Заказчик получает свое ПО, начинает пользоваться, все довольны (чаще нет). И вот Рождество (у бездуховных), Новый год (у православных), шампанское, мандарины, каникулы. Все возвращаются в рабочий ритм в начале января, идут в систему, чтобы ввести первый заказ в новом году, а система говорит: «Ничего не знаю, такого года не существует, он не похож ни на тот, который был этот , ни уж точно на предыдущий ».
Читать дальше