
Peter Holmes
0
1271
3
Kód je téměř všude. Příchod moderních počítačů dorazil ve 40. letech 20. století. Ve své bohaté historii umožnilo programování lepší komunikaci a vedlo k pokroku v celé řadě průmyslových odvětví. Vše od vesmírného cestování po telekomunikace a zdravotnictví bylo revolucí a ovlivněno kódem.
Navíc, programování může naučit cenné životní lekce 6 životních návyků, které by vás mohly naučit programování dnes 6 Životních návyků, které by vás mohly programovat naučit dnes Vše důležité, co potřebujete vědět o životě úspěšného života, můžete získat z počítačového programu. Nevěříš mi? Číst dál. . Avšak ve své bouřlivé minulosti také kódovalo kované ničení. Případy špatného kódu způsobily katastrofu na velké úrovni. Následuje 10 nejhorších chyb programování v historii.
1. Chyba Y2K
Chyba roku 2000, známá jako Y2K Bug nebo Millennium Bug, byla problémem s kódováním, který by měl způsobit počítačové pandemonium. V 90. letech byla většina počítačových programů uvedena ve zkrácené verzi čtyřmístné roky. Takže 1990 četl 90, 1991 psaný jako 91, atd. Zkrácením čtyřmístných let na dvě číslice tak kodéry ušetřily cennou paměť. Počítače však nedokázaly rozpoznat rok 2000 jako jednoduše 00. Rok 2000 byl dalším prohlubováním a byl rokem přestupným. Některé softwarové aplikace neúčtovaly za další den.
Mnoho lidí se obávalo, že Y2K by mohla snížit počet počítačů a elektroniky po celém světě. Pamatuji si svůj první DVD přehrávač nesoucí lesklý “V souladu s Y2K” nálepka. Zatímco rok 2000 zazvonil z hlediska softwaru poměrně nepravidelně, aktualizace počítačů a aplikací v každém odvětví stála zhruba 300 miliard dolarů. Počítače nespadly. Život pokračoval jako obvykle. Ale ne bez spousty peněz a práce, což podle Slateho zpráv mohlo být plýtváním.
Proč je to jedna z nejhorších chyb programování: Panika Y2K byla mimořádně nákladná a to ve výši 300 miliard dolarů. Navíc byly zdroje přesměrovány k vyřešení tohoto potenciálního problému.
2. Srdeční chyba
Obrázek Kredit: OpenClipart-Vectors přes Pixabay
Heartbleed Bug je v knihovně OpenSSL nebezpečnou bezpečnostní chybou Heartbleed - co můžete udělat, abyste zůstali v bezpečí? Heartbleed - Co můžete udělat, abyste zůstali v bezpečí? . Protokol Transport Layer Security (TLS) využívá kryptografickou knihovnu OpenSSL. Vzhledem k jeho rozsáhlému použití v TLS se Heartbleed rychle rozšířil. Tato chyba umožňuje prakticky komukoli na internetu číst paměť na počítačích, které provozují ovlivněné iterace OpenSSL. Bylo možné přečíst až 64 kb systémové paměti. Zatímco Heartbleed Bug byl odhalen veřejnosti v roce 2014, byl spuštěn v roce 2012.
Nesprávné ověření vstupu z důvodu chybějící kontroly mezí v rámci rozšíření srdečního rytmu TLS způsobilo chybu. Protože se jednalo o chybu v prodloužení prezenčního signálu, vytvořilo se jméno Heartbleed. V článku z roku 2014 v registru bylo uvedeno, že 1,5% z nejpopulárnějších webů podporujících TLS zůstalo zranitelných vůči chybě Heartbleed. Implementace TLS kromě OpenSSL však zůstaly nedotčeny. Verze TLS ve Windows a služba Mozilla Network Security Services proto nebyla ovlivněna chybou Heartbleed. Oprava nakonec opravila problém s OpenSSL verze 1.0.1g. Přidáním kontrol mezí, aby se zabránilo přetečení vyrovnávací paměti, byla chyba Heartbleed Bug úspěšně opravena.
Proč je to jedna z nejhorších chyb programování: Chyba Heartbleed vytvořila hlavní bezpečnostní hrozbu. Čas mezi spuštěním a opravou způsobil, že ovlivněné systémy byly roky zranitelné. Pokaždé, když dojde k problému s zranitelností počítače, vytváří to velké obavy týkající se zabezpečení dat.
3. Virus World of Warcraft odebraný příliš doslova
Obrázek Kredit: WoW Wiki
Svět války jednou trpěl počítačovým virem jiného druhu. V roce 2005 digitální mor infiltroval několik herních serverů. Tisíce postav padly na kořist k viru krve. Wow vývojář Blizzard představil Hakkara, boha krve. Značný nepřítel infikoval charaktery s poškozenou krví. Zatímco infekce krve původně zamýšlela postihnout hráče v blízkosti Hakkarova těla, k přenosu mezi hráči došlo mimo říši. Tento neúmyslný způsob šíření viru krve vznikl u domácích mazlíčků. Navíc se z hráčů (NPC) staly nosiče.
Archimonde se stal prvním infikovaným serverem. Postavy nízké úrovně okamžitě zemřely. Ani mocné postavy netrvaly dlouho. Přestože kódovací závada udržovala virus prostřednictvím NPC a mazlíčků, virus nebyl plánován na vydání mimo Hakkarovo království. Zatímco tisíce hráčů zemřely, Svět války nevykazuje smrt perma. Blizzard opravil krevní virus restartováním serveru. Ale ne dříve, než mrtvola hráčů posypala Wow krajina.
Proč je to jedna z nejhorších chyb programování: Dobře tedy Svět války nemusí představovat problém s bezpečností dat nebo život ohrožující scénář - ale hráči berou svoji zábavu vážně. Blizzard strávil hodiny resetováním serverů. Je zajímavé, že chování hráčů ve hře napodobovalo to, co by se mohlo stát v epidemii skutečného světa s bujným vypuknutím, panikou a kolapsem civilizace. Nehrál jsem Wow? Začínáme s tímto úplným průvodcem pro nováčky Začínáme s World of Warcraft: Kompletní průvodce pro začátečníky Začínáme s World of Warcraft: Kompletní průvodce pro začátečníky Zde je vše, co potřebujete vědět, pokud jste ještě nikdy World of Warcraft nezkoušeli. .
4. Therac-25
Zatímco mnoho chyb programování způsobuje zranitelnost nebo mrtvé hráče ve hře, ve skutečnosti je to špatný kód umět zabít. S radiační terapií Therac-25 došlo k katastrofě Therac-25. Produkoval kanadská atomová energie, Therac-25 způsobil náhodné předávkování radiací a zabil nejméně šest pacientů. Vyšetřování zjistilo, že špatný software a nedostatečný vývoj systému způsobily předávkování radiací. Většinou to bylo způsobeno obtížemi při provádění automatizovaných softwarových testů.
Předávkování radiací Therac-25 slouží jako připomenutí k vytvoření snadno testovatelného kódu. Stroje zabíjející lidi mohou znít jako sci-fi, ale incident Therac-25 se ukáže jinak. Ale to byl opravdu výsledek lidské chyby v kódování, které způsobilo tyto problémy. Odborníci včetně Nancy Leveson zjistili, že nezkušení kodéři vytvořili buggy software. Kromě toho software vytvořil pouze jeden programátor a byl založen na kódu z Therac-6 a Therac-20.
Proč je to jedna z nejhorších chyb programování: Kdykoli dojde ke ztrátě lidského života, programová chyba je absolutně jedním z nejhorších příkladů špatného kódu.
5. Let starověkého námořníka 1
NASA používá docela trochu tech. Sonda New Horizons Probe využívá procesor PlayStation. VP of Solutions Architecture and Engineering ve společnosti NVIDIA Marc Hamilton pravidelně blogy o používání hardwaru NVIDIA společností NASA. Raketa Mariner 1 byla vypuštěna s kosmickou sondou, která měla prozkoumat Venuši. Nicméně mírně po startu se raketa odchýlila od zamýšlené dráhy letu. Námořník 1 byl zničen krátce po vzletu.
Malá chyba programátora způsobila chybu Mariner 1. Přestože se zprávy liší, známky poukazují na chybějící spojovník. Podle archivních dokumentů NASA, “Rada pro hodnocení letu po letu 1 stanovila, že vynechání spojovníku v kódovaných počítačových instrukcích v programu pro editaci dat umožnilo přenos nesprávných naváděcích signálů do kosmické lodi.” Renomovaný autor Arthur C. Clarke (2001: Space Odyssey) daboval katastrofu Mariner 1 “nejdražší spojovník v historii.”
Proč je to jedna z nejhorších chyb programování: Nepochopení Mariner 1 se dalo snadno vyhnout. Oznámení o veřejné službě: Vážení vývojáři, otestujte prosím svůj software.
6. Síť AT&T klesá
Image Credit: Unsplash via Pixabay
Slyšíš mě teď? Ne. 15. ledna 1990 došlo k havárii více než 50 procent sítě AT&T. Za devět hodin zůstalo nezodpovězeno 75 milionů hovorů. Zatímco počáteční zprávy obviňovali hackery, skutečný viník byl mnohem horší: standardní aktualizace softwaru. Pamatujte si to při příštím stížnostech na aktualizace systému Windows 10 Aktualizace systému Windows jsou nastaveny na méně otravné Aktualizace systému Windows jsou nastaveny na méně otravné Podle nového systému by aktualizace systému Windows 10 měly být menší velikosti, měly by se stahovat efektivněji a méně zatěžovat. na vašich systémových prostředcích. Změna, kterou si pravděpodobně ani nevšimnete. . Chyba v jednom řádku kódu způsobila po dobu několika hodin výpadek sítě AT&T. Přepínač se sám resetoval, ale chyba znamenala, že druhý přepínač poslal další zprávu. V podstatě dominový efekt odstartoval, když síť pokračovala v opakování své chyby. Společnost AT&T nakonec navrhla řešení snížením zatížení sítě. Přepínače se pak resetují.
Navzdory náročným testům síť postihla jediné prohlášení. Program byl napsán v C. Příkaz break uvnitř klauzule if zůstal vnořen do klauzule switch. Velký výpadek AT&T v roce 1990 se jeví jako jednoduchý problém. Spousta zmeškaných hovorů, nebo jako by tomu bylo dnes, spousta zmeškaných textů, Instagram, Twitter a Snapchat oznámení. Přesto nedostatek komunikace měl obrovské peněžní dopady. Společnosti jako American Airlines utrpěly finanční ztráty. American Airlines přijaly o dvě třetiny méně hovorů kvůli výpadku. Výpadek z roku 1990 přetrvává jako vynikající příklad toho, proč je testování důležité. Výpadek AT&T navíc slouží jako připomínka přirozené souvislosti mezi technologií a ekonomikou.
Proč je to jedna z nejhorších chyb programování: Síť AT & T se nejen rozpadla, ale několik hodin, kdy zůstala, vytvořila finanční pád.
7. Den živých mrtvých: Nemocnice sv. Marie
Image Credit: Vitalworks prostřednictvím Pixabay
V roce 2003 došlo k nesprávnému závadu softwaru “zabil” 8 500 lidí. Mary's Mercy Medical Center v Grand Rapids, Michigan chybně uvedla, že mnoho pacientů zemřelo závadou v jejich softwarovém systému pro správu pacientů. Tato katastrofa špatného kódu je ve srovnání s úmrtím na Theracu-25 poněkud neškodná, protože ve skutečnosti nikdo nezemřel. Čtení o vašem vlastním zániku je však znepokojující - zejména když jste naživu a dobře.
Falešné zprávy o úmrtí se neomezovaly pouze na pacienty. Tato korespondence šla pojišťovnám a úřadům sociálního zabezpečení. Protože poskytovatelé sociálního zabezpečení a pojištění zajišťují, aby pacienti měli Medicare, představuje to docela problém. Zaměstnanci společnosti St. Mary's Mercy informovali o této chybě pacienty, vládní agentury a poskytovatele pojištění. Nakonec se programovací chyba příliš nezabývala. Není jasné, zda byla chyba kódování někdy opravena. Žádné další zprávy o falešné smrti se však neobjevily. Nemocnice St. Mary's Mercy jednoduše změnila software pro správu pacientů.
Proč je to jedna z nejhorších chyb programování: Naštěstí nikdo vlastně nezemřel. Ovšem kontrola škod zajišťujících pokračující zdravotní péči byla nepořádkem.
8. Vězně před alfa - předčasné propuštění
Image Credit: Alexas_Fotos prostřednictvím Pixabay
Michigan utrpěl v letech 2003 až 2005 závadu ve zpracování dat. Během této doby chyba v programování v počítači způsobila předčasné propuštění 23 vězňů tím, že odhodila tresty pro státní vězně v Michiganu. Šťastní vězni měli prospěch z trestů snížených kdekoli od 39 do 161 dnů. Přestože jakékoli neúmyslné ukončení trestu odnětí svobody je problematické, naštěstí to byly menší přestupky, jako jsou poplatky za drogy a zpronevěry.
Software se často zaměřuje na automatizaci procesů. Tím, že se omezíme na ruční úkoly, jsou naše životy teoreticky snazší. Tento případ, kdy se vězni z Michiganu dostat z vězení předčasně, však dokazuje hodnotu testování softwaru. Menší chyba programování přináší masivní důsledky, zejména v tomto příkladu. Jen si představte, že když vězni propustili dabbled ve vážnějších zločinech.
Proč je to jedna z nejhorších chyb programování: Tento incident mohl být mnohem horší, ale předčasné propuštění vězně je děsivé.
9. Hartford Coliseum Falls
Přestože kolapsu Hartford Coliseum v roce 1978 stála nahlášenou ztrátu 90 milionů dolarů, mohla být podstatně horší. Hartford Coliseum se zhroutilo několik hodin poté, co fanoušci místo opustili. Jeho ocelová mřížová střecha nedokázala unavit váhu mokrého sněhu. Budova se zhroutila kvůli jednoduché programovací chybě. Kodér softwaru CAD, který se použil při návrhu Hartford Coliseum, nedokázal zohlednit více proměnných. Místo toho softwarový programátor předpokládal, že ocelové střešní podpěry budou čelit pouze čisté kompresi.
Inženýři čelí mnoha výzvám. Používání softwaru by mělo usnadnit jejich práci. Nezohlednění několika proměnných však vede k obrovským výzvám. I když můžete jednoduše opravit chybu v Minecraft, Software CAD přímo ovlivňuje struktury skutečného světa.
Proč je to jedna z nejhorších chyb programování: Aspoň nikdo nezemřel. Ekonomická devastace odhadované ztráty 90 milionů dolarů je však obrovská.
10. Mám 99 problémů a Pentium je jedna
Procesory Intel se obecně vyznačují lepším výkonem než protějšky AMD. AMD však nabízí vynikající poměr cena / výkon Nový plán AMD: Udělejte si virtuální realitu levnější pro vás Nový plán AMD: Udělejte virtuální realitu levnější pro vás Zdá se, že AMD přepíná zařízení v roce 2016, a pokud vše půjde dobře, jsou bude velkým hráčem na trhu virtuální reality. . Ale v roce 1994 utrpěly hlavní problémy mikroprocesory Intel Pentium. Procesory 486DX a Pentium obsahovaly jednotku s pohyblivou řádovou čárkou (FPU). Tento FPU byl matematický koprocesor. Předchozí generace procesorů Intel zpracovávala matematiku s celými čísly. Zahrnutím vestavěné FPU tento čip Pentium nové generace sliboval výrazně rychlejší numerické výpočty.
Pentium FPU používal algoritmus radix 4 STR. Nesprávně zadané informace způsobily mírně nesprávné výpočty. Ale i malá odchylka může znamenat obrovské problémy, které se projevují v případě Hartfordova kolapsu nebo Therac-25. Asi pět záznamů z tisíců bylo vynecháno, což odhazovalo schopnosti Pentiumu na dlouhou divizi. Intel oficiálně prohlásil, že chyba skriptování způsobila problémy se zadáním vyhledávání. Ať tak či onak, matematika Pentia je připisována špatnému kódu.
Proč je to jedna z nejhorších chyb programování: Několik významných osob se nemusí zdát jako moc, ale v případech strojírenství nebo zdravotní přesnosti je to nezbytné.
Špatný kód: Programovací chyby se stávají
K programovacím chybám došlo od počátku kódování. Protože se používání kódu v různých oborech neustále rozšiřuje, tento trend pravděpodobně brzy nezmizí.
Existuje mnoho příkladů chyb programování. Některé jsou docela neškodné jako Svět války Chyba. Jiní mají za následek smrt buď skutečnou (Therac-25), nebo imaginovanou (St. Mary's). Nenechte tyto slavné příklady odradit od kódování. Podívejte se na tohoto průvodce, jak vybrat správný programovací jazyk pro web Jak zvolit správný programovací jazyk pro web Jak vybrat správný programovací jazyk pro web Proč by se měly v určitých scénářích vybrat určité jazyky před ostatními? Tento článek obsahuje kontrolní seznam otázek, na které by se měl programátor zeptat, aby si vybral, který jazyk použije. .
Jaké historické příklady špatného kódu si pamatujete? Zanechte komentář níže s výběrem chyb programování!
Image Credit: nouskrabs and McIek prostřednictvím Shutterstock.com