HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#подборки</a></p>
1 <p><a>#подборки</a></p>
2 <ul><li>19 июл 2021</li>
2 <ul><li>19 июл 2021</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Иногда ошибки в программах стоят миллионов долларов и даже уносят жизни людей. Расскажем о самых дорогих багах в истории IT.</p>
4 </ul><p>Иногда ошибки в программах стоят миллионов долларов и даже уносят жизни людей. Расскажем о самых дорогих багах в истории IT.</p>
5 <p>Иллюстрация: Meery Mary для Skillbox Media</p>
5 <p>Иллюстрация: Meery Mary для Skillbox Media</p>
6 <p>Пишет об истории IT, разработке и советской кибернетике. Знает Python, JavaScript и немного C++, но предпочитает писать на русском.</p>
6 <p>Пишет об истории IT, разработке и советской кибернетике. Знает Python, JavaScript и немного C++, но предпочитает писать на русском.</p>
7 <p>Закон Мёрфи гласит: если что-то может пойти не так, это обязательно произойдёт. Яркий пример - фильм Стэнли Кубрика "2001: Космическая одиссея". По сюжету военные зашили в бортовой компьютер HAL 9000 жёсткую инструкцию, которая должна была скрывать от астронавтов истинные цели экспедиции. В результате искусственный интеллект перебил почти всех членов команды и сорвал операцию.</p>
7 <p>Закон Мёрфи гласит: если что-то может пойти не так, это обязательно произойдёт. Яркий пример - фильм Стэнли Кубрика "2001: Космическая одиссея". По сюжету военные зашили в бортовой компьютер HAL 9000 жёсткую инструкцию, которая должна была скрывать от астронавтов истинные цели экспедиции. В результате искусственный интеллект перебил почти всех членов команды и сорвал операцию.</p>
8 <p>Но такие сюжеты встречаются не только в кино - в реальности дорогие компьютеры не раз сходили с ума и даже убивали людей. Расскажем о самых громких ошибках в ПО.</p>
8 <p>Но такие сюжеты встречаются не только в кино - в реальности дорогие компьютеры не раз сходили с ума и даже убивали людей. Расскажем о самых громких ошибках в ПО.</p>
9 <p>Этот баг изрядно потрепал нервы владельцам яблочных смартфонов, хотя всё закончилось хорошо и устройства удалось восстановить.</p>
9 <p>Этот баг изрядно потрепал нервы владельцам яблочных смартфонов, хотя всё закончилось хорошо и устройства удалось восстановить.</p>
10 <p>В 2016 году резвые пользователи<a>reddit.com</a>пронюхали фичу: если в 64-битной версии iOS установить время на 00:00:00 часов 1 января 1970 года, а потом перезагрузить смартфон, он больше не включится. Устройство буквально превращалось в кирпич: пользователь видел только логотип Apple, а повторная перезагрузка не помогала.</p>
10 <p>В 2016 году резвые пользователи<a>reddit.com</a>пронюхали фичу: если в 64-битной версии iOS установить время на 00:00:00 часов 1 января 1970 года, а потом перезагрузить смартфон, он больше не включится. Устройство буквально превращалось в кирпич: пользователь видел только логотип Apple, а повторная перезагрузка не помогала.</p>
11 <p>Шутка разлетелась по интернету, и даже незнакомые с Reddit пользователи стали экспериментировать. Кто-то разыгрывал знакомых владельцев айфонов и айпадов.</p>
11 <p>Шутка разлетелась по интернету, и даже незнакомые с Reddit пользователи стали экспериментировать. Кто-то разыгрывал знакомых владельцев айфонов и айпадов.</p>
12 <p>Во "ВКонтакте" и на форумах моментально появились "добрые" розыгрыши:</p>
12 <p>Во "ВКонтакте" и на форумах моментально появились "добрые" розыгрыши:</p>
13 Подписчики "Двача" и МДК одними из первых в России протестировали "новую фичу" :) Скриншот: МДК<p>Опытным путём всё-таки удалось восстановить смартфоны: надо было подождать, пока они полностью разрядятся, или отключить аккумулятор вручную. После этого система запускалась с заводскими настройками.</p>
13 Подписчики "Двача" и МДК одними из первых в России протестировали "новую фичу" :) Скриншот: МДК<p>Опытным путём всё-таки удалось восстановить смартфоны: надо было подождать, пока они полностью разрядятся, или отключить аккумулятор вручную. После этого система запускалась с заводскими настройками.</p>
14 <p>Причина "окирпичивания" яблочной техники - UNIX-время и некачественное тестирование. Время в iOS отсчитывается от 1 января 1970 года - это условный ноль в UNIX-подобных системах.</p>
14 <p>Причина "окирпичивания" яблочной техники - UNIX-время и некачественное тестирование. Время в iOS отсчитывается от 1 января 1970 года - это условный ноль в UNIX-подобных системах.</p>
15 <p>В зависимости от часового пояса устройства добавляют смещение - прибавляют или отнимают необходимое количество часов. По одной из версий, когда пользователи из регионов с отрицательным смещением устанавливали злосчастную дату, время "уходило в минус". Например, в Нью-Йорке iPhone показывал бы -4 часа.</p>
15 <p>В зависимости от часового пояса устройства добавляют смещение - прибавляют или отнимают необходимое количество часов. По одной из версий, когда пользователи из регионов с отрицательным смещением устанавливали злосчастную дату, время "уходило в минус". Например, в Нью-Йорке iPhone показывал бы -4 часа.</p>
16 <p>В итоге iOS не понимал, что делать с отрицательным временем, а инструкции, которые используют время, выкидывали белый флаг и просто-напросто ломались.</p>
16 <p>В итоге iOS не понимал, что делать с отрицательным временем, а инструкции, которые используют время, выкидывали белый флаг и просто-напросто ломались.</p>
17 <p>Но этой версии противоречат несколько фактов:</p>
17 <p>Но этой версии противоречат несколько фактов:</p>
18 <ol><li>На баг жаловались и в регионах с положительным смещением времени.</li>
18 <ol><li>На баг жаловались и в регионах с положительным смещением времени.</li>
19 <li>Проблема вскрылась только на 64-битной версии.</li>
19 <li>Проблема вскрылась только на 64-битной версии.</li>
20 <li>Неужели разработчики Apple могли не поставить элементарную проверку на отрицательные значения? WTF?!</li>
20 <li>Неужели разработчики Apple могли не поставить элементарную проверку на отрицательные значения? WTF?!</li>
21 </ol><p>По другой версии, операционная система "подавилась" слишком большим числом. Главная программа использует переменную времени при настройке окружения и действительно вычитает из неё какие-то константы.</p>
21 </ol><p>По другой версии, операционная система "подавилась" слишком большим числом. Главная программа использует переменную времени при настройке окружения и действительно вычитает из неё какие-то константы.</p>
22 <p>И когда пользователи устанавливают время в ноль, оно не попадает в отрицательный диапазон, а становится равным<em>18 446 744 073 709 551 616</em> - это максимальное целое положительное число в<strong></strong>64-битной операционной системе.</p>
22 <p>И когда пользователи устанавливают время в ноль, оно не попадает в отрицательный диапазон, а становится равным<em>18 446 744 073 709 551 616</em> - это максимальное целое положительное число в<strong></strong>64-битной операционной системе.</p>
23 <p>В индекс Доу Джонса заложена стоимость акций 30 самых больших американских компаний - например, Apple, Coca-Cola и Intel. Ещё есть индекс S&amp;P 500 - в него входит 505 компаний. По этим показателям оценивают "здоровье" экономики США: индексы "зеленеют" - экономика растёт, "краснеют" - экономика падает.</p>
23 <p>В индекс Доу Джонса заложена стоимость акций 30 самых больших американских компаний - например, Apple, Coca-Cola и Intel. Ещё есть индекс S&amp;P 500 - в него входит 505 компаний. По этим показателям оценивают "здоровье" экономики США: индексы "зеленеют" - экономика растёт, "краснеют" - экономика падает.</p>
24 <p>В октябре 1987 года индекс Доу Джонса упал на 22,6%, а S&amp;P 500 - на 20,5%. Это вызвало эффект лавины на мировом фондовом рынке. Вслед за США обвалились Гонконг (на 46%), Австралия (на 42%), Канада (на 23%) и другие развитые экономики. Событие стало финансовой трагедией, а вину опять повесили на разработчиков.</p>
24 <p>В октябре 1987 года индекс Доу Джонса упал на 22,6%, а S&amp;P 500 - на 20,5%. Это вызвало эффект лавины на мировом фондовом рынке. Вслед за США обвалились Гонконг (на 46%), Австралия (на 42%), Канада (на 23%) и другие развитые экономики. Событие стало финансовой трагедией, а вину опять повесили на разработчиков.</p>
25 Так выглядит чёрный понедельник инвестора. Скриншот: Ycharts<p>Эксперты всё ещё спорят об истинных причинах падения, но, по официальной версии, к кризису привела ошибка программного трейдинга. Специальная программа автоматически заключала сделки, чтобы инвесторам не приходилось постоянно следить за котировками и проводить все операции вручную. Машины ориентировались на движение рынка: индексы растут - закупаем, падают - продаём. Алгоритмами пользовались только крупные инвесторы вроде пенсионных фондов и центральных банков, поэтому объёмы программного трейдинга были велики.</p>
25 Так выглядит чёрный понедельник инвестора. Скриншот: Ycharts<p>Эксперты всё ещё спорят об истинных причинах падения, но, по официальной версии, к кризису привела ошибка программного трейдинга. Специальная программа автоматически заключала сделки, чтобы инвесторам не приходилось постоянно следить за котировками и проводить все операции вручную. Машины ориентировались на движение рынка: индексы растут - закупаем, падают - продаём. Алгоритмами пользовались только крупные инвесторы вроде пенсионных фондов и центральных банков, поэтому объёмы программного трейдинга были велики.</p>
26 <p>Когда рынок немного качнуло, машины одновременно стали продавать акции на миллионы долларов. Но покупать их было некому, а потому программа ещё больше снижала цену. Случилось настоящее восстание машин: за один день американский рынок акций потерял около 500 млрд долларов. Вслед за американцами паника перекинулась и на другие страны - их экономики тоже просели на десятки процентов.</p>
26 <p>Когда рынок немного качнуло, машины одновременно стали продавать акции на миллионы долларов. Но покупать их было некому, а потому программа ещё больше снижала цену. Случилось настоящее восстание машин: за один день американский рынок акций потерял около 500 млрд долларов. Вслед за американцами паника перекинулась и на другие страны - их экономики тоже просели на десятки процентов.</p>
27 <p>"Чёрный понедельник" ударил по развитым экономикам даже сильнее Великой депрессии. Зато государства и финансовые организации разработали правила для защиты частных инвесторов. Теперь биржи прекращают торги при падении S&amp;P 500 на 7%, 13% и 20%, чтобы дать инвесторам принять взвешенное решение.</p>
27 <p>"Чёрный понедельник" ударил по развитым экономикам даже сильнее Великой депрессии. Зато государства и финансовые организации разработали правила для защиты частных инвесторов. Теперь биржи прекращают торги при падении S&amp;P 500 на 7%, 13% и 20%, чтобы дать инвесторам принять взвешенное решение.</p>
28 <p>P. S. Объяснения рыночных воротил звучат красиво и убедительно, но мы-то с вами знаем, что на самом деле виноваты не разработчики, а рептилоиды с иллюминатами :)</p>
28 <p>P. S. Объяснения рыночных воротил звучат красиво и убедительно, но мы-то с вами знаем, что на самом деле виноваты не разработчики, а рептилоиды с иллюминатами :)</p>
29 <p>Хотя финансовые игроки многому научились в 1987 году, история с "взбесившейся" программой повторилась спустя 25 лет.</p>
29 <p>Хотя финансовые игроки многому научились в 1987 году, история с "взбесившейся" программой повторилась спустя 25 лет.</p>
30 <p>Knight Capital была одной из крупнейших финансовых компаний в мире - с её помощью на фондовом рынке торговали страховщики, пенсионные фонды и банки. Через компанию проходила каждая шестая ценная бумага с бирж NYSE и NASDAQ. К тому же Knight Capital торговала собственными акциями и неплохо росла из года в год.</p>
30 <p>Knight Capital была одной из крупнейших финансовых компаний в мире - с её помощью на фондовом рынке торговали страховщики, пенсионные фонды и банки. Через компанию проходила каждая шестая ценная бумага с бирж NYSE и NASDAQ. К тому же Knight Capital торговала собственными акциями и неплохо росла из года в год.</p>
31 <p>В начале 2010-х стала популярной высокочастотная торговля с помощью роботов. Они совершали сотни и тысячи сделок в секунду по заранее составленному алгоритму и помогали неплохо зарабатывать на минимальных скачках цены. Человек просто физически не мог выставлять столько ордеров в такие короткие сроки.</p>
31 <p>В начале 2010-х стала популярной высокочастотная торговля с помощью роботов. Они совершали сотни и тысячи сделок в секунду по заранее составленному алгоритму и помогали неплохо зарабатывать на минимальных скачках цены. Человек просто физически не мог выставлять столько ордеров в такие короткие сроки.</p>
32 <p>В 2012 году Knight Capital запустила своего робота - и сразу же всё пошло наперекосяк. Из-за ошибки в коде алгоритм за сорок минут умудрился провести более 2 млн сделок - а это недельная норма для рынка. Менеджеры компании смотрели и ничего не могли сделать: у программы просто не было "выключателя".</p>
32 <p>В 2012 году Knight Capital запустила своего робота - и сразу же всё пошло наперекосяк. Из-за ошибки в коде алгоритм за сорок минут умудрился провести более 2 млн сделок - а это недельная норма для рынка. Менеджеры компании смотрели и ничего не могли сделать: у программы просто не было "выключателя".</p>
33 Кадр: фильм "Предел Риска"<p>За сорок минут робот успел потратить полмиллиарда долларов. Правда, из них только 365 млн принадлежало Knight Capital, а остальные деньги были заёмными. Вы удивитесь, но банки и фонды скинулись и спасли компанию от банкротства. Паники на фондовом рынке тоже не случилось - помогли защитные механизмы, которые придумали после "чёрного понедельника".</p>
33 Кадр: фильм "Предел Риска"<p>За сорок минут робот успел потратить полмиллиарда долларов. Правда, из них только 365 млн принадлежало Knight Capital, а остальные деньги были заёмными. Вы удивитесь, но банки и фонды скинулись и спасли компанию от банкротства. Паники на фондовом рынке тоже не случилось - помогли защитные механизмы, которые придумали после "чёрного понедельника".</p>
34 <p>Первый полёт самой надёжной европейской ракеты Ariane 5 был неудачным. Гордость космической программы взорвалась через 40 секунд после старта из-за ошибки в управляющей программе. Этот баг признан самым дорогим в истории.</p>
34 <p>Первый полёт самой надёжной европейской ракеты Ariane 5 был неудачным. Гордость космической программы взорвалась через 40 секунд после старта из-за ошибки в управляющей программе. Этот баг признан самым дорогим в истории.</p>
35 <p>В течение 10 лет 10 стран Евросоюза потратили на проект 7 млрд долларов, половину из которых дала Франция. Ракета должна была вывести на геостационарную орбиту спутники для изучения магнитного поля Земли.</p>
35 <p>В течение 10 лет 10 стран Евросоюза потратили на проект 7 млрд долларов, половину из которых дала Франция. Ракета должна была вывести на геостационарную орбиту спутники для изучения магнитного поля Земли.</p>
36 <p>4 июня 1996 года миллионы европейцев в прямом эфире наблюдали, как в небе буквально сгорают их налоги. На высоте 4 тысяч метров Ariane 5 отклонился от прямой траектории и самоуничтожился. Оказывается, разработчики скопировали код из управляющей программы предыдущей модели ракеты, которая успешно взлетала больше сотни раз. Только они не учли, что Ariane 4 летел по другой траектории и с другой горизонтальной скоростью.</p>
36 <p>4 июня 1996 года миллионы европейцев в прямом эфире наблюдали, как в небе буквально сгорают их налоги. На высоте 4 тысяч метров Ariane 5 отклонился от прямой траектории и самоуничтожился. Оказывается, разработчики скопировали код из управляющей программы предыдущей модели ракеты, которая успешно взлетала больше сотни раз. Только они не учли, что Ariane 4 летел по другой траектории и с другой горизонтальной скоростью.</p>
37 Фрагмент кода ракеты с ошибкой. Скриншот: moscova - Inria<p>Скопированный программный модуль неверно прочитал ситуацию и преобразовал 64-битное значение в 16-битное безо всякой проверки. Да, программа перехватила исключение - а вот отреагировала на него неадекватно и отправила на бортовой компьютер сигнал аварийного завершения. При этом с технической точки зрения полёт был абсолютно нормальным.</p>
37 Фрагмент кода ракеты с ошибкой. Скриншот: moscova - Inria<p>Скопированный программный модуль неверно прочитал ситуацию и преобразовал 64-битное значение в 16-битное безо всякой проверки. Да, программа перехватила исключение - а вот отреагировала на него неадекватно и отправила на бортовой компьютер сигнал аварийного завершения. При этом с технической точки зрения полёт был абсолютно нормальным.</p>
38 <p>Евросоюз потерял год исследований и более 500 млн долларов. После аварии страны-участники<a>провели открытое расследование</a>и нашли все "золотые" баги. А спутники быстренько отправили в космос на российском "Союзе". Злополучный код для Ariane переписали на Ada, и ракета успешно стартовала в 1997 году.</p>
38 <p>Евросоюз потерял год исследований и более 500 млн долларов. После аварии страны-участники<a>провели открытое расследование</a>и нашли все "золотые" баги. А спутники быстренько отправили в космос на российском "Союзе". Злополучный код для Ariane переписали на Ada, и ракета успешно стартовала в 1997 году.</p>
39 <p>Иногда баги приводят к смерти. В Национальном институте рака в Панаме из-за компьютерной ошибки погибли восемь человек и как минимум двадцать получили лучевую болезнь.</p>
39 <p>Иногда баги приводят к смерти. В Национальном институте рака в Панаме из-за компьютерной ошибки погибли восемь человек и как минимум двадцать получили лучевую болезнь.</p>
40 <p>Врачи управляли камерой для облучения с помощью специальной программы: устанавливали дозу радиации, длительность терапии и положение четырёх защитных плит, которые укрывали здоровые ткани пациентов. Радиолог попросил добавить пятую плиту для дополнительной защиты, но программа разрешала ставить не больше четырёх. Тогда операторы придумали хитрость: фактически установить две плиты, а программе показать, что она всего лишь одна.</p>
40 <p>Врачи управляли камерой для облучения с помощью специальной программы: устанавливали дозу радиации, длительность терапии и положение четырёх защитных плит, которые укрывали здоровые ткани пациентов. Радиолог попросил добавить пятую плиту для дополнительной защиты, но программа разрешала ставить не больше четырёх. Тогда операторы придумали хитрость: фактически установить две плиты, а программе показать, что она всего лишь одна.</p>
41 <p>Позже выяснилось, что программа рассчитывала длительность терапии исходя из количества защитных блоков. Она позволяла вводить параметры, но итоговое время устанавливала сама. Поэтому после изменения настроек пациенты облучались в два раза дольше и у всех появились признаки лучевой болезни. Правда, врачи ещё несколько месяцев не обращали внимания на жалобы.</p>
41 <p>Позже выяснилось, что программа рассчитывала длительность терапии исходя из количества защитных блоков. Она позволяла вводить параметры, но итоговое время устанавливала сама. Поэтому после изменения настроек пациенты облучались в два раза дольше и у всех появились признаки лучевой болезни. Правда, врачи ещё несколько месяцев не обращали внимания на жалобы.</p>
42 <p>За это время через аппарат прошло 28 человек. Восемь из них скончались почти сразу, а остальные умерли в течение нескольких лет от различных осложнений. Врачей приговорили к тюремным срокам за убийство пациентов и нанесение тяжкого вреда здоровью.</p>
42 <p>За это время через аппарат прошло 28 человек. Восемь из них скончались почти сразу, а остальные умерли в течение нескольких лет от различных осложнений. Врачей приговорили к тюремным срокам за убийство пациентов и нанесение тяжкого вреда здоровью.</p>
43 <p>Идеальных программ не бывает, и все сценарии предугадать невозможно. Хакеры каждый день находят уязвимости в приложениях и устройствах, "ломают" небезопасные сайты. Но ошибки можно свести к минимуму, если правильно тестировать приложения и не вносить в них правки или "рацпредложения" по своему усмотрению, без попытки проверить последствия.</p>
43 <p>Идеальных программ не бывает, и все сценарии предугадать невозможно. Хакеры каждый день находят уязвимости в приложениях и устройствах, "ломают" небезопасные сайты. Но ошибки можно свести к минимуму, если правильно тестировать приложения и не вносить в них правки или "рацпредложения" по своему усмотрению, без попытки проверить последствия.</p>
44 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
44 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>