De 10 værste programmeringsfejl i historien

  • William Charles
  • 0
  • 5131
  • 1302
Reklame

Kode findes næsten overalt. Fremkomsten af ​​moderne computere ankom i 1940'erne. I sin rige historie aktiverede programmering bedre kommunikation og førte til fremskridt på tværs af en lang række industrier. Alt fra rumrejser til telekommunikation og sundhedsvæsen er blevet revolutioneret og påvirket af kode.

Plus, programmering kan lære værdifulde livslektioner 6 Livsvaner, som programmering kunne lære dig i dag 6 Livsvaner, at programmering kunne lære dig i dag Alt, hvad du har brug for at vide om at leve et vellykket liv, kan du få fra et computerprogram. Tro mig ikke? Læs videre. . I sin store fortid kodede imidlertid også smed ødelæggelse. Forekomster af en smule dårlig kode forårsagede katastrofe på et større niveau. Følgende er 10 af de værste programmeringsfejl i historien.

1. Y2K-fejl

År 2000-bug, også kendt som Y2K Bug eller Millennium Bug, var et kodningsproblem, der blev forudsagt at forårsage computer-pandemonium. I 90'erne listede de fleste computerprogrammer fire cifrede år i en forkortet version. Så 1990 læste 90, 1991 skrevet som 91 osv. Ved at forkorte fire-cifrede år til to cifre, sparte kodere således værdifuld hukommelse. Men computere var ikke i stand til at genkende 2000 som simpelthen 00. Yderligere forværrede problemet 2000 var et skuddår. Visse softwareapplikationer tog ikke højde for den ekstra dag.

Mange frygtede, at Y2K kunne nedbringe computere og elektronik over hele verden. Jeg kan huske min første DVD-afspiller med en skinnende “Y2K-kompatibel” klistermærke. Mens året 2000 var meget uhensigtsmæssigt fra en softwareside, kostede opdatering af computere og apps i alle brancher ca. 300 milliarder dollars. Computere styrtede ikke ned. Livet gik som normalt. Men ikke uden masser af penge og arbejde, som ifølge Slate-rapporter muligvis har været spild.

Hvorfor det er en af ​​de værste programmeringsfejl: Y2K-panikken var ekstremt dyr, svarende til $ 300 milliarder. Plus, ressourcer blev omdirigeret til at løse dette potentielle problem.

2. Heartbleed Bug

Billedkredit: OpenClipart-Vectors via Pixabay

Heartbleed Bug, der optræder i OpenSSL-biblioteket, er en farlig sikkerhedssårbarhed Heartbleed - Hvad kan du gøre for at forblive sikker? Heartbleed - Hvad kan du gøre for at være sikker? . Transport Layer Security (TLS) -protokollen anvender OpenSSL-kryptografibiblioteket. På grund af dens udbredte anvendelse i TLS spredte Heartbleed sig hurtigt. Denne fejl giver praktisk talt enhver på internettet mulighed for at læse hukommelse på maskiner, der kører påvirkede iterationer af OpenSSL. Op til 64 kb systemhukommelse kunne læses. Mens Heartbleed Bug blev afsløret for offentligheden i 2014, rullede den ud i 2012.

Forkert indgangsvalidering på grund af en manglende grænsekontrol i TLS-hjerteslagudvidelsen forårsagede fejlen. Da det var en fejl i hjerteslagsudvidelsen, gød navnet Heartbleed således. En artikel fra 2014 i The Register rapporterede, at 1,5% af de mest populære TLS-aktiverede websteder forblev sårbare over for Heartbleed-bug. Imidlertid var TLS-implementeringer bortset fra OpenSSL ikke berørt. Derfor blev Windows-versionen af ​​TLS og Mozilla's Network Security Services ikke påvirket af Heartbleed Bug. En patch løste til sidst problemet med OpenSSL version 1.0.1g. Ved at tilføje grænsekontrol for at forhindre overlæsning af puffer blev Heartbleed Bug med succes patchet.

Hvorfor det er en af ​​de værste programmeringsfejl: Heartbleed Bug skabte en stor sikkerhedstrussel. Tiden mellem lancering og opdatering efterlod berørte systemer sårbare i årevis. Hver gang der er et computersårbarhedsproblem, skaber dette et enormt datasikkerhedsproblem.

3. World of Warcraft-virus taget for bogstaveligt

Billedkredit: WoW Wiki

World of Warcraft engang led af en computervirus af en anden slags. I 2005 infiltrerede en digital pest et par spilservere. Tusinder af figurer faldt bytte for blodvirussen. WoW udvikler Blizzard introducerede Hakkar, blodet. De betydelige fjender inficerede figurer med ødelagt blod. Mens blodinfektionen oprindeligt havde til hensigt at plage spillere i nærheden af ​​Hakkars krop, skete spiller-til-spiller-overførsel uden for riket. Dette utilsigtede middel til at sprede blodvirussen, der er skabt fra kæledyr i spillet. Desuden blev ikke-spillerfigurer (NPC'er) bærere.

Archimonde blev den første inficerede server. Karakterer på lavt niveau døde øjeblikkeligt. Selv magtfulde tegn varede ikke meget længere. Selvom en kodende fejl foreviget virussen via NPC'er og kæledyr, var virussen ikke planlagt til frigivelse uden for Hakkars rige. Mens tusinder af spillere døde, World of Warcraft indeholder ikke perma-død. Blizzard fikseret blodvirussen med rullende server genstarter. Men ikke før spillerkorps strødede WoW landskab.

Hvorfor det er en af ​​de værste programmeringsfejl: Ok så World of Warcraft viser måske ikke et datasikkerhedsspørgsmål eller livstruende scenario - men gamere tager deres underholdning alvorligt. Blizzard brugte timer på at nulstille servere. Interessant nok efterlignede spillerens opførsel, hvad der måtte ske i en real-epidemi med voldsomt udbrud, panik og et kollaps af civilisationen. Har ikke spillet WoW? Kom i gang med denne komplette newbie-guide Kom godt i gang med World Of Warcraft: En komplet newbie-guide Kom godt i gang med World Of Warcraft: En komplet newbie-guide Her er, hvad du har brug for at vide, hvis du aldrig har prøvet World of Warcraft før. .

4. Therac-25

Mens mange programmeringsfejl forårsager sårbarheder eller døde in-game-spillere, er faktisk dårlig kode kan dræbe. Therac-25-katastrofen opstod med Therac-25 strålebehandlingsmaskine. Produceret af Atomic Energy i Canada forårsagede Therac-25 utilsigtede strålingsoverdoser og dræbte mindst seks patienter. Undersøgelser opdagede, at dårlig software og utilstrækkelig systemudvikling forårsagede overdosering af stråling. Dette skyldes stort set vanskelighederne med at udføre automatiserede softwaretests.

Therac-25-stråledoseringerne tjener som en påmindelse om at oprette kode, der let kan testes. Maskiner, der dræber mennesker, kan lyde som science fiction, men Therac-25-hændelsen viser andet. Men dette var virkelig et resultat af menneskelig fejl i kodning, der forårsagede disse problemer. Eksperter inklusive Nancy Leveson fandt, at uerfarne kodere skabte buggy-software. Desuden oprettede kun en programmerer softwaren, og den var baseret på kode fra Therac-6 og Therac-20.

Hvorfor det er en af ​​de værste programmeringsfejl: Hver gang der er menneskelivstab, er en programmeringsfejl absolut et af de værste eksempler på dårlig kode.

5. Flyvning af den gamle søfarendes 1

NASA bruger en hel del tech. Its New Horizons Probe beskæftiger en PlayStation CPU. VP for Solutions Architecture and Engineering hos NVIDIA Marc Hamilton blogger regelmæssigt om NASAs brug af NVIDIA-hardware. Mariner 1-raketten blev lanceret med en rumsonde, der er beregnet til at udforske Venus. Dog lidt efter lanceringen afvigede raketten fra den tilsigtede flyvevej. Mariner 1 blev ødelagt kort efter start.

En programmerers mindre fejl forårsagede Mariner 1-bug. Selvom rapporter er forskellige, peger tegn på en manglende bindestrek. Ifølge NASA arkivdokumenter, “Mariner 1 Post Flight Review Board konstaterede, at udeladelsen af ​​en bindestreg i kodet computerinstruktion i dataredigeringsprogrammet muliggjorde transmission af forkerte styresignaler til rumfartøjet.” Den kendte forfatter Arthur C. Clarke (2001: A Space Odyssey) kaldte Mariner 1-katastrofen “den dyreste bindestreg i historien.”

Hvorfor det er en af ​​de værste programmeringsfejl: Mariner 1-bommerten kunne let have været undgået. Offentlig service-meddelelse: kære udviklere, prøv din software.

6. AT&T-netværket går ned

Billedkredit: Frakobl via Pixabay

Kan du høre mig nu? Nej. Den 15. januar 1990 styrtede over 50 procent af AT & T's netværk. På ni timer gik 75 millioner opkald ubesvarede. Mens de første rapporter beskyldte hackere, var den faktiske skyldige meget værre: en standard softwareopdatering. Husk dette, næste gang du klager over Windows 10-opdateringer Windows-opdateringer er indstillet til at blive mindre irriterende Windows-opdateringer er indstillet til at blive mindre irriterende Under det nye system skal Windows 10-opdateringer være mindre i størrelse, downloades mere effektivt og lægge mindre belastning på dine systemressourcer. En ændring, som du sandsynligvis ikke engang vil bemærke. . En fejl i kun en kodelinje bragte AT & T's netværk ned i flere timer. En switch nulstiller sig selv, men fejlen betød, at den anden switch sendte en anden meddelelse. Grundlæggende startede en dominoeffekt, idet netværket fortsat gentog sin fejl. Til sidst udtænkte AT&T en løsning ved at reducere netværksbelastningen. Skifterne nulstilles derefter selv.

På trods af tunge test kramede en enkelt erklæring netværket. Programmet blev skrevet i C. En pauseerklæring inde i en hvis klausul forblev indlejret i en switchklausul. Det store AT&T-strømafbrydelse i 1990 virker som et simpelt problem. Masser af ubesvarede opkald, eller som det ville være tilfældet i dag en masse ubesvarede tekster, Instagram, Twitter og Snapchat-underretninger. Ikke desto mindre havde manglen på kommunikation store monetære virkninger. Virksomheder som American Airlines led økonomiske tab. American Airlines modtog to tredjedele mindre opkald på grund af strømafbrydelsen. Udbruddet i 1990 fortsætter som et glimrende eksempel på, hvorfor test er vigtigt. Derudover fungerer AT&T-strømafbrydelsen som en påmindelse om den iboende forbindelse mellem tech og økonomien.

Hvorfor det er en af ​​de værste programmeringsfejl: Ikke kun knuste AT & T's netværk, de flere timer, hvor det forblev, skabte en økonomisk tumle.

7. Day of the Living Dead: St. Mary's Mercy Hospital

Billedkredit: Vitalworks via Pixabay

I 2003 fejler en software forkert “dræbt” 8.500 mennesker. St. Mary's Mercy Medical Center i Grand Rapids, Michigan rapporterede fejlagtigt, at mange patienter er døde med et svigt i deres patientstyringssoftwaresystem. Denne dårlige kodekatastrofe er temmelig ufarlig sammenlignet med Therac-25-dræbte, da ingen faktisk døde. Stadig er det foruroligende at læse om din egen død - især når du er i live og godt.

Indberetning af falske dødsfald var ikke begrænset til patienter. Denne korrespondance gik ud til forsikringsselskaber og kontorer for social sikring. Fordi social sikring og forsikringsudbydere sikrer, at støtteberettigede patienter har Medicare, udgør dette et ganske problem. St. Mary's Mercy-medarbejdere informerede patienter, myndigheder og forsikringsudbydere om fejlen. I sidste ende fik programmeringsfejlen ikke særlig opmærksomhed. Det er uklart, om kodningsfejlen nogensinde blev rettet. Der opstod imidlertid ingen yderligere falske dødsrapporter. St. Mary's Mercy hospital skiftede simpelthen patientstyringssoftware.

Hvorfor det er en af ​​de værste programmeringsfejl: Heldigvis døde faktisk ingen. Men skadereguleringen for at sikre fortsat sundhedsdækning var et rod.

8. Præman-alfa: Tidlig frigivelse

Billedkredit: Alexas_Fotos via Pixabay

Michigan fik en databehandlingsfejl mellem 2003 og 2005. I løbet af denne tid forårsagede en fejl i computerprogrammeringen tidlig frigørelse for 23 fanger ved at nedlægge domme for Michigan statsfanger. Heldige indsatte drage fordel af domme reduceret overalt fra 39 til 161 dage. Selvom enhver utilsigtet opsigelse af fængselsstraf er problematisk, var dette heldigvis mindre overtrædelser, som narkotika- og underslagsafgift.

Software har ofte til formål at automatisere processer. Ved at skære ned på manuelle opgaver er vores liv teoretisk lettere. Men denne sag med fanger i Michigan, der kommer ud af tidlige kort i fængslet, viser endnu en gang værdien af ​​softwaretest. En mindre programmeringsfejl medfører enorme forgreninger, især i dette eksempel. Forestil dig, hvis fanger, der blev frigivet, fortabes i mere alvorlige forbrydelser.

Hvorfor det er en af ​​de værste programmeringsfejl: Denne hændelse kunne have været meget værre, men frigivelse af fanger er skræmmende.

9. Hartford Coliseum Falls

Selvom Hartford Coliseum kollaps koster et rapporteret tab på 90 millioner dollars, kunne det have været væsentligt værre. Hartford Coliseum kollapsede flere timer efter, at fans forlod lokaliten. Dets stålgitterede tag understøtter ikke vægten af ​​våd sne. En bygning kollapset på grund af en simpel programmeringsfejl. Koderen for CAD-softwaren, der blev brugt til at designe Hartford Coliseum, kunne ikke redegøre for flere variabler. I stedet antog softwareprogrammereren, at tagstøtter af stål kun ville møde ren kompression.

Ingeniører står over for mange udfordringer. Brug af software skal gøre deres arbejde lettere. Manglende hensyntagen til flere variabler fører imidlertid til enorme udfordringer. Mens du blot kan lappe en fejl i Minecraft, CAD-software påvirker direkte strukturer i den virkelige verden.

Hvorfor det er en af ​​de værste programmeringsfejl: Nå, i det mindste ingen døde. Men den økonomiske ødelæggelse af et anslået tab på $ 90 millioner er enormt.

10. Jeg fik 99 problemer, og et Pentium er et

Generelt har Intel-processorer en bedre ydelse end AMD-modparter. AMD tilbyder dog et fremragende forhold mellem pris og ydelse AMDs nye plan: Gør virtuel virkelighed billigere for dig AMDs nye plan: Gør virtuel virkelighed billigere for dig AMD ser ud til at skifte gear i 2016, og hvis alt går godt, er de bliver en stor spiller på markedet for virtual reality. . Men i 1994 led Intels Pentium-mikroprocessorer et stort problem. 486DX og Pentium CPU'er indeholdt en flydende enhed (FPU). Denne FPU var en matematisk coprocessor. Tidligere generation Intel CPU'er behandlede matematik med heltal. Ved at inkludere en FPU indbygget lovede denne næste generations Pentium-chip betydeligt hurtigere numeriske beregninger.

Pentium FPU anvendte en radix 4 STR-algoritme. Forkert indtastede oplysninger forårsagede lidt forkerte beregninger. Men selv en mindre variation kan betyde massive problemer, som det vises i tilfælde af Hartford-sammenbruddet eller Therac-25. Cirka fem poster i tusind blev udeladt og kastede Pentiums lange divisionskapaciteter væk. Intel hævdede officielt, at en scripting-fejl forårsagede opslagsproblemer ved opslag. Uanset hvad tilskrives Pentiums matematik til dårlig kode.

Hvorfor det er en af ​​de værste programmeringsfejl: Et par betydningsfulde tal fra ser måske ikke meget ud, men i tilfælde af teknik eller præcision i sundhedsvæsenet er det vigtigt.

Kodet er dårligt: ​​Programmeringsfejl sker

Der er opstået fejl i programmeringen siden kodningens start. Idet brugen af ​​kode i forskellige felter fortsætter med at udvide, forsvinder denne tendens sandsynligvis ikke snart.

Der er mange eksempler på programmeringsfejl. Nogle er ret uskyldige som en World of Warcraft insekt. Andre resulterer i død enten reel (Therac-25) eller forestillet (St. Mary's). Lad ikke disse berømte eksempler afskrække dig fra kodning. Tjek denne vejledning til valg af det rigtige webprogrammeringssprog Sådan vælges det rigtige sprog til programmering af web til at bruge Sådan vælges det rigtige webprogrammeringssprog, der skal bruges Hvorfor skal der vælges visse sprog frem for andre i et givet scenario? Denne artikel indeholder en tjekliste over spørgsmål, som programmereren skal stille for at vælge hvilket sprog, der skal bruges. .

Hvilke historiske eksempler på dårlig kode husker du? Efterlad en kommentar nedenfor med dine valg af programmeringsfejl!

Billedkredit: nouskrabs og McIek via Shutterstock.com




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.