5 бъга за милиони

Някои от тези истории са тъжни, но повечето са идеално четиво за първи април. Просто защото има доста ирония и комизъм във факта, че една погрешно написана от програмиста буква може да струва милиарди долари.

Във времето, когато програмирането е все по-популярна професия или хоби, все повече хора могат да оценят тези случки. Защото компютрите, поне за момента, уж са мислещи машини, които обаче „мислят“ само по начина, по който ние им казваме да го правят. Тепърва ще дойде апогеят на изкуствения интелект, когато ще си заслужава да им покажем и що е то чувството за хумор…

 

1. Ракета на парчета

Този пример е христоматиен и все пак, хубаво е да го чуе всеки, който се занимава с програмиране или планира някога да го прави. Не се знае кога пропуските в познанията ви могат да струват скъпо.

През 1996-а ракетата носител “Ariane 5“ полита в Космоса, след като за разработването ѝ са дадени… 7 милиарда долара! Ето спомен от случката:

Нещо не се случва както трябва, май? За щастие, полетът е тестов, няма хора на борда. Щетите от инцидента, случил се по време на излитането, се оценяват на 500 милиона долара.

Причината за катастрофата? Софтуерна. Системата за управление се опитала да превърне 64-битовата числена структура от данни в такава със значително по-малък обхват. Съответно се получило надхвърляне на максималните стойности, „превъртане“ и… Бум.
Накратко, струва си, ако ще се занимавате с програмиране, да се заровите и в принципите и начина на работа на структурите от данни, въплътени в езика, който ще ползвате.

2. Точка и запетая

Подобно на прехвърлянето на максималните стойности на избраната структура от данни като в първия пример, и в зората на компютрите, и днес има едни и същи, универсални „мотики“, които могат да бъдат настъпени. Този бъг е от добрата стара 1962-а, когато малцина са чували, че компютрите изобщо ги има. Умилително е човек да гледа огромните папки с компютърен код, които са помогнали да стигнем до Луната.

И все пак, бъгове е имало и тогава. Този пак е космически и е на стойност 135 милиона долара, които обаче днес биха били доста повече пари.

Космическата сонда “Mariner 1“ излита в Космоса, за да полети край Венера и да изследва планетарната ни съседка от орбитата ѝ. Само че още в първите минути се отклонява от очакваната траектория. Взето е решение да бъде взривена, за да не се сгромоляса обратно на Земята върху някое населено място.

Не е напълно доказано, но според много от обясненията причината е, че за разделител на целите числа е използвана точка, докато системата за навигация е очаквала запетая.

А това и днес си е реален проблем. На български все още приемаме „десетичната запетая“, но заемем ли се с програмиране, си струва да внимаваме кой е разделителят, очакван от компютъра. Разликата между точката и запетайката е миниатюрна чертичка, която обаче явно може да струва стотици милиони…

3. Y2K!

По-…опитните от вас си спомнят истерията, която предхождаше 2000-ата година. Очакваше се заради това, че годината ще се рестартира, а нулите ще стреснат компютрите, да започнат сериозни проблеми. Дотолкова, че да се рестартират дори системите, които отговарят за ядрените оръжия и от това, че броячът им за години се е нулирал, да започне ядрената война, която да ни унищожи.

Може би си спомняте и вие репортажите по телевизията, специалните щабове за справяне с проблема. Вярно, че 21 години са доста време, но от гледната точка на днешния ден, когато и изтривалката пред входа ни може да си свери часовника, цялата онази истерия изглеждаше доста комична.

Освен това се оказа и съвършено безсмислена. Разбира се, доста експерти успяха да вземат по някой лев (защото тогава нямаше биткойни), имаше дори уреди с лепенки, че са „устойчиви на Y2K проблема“. Всичко имаше… само не и истински проблем. Тук нямаше бъг, но имаше милиони.

Жокер за програмистите, че си струва да се понаучат на маркетинг.

4. Сърцето ми е лед

Днешният онлайн свят е доста сурово място и ракетите в него не толкова често падат сами, колкото хакерите им помагат. Всяка „дупка“ в сигурността може да бъде наказана.

Станал известен като „кървящото сърце“ или Heartbleed, това е един от най-известните бъгове в историята. „Ражда“ се през 2012-а, когато трябваше да дойде краят на света. Официално беше уловен през 2014-а, но истината е, че дори и днес по-старите устройства, основно свързани с мрежовата инфраструктура, носят в себе си поразителната му, унищожителна сила.

„Кървящото сърце“… звучи драматично и е точно такова. Heartbleed е уязвимост в използваната къде ли не библиотека OpenSSL. Тя е с отворен код и на нея се разчита за криптиране на информацията. Или по-скоро се разчиташе, след като изведнъж се оказа, че огромен обем от данни е на практика незащитен и всеки, който е ползвал библиотеката през това дълго време, само може да се надява, че системата му не е поразена.

Причината се оказва… неправилна валидация на въведените данни.

Урокът за всеки, който иска да бъде програмист, е ясен. Удобно е да се ползват безброй външни библиотеки с готов код, но… това понякога е за наша собствена сметка. Дори когато става дума за популярни, уж проверени решения.

5. Софтуерен Хелоуин

Изборът на последния състезател в категорията за най-скъпи или ужасяващи бъгове беше особено труден. В последния кръг отпаднаха “Therac-25“ – бъг, заради който машина за радиационна терапия убива поне 6 човека. Случаят “AT&T“, заради който през 1990 г. 75 милиона телефонни обаждание не се случват, докато софтуерът се обновява. Проблемът “Pre-Alpha“, заради който 23-ма затворници в Мичиган са пуснати преждевременно на свобода.

И така, внимание. Победител стана… бъгът, известен като „денят на живите мъртви“.

Не, няма общо с Хелоуин извън названието. През 2003-а роднините на 8500 пациенти, пребивавали в медицинският център „Сейнт Мери“ в Гранд Рапидс, Мичиган, научават, че роднините им са си отишли от този свят.

А те не са, за разлика от случая с “Therac-25“. Но все пак, уведомени са и застрахователните компании на въпросните пациенти и минава доста време, докато проблемът става ясен и всичките му последици бъдат решени.

Не е ясно как точно се е получила грешката, но в резултат болницата сменя доставчика си на медицински софтуер. И съвсем нормално.

Програмирането е прекрасна професия, забавно и предизвикателно. Както и много други призвания обаче, понякога се превръща в наистина важно занимание, от което зависят човешки съдби. Днес то е по-лесно и достъпно от всякога, но… имайте едно наум. Понякога малкият бъг ражда големите проблеми. А понякога недоизмисленият код е просто смешен.

Но не спирайте, кодирайте!

<a href="https://www.zettahost.bg/author/georgik/" target="_self">Георги Караманев</a>

Георги Караманев

Георги е журналист, писател и Front-end програмист – част от екипа на ZETTAHOST.bg. Има повече от 15 години опит в подготвянето на публикации на технологична тематика за Списание 8, в. „24 часа“ и други медии. През 2019 г. и 2021 г. получи наградите в категория „Технологии и иновации“ от конкурса на Dir.bg за чиста журналистика Web Report.
Последвайте ни

Най-нови публикации:

ChatGPT: 6 ползи от изкуствения интелект за онлайн бизнеса

ChatGPT може да се превърне в тайното оръжие за вашия онлайн бизнес. От изготвянето на съдържание за сайта, през анализа на данни до съставянето на бизнес план, платформата предлага различни решения, а ние ви представихме 6 от основните ползи на изкуствения интелект.

Личен сайт безплатно!

Регистрирай се безплатно и си направи сайт още днес.

Безплатната хостинг услуга на ZETTAHOST.bg няма скрити такси и изисквания за ползване.

Безплатен хостинг

Pin It on Pinterest

Share This