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

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

Пора вернуться в 1962 год, когда простая ошибка кодирования стоила НАСА 18,5 миллионов долларов, что по современным оценкам составляет 150 миллионов долларов.

Марина 1 была построена для первого планетарного облета Венеры, она была запущена ракетой Atlas-Agena с мыса Канаверал. Его задачей был сбор данных о температуре и атмосфере на Венере.

Все пошло не так, как планировалось НАСА, и через 4 минуты полета ракета совершила незапрограммированный поворот. Это побудило офицера безопасности отдать команду самоуничтожения ракеты над Атлантическим океаном.

Что пошло не так?

Ракеты-носители Atlas используют две радиолокационные системы для поддержания траектории; система ставок и система треков. Система скорости измеряет скорость, используя измерения доплеровского сдвига, полученные от наземной системы маяков.

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

Две системы вместе образовывали избыточность в измерениях, допускающую небольшие погрешности.

Код, предназначенный для интерпретации измерения расстояния и угла, имел простую ошибку.

Обозначение слева является правильным обозначением, но вместо него использовалось обозначение справа.

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

Теперь в алгоритме отсутствовала черта (-) — компьютер наведения ракеты выдавал неверную информацию о скорости ракеты. Это вызвало множество проблем, побудив офицера безопасности инициировать команду самоуничтожения.

Почему эта ошибка не была обнаружена?

Код для управляющего компьютера был в основном написан на языке Formula Translation, также известном как Fortran. Этот устаревший язык программирования использовался для перевода математических уравнений в код. Чтобы еще больше усложнить дело, оно было написано от руки или напечатано на пишущей машинке.

Для перевода Фортрана в двоичный код использовались толстые прямоугольные листы бумаги, известные как перфокарты;

Каждая карта содержит одну строку кода (до 80 столбцов), и каждый столбец представляет один символ кода в строке.

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

После преобразования кода в перфокарты он отправляется через компилятор, где преобразуется в двоичный код.

Как вы можете себе представить, используя этот утомительный метод кодирования, ошибки можно легко пропустить. Никаких обзоров кода, IDE, контроля качества у нас нет.

Дополнительное чтение:



Присоединяйтесь к FAUN: Сайт💻|Подкаст🎙️|Twitter🐦|Facebook👥 |Instagram📷|Группа Facebook🗣️|Группа Linkedin💬| Slack 📱|Cloud Native Новости📰|Дополнительно.

Если этот пост был полезен, пожалуйста, несколько раз нажмите кнопку аплодисментов 👏 ниже, чтобы выразить свою поддержку автору 👇