De 10 verste programmeringsfeilene i historien

De 10 verste programmeringsfeilene i historien / programmering

Koden er nesten overalt. Adventen av moderne datamaskiner ankom i 1940-årene. I sin rike historie bidro programmeringen til bedre kommunikasjon, og førte til fremskritt over en myriade av næringer. Alt fra romfart til telekommunikasjon og helsetjenester har blitt revolusjonert og påvirket av kode.

I tillegg kan programmering lære verdifulle livsopplæringer 6 Livsvaner at programmering kan lære deg i dag 6 Livsvaner at programmering kan lære deg i dag Alt viktig som du trenger å vite om å leve et vellykket liv, kan du få fra et dataprogram. Tro ikke på meg? Les videre. Les mer . Men i sin storied fortid, koding smidd ødeleggelse også. Forekomster av en liten dårlig kode forårsaket katastrofe på et stort nivå. Følgende er 10 av de verste programmeringsfeilene i historien.

1. Y2K Bug

År 2000-feilen, aka Y2K Bug eller Millennium Bug, var et kodingsproblem som forventes å forårsake datamaskin pandemonium. På 90-tallet oppførte de fleste dataprogrammer fire siffer år i forkortet versjon. Så 1990 les 90, 1991 skrevet som 91, etc. Ved å forkorte fire siffer år til to siffer, lagret kodere dermed verdifull hukommelse. Men datamaskiner kunne ikke gjenkjenne 2000 som bare 00. Videre forverret problemet, 2000 var et sprangår. Enkelte programvareprogrammer utgjorde ikke den ekstra dagen.

Mange fryktet at Y2K kunne få ned datamaskiner og elektronikk over hele verden. Jeg husker at min første DVD-spiller var skinnende “Y2K-kompatibel” klistremerke. Mens år 2000 ringte inn ganske ujevnt fra en programvare side, koster oppdatering av datamaskiner og apps gjennom alle bransjer omtrent 300 milliarder dollar. Datamaskiner ikke krasjer. Livet fortsatte som normalt. Men ikke uten masse penger og arbeid, som ifølge Slate rapporter kan ha vært bortkastet.

Hvorfor er det en av de verste programmeringsfeilene: Y2K-panikken var ekstremt kostbar, til en mengde på 300 milliarder dollar. I tillegg ble ressurser omdirigert for å fikse dette potensielle problemet.

2. Heartbleed Bug

Image Credit: OpenClipart-vektorer via Pixabay

Det vises i OpenSSL-biblioteket, Heartbleed Bug er et farlig sikkerhetsproblem. Heartbleed - Hva kan du gjøre for å holde seg trygt? Heartbleed - Hva kan du gjøre for å være trygg? Les mer . Transport Layer Security (TLS) protokollen benytter OpenSSL kryptografibiblioteket. På grunn av sin utbredt bruk i TLS, spredte Heartbleed seg raskt. Denne feilen gjør det mulig for nesten alle på Internett å lese minne på maskiner som kjører berørte iterasjoner av OpenSSL. Opptil 64 kb systemminne kan leses. Mens Heartbleed Bug ble avslørt for offentligheten i 2014, rullet den ut i 2012.

Feil inndata validering på grunn av en manglende grensekontroll i TLS-hjertepotens forlengelse forårsaket feilen. Siden det var en feil i hjerteslagets forlengelse, sprang navnet Heartbleed dermed. En 2014-artikkel i The Register rapporterte at 1,5% av de mest populære TLS-aktiverte nettstedene var fortsatt sårbare for Heartbleed-feilen. Men TLS-implementeringer bortsett fra OpenSSL var uberørt. Derfor var Windows-versjonen av TLS og Mozillas Network Security Services upåvirket av Heartbleed Bug. En oppdatering løste problemet med OpenSSL versjon 1.0.1g. Ved å legge til grensekontroller for å hindre buffer overlest, ble Heartbleed Bug vellykket oppdatert.

Hvorfor er det en av de verste programmeringsfeilene: Heartbleed Bug skapte en stor sikkerhetstrussel. Tiden mellom lansering og patching av venstre berørte systemer sårbare i årevis. Når det er et problem med datasårbarhet, skaper dette en stor datasikkerhetsproblemer.

3. World of Warcraft Virus tatt for bokstavelig talt

Bilde Kreditt: WoW Wiki

World of Warcraft en gang lidd et datavirus av en annen type. I 2005 infiltrerte en digital pest noen spillservere. Tusenvis av tegn ble byttet til blodviruset. WoW utvikler Blizzard introduserte Hakkar, gud av blod. De betydelige fiendeinfiserte tegnene med ødelagt blod. Mens blodinfeksjonen først og fremst hadde til hensikt å plage spillere i nærheten av Hakkar's kropp, oppstod spiller-til-spiller-overføring utenfor riket. Denne utilsiktede måten å sprede blodspiret opp fra dyr i kjæledyr. Videre ble ikke-spillerpersoner (NPCer) bærere.

Archimonde ble den første infiserte serveren. Lavt nivå tegn døde umiddelbart. Selv kraftige tegn varet ikke lenger lenger. Selv om en kodende svikt forsvarte viruset via NPC og kjæledyr, var viruset ikke planlagt for utgivelse utenfor Hakkar's rike. Mens tusenvis av spillere døde, World of Warcraft har ikke perma-død. Blizzard fikserte blodviruset med rullende server omstart. Men ikke før spillernes lik kastet WoW landskap.

Hvorfor er det en av de verste programmeringsfeilene: Ok så World of Warcraft kan ikke presentere et datasikkerhetsproblem eller livstruende scenario - men spillere tar underholdningen seriøst. Blizzard tilbrakte timer å tilbakestille servere. Interessant, i spillspillereferdighet etterliknet hva som kan skje i en ekte epidemi med utbredt utbrudd, panikk og et sammenbrudd av sivilisasjonen. Har ikke spilt WoW? Komme i gang med denne komplette nybegynners guide Komme i gang med World of Warcraft: En komplett nybegynners guide Komme i gang med World of Warcraft: En komplett nybegynners guide Her er det du trenger å vite om du aldri har prøvd World of Warcraft før. Les mer .

4. Therac-25

Mens mange programmeringsfeil forårsaker sårbarheter eller døde i spillerne, dårlig kode faktisk kan drepe. Therac-25-katastrofen skjedde med Therac-25 stråleterapimaskinen. Produsert av Atomic Energy of Canada, forårsaket Therac-25 utilsiktede overdoser med utilsiktet stråling og drepte minst seks pasienter. Undersøkelser oppdaget at dårlig programvare og utilstrekkelig systemutvikling forårsaket strålingsdoser. Stort sett skyldtes dette problemer med å utføre automatiserte programvaretester.

Therac-25-strålingsdoseringene tjener som en påminnelse om å lage kode som er enkelt testet. Maskiner som dreper mennesker kan høres ut som science fiction, men Therac-25 hendelsen viser ellers. Men dette var virkelig et resultat av menneskelig feil i kodingen som forårsaket disse problemene. Eksperter inkludert Nancy Leveson fant at uerfarne kodere opprettet buggy programvare. Videre skapte bare en programmerer programvaren, og den var basert på kode fra Therac-6 og Therac-20.

Hvorfor er det en av de verste programmeringsfeilene: Når det er tap av menneskeliv, er en programmeringsfeil absolutt et av de verste eksemplene på dårlig kode.

5. Fly av den gamle Mariner 1

NASA bruker ganske mye teknologi. Den nye Horizons Probe har en PlayStation-prosessor. VP for løsninger Arkitektur og ingeniørarbeid på NVIDIA Marc Hamilton blogger regelmessig om NASAs bruk av NVIDIA-maskinvare. Mariner 1-raketten ble lansert med en romprobe som ble slatt for å utforske Venus. Men litt etter lanseringen avviste raketten fra den planlagte flyvebanen. Mariner 1 ble ødelagt kort tid etter start.

En programmerings mindre feil forårsaket Mariner 1-buggen. Selv om rapporter er forskjellige, peker tegn på en manglende bindestrek. Ifølge NASA-arkivdokumenter, “Mariner 1 Post Flight Review Board fastslått at utelatelsen av en bindestrek i kodede datamaskininstruksjoner i dataredigeringsprogrammet tillot overføring av feil retningssignaler til romfartøyet.” Kjente forfatter Arthur C. Clarke (2001: En Space Odyssey) kalt Mariner 1-katastrofen “den dyreste bindestrek i historien.”

Hvorfor er det en av de verste programmeringsfeilene: Mariner 1 blunderen kunne vært lett å unngå. Offentlig tjeneste kunngjøring: kjære utviklere, vær så snill å teste programvaren din.

6. AT & T-nettverket går ned

Image Credit: Unsplash via Pixabay

Kan du høre meg nå? Nei. Den 15. januar 1990 krasjet over 50 prosent av AT & Ts nettverk. Om ni timer gikk 75 millioner samtaler ubesvarte. Mens opprinnelige rapporter skyldtes hackere, var den faktiske skyldige mye verre: en standard programvareoppdatering. Husk dette neste gang du klager på oppdateringer for Windows 10 Windows oppdateringer er satt til å få mindre irriterende Windows-oppdateringer er satt til å bli mindre irriterende Under det nye systemet, bør Windows 10-oppdateringer være mindre i størrelse, lastes ned mer effektivt og legge mindre belastning på systemressursene dine. En endring du vil nok ikke engang merke til. Les mer . En feil i bare én linje med kode brakte ned AT & Ts nettverk i flere timer. En bryter tilbakestilt seg, men feilen betydde at den andre bryteren sendte en annen melding. I hovedsak en dominoeffekt slått av med nettverket fortsetter å gjenta sin feil. Til slutt utviklet AT & T en løsning ved å redusere nettverksbelastningen. Byttene nullstilles deretter.

Til tross for tunge tester, slettet en enkelt setning nettverket. Programmet ble skrevet i C. En pauseoppgave inne i en if-klausul forblev nestet i en bryterklausul. Det store AT & T utbruddet i 1990 virker som et enkelt problem. Mange tapte samtaler, eller som det ville være tilfelle i dag, en gjeng med ubesvarte tekster, Instagram, Twitter og Snapchat-varsler. Likevel har mangel på kommunikasjon hatt store økonomiske konsekvenser. Bedrifter som American Airlines led økonomiske tap. American Airlines mottok to tredjedeler mindre anrop på grunn av utbrudd. Årsskiftet 1990 fortsetter som et utmerket eksempel på hvorfor testing er viktig. I tillegg fungerer AT & T utbrudd som en påminnelse om den iboende forbindelsen mellom tech og økonomien.

Hvorfor er det en av de verste programmeringsfeilene: Ikke bare gjorde AT & Ts nettverk smuldre, de mange timene det holdt seg nede, skapte en økonomisk tommel.

7. Dag for de levende døde: St. Marys Mercy Hospital

Bildekreditt: Vitalworks via Pixabay

I 2003 ble en programvare feilaktig feilaktig “drept” 8.500 personer. St. Marys Mercy Medical Center i Grand Rapids, Michigan rapporterte feilaktig at mange pasienter døde med en feil i sitt pasientstyringsprogramvare. Denne dårlige kodekatastrofen er ganske ufarlig i forhold til Therac-25 dødsfall, siden ingen faktisk døde. Likevel, lesing om din egen død er forferdelig - spesielt når du er i live og bra.

Falske dødsrapporter var ikke begrenset til pasienter. Denne korrespondansen gikk ut til forsikringsselskaper og trygdekontorer. Fordi Social Security og forsikringsselskaper sørger for at kvalifiserte pasienter har Medicare, presenterte dette et ganske problem. St. Marys Mercy-ansatte informerte pasienter, myndigheter og forsikringsleverandører om feilen. Til slutt fikk ikke programmeringsfeilen mye oppmerksomhet. Det er uklart om kodingsfeilen er korrigert. Men ingen andre falske dødsrapporter oppsto. St. Marys Mercy-sykehus byttet ganske enkelt pasientstyringsprogramvare.

Hvorfor er det en av de verste programmeringsfeilene: Heldigvis døde ingen faktisk. Men skadekontrollen for å sikre fortsatt helsetjenester dekning var et rot.

8. Fangeren Pre-Alpha: Tidlig utgivelse

Bilde Kreditt: Alexas_Fotos via Pixabay

Michigan led en databehandling feil mellom 2003 og 2005. I løpet av den tiden forårsaket en dataprogrammeringsfeil tidlig frigjøring for 23 fanger ved å støte ned setninger for Michigan statsfanger. Heldige innsatte drar nytte av setninger redusert hvor som helst fra 39 til 161 dager. Mens en tilfeldig fengselstrafikk er problematisk, var det heldigvis disse mindre brudd, som narkotika- og forgiftningskostnader.

Programvaren tar sikte på å automatisere prosesser. Ved å kutte ned på manuelle oppgaver, er våre liv teoretisk enklere. Men dette tilfellet med Michigan fanger får komme ut av fengsel tidlig kort igjen viser verdien av programvare testing. En mindre programmeringsfeil bærer massive forgreninger, spesielt i dette eksemplet. Tenk deg om fanger utgitt dabbled i mer alvorlige forbrytelser.

Hvorfor er det en av de verste programmeringsfeilene: Denne hendelsen kunne vært mye verre, men tidlig fangeutgivelse er skremmende.

9. Hartford Coliseum Falls

Selv om 1978-kollapset i Hartford Coliseum kostet et rapportert tap på $ 90 millioner, kunne det ha vært vesentlig verre. Hartford Coliseum kollapset flere timer etter at fansen forlot lokalet. Dens ståltakket tak klarte ikke å støtte vekten av våt snø. En bygning kollapset på grunn av en enkel programmeringsfeil. Koderen av CAD-programvaren som ble brukt til å designe Hartford Coliseum, klarte ikke å regne for flere variabler. I stedet for at programvaresjeferen antok at ståltakstenger bare ville møte ren komprimering.

Ingeniører står overfor mange utfordringer. Bruke programvare bør gjøre arbeidet enklere. Men å unngå å regne for flere variabler fører til enorme utfordringer. Mens du bare kan lapp en feil inn Minecraft, CAD-programvare har direkte innflytelse på virkelige verdensstrukturer.

Hvorfor er det en av de verste programmeringsfeilene: Vel, i det minste døde ingen. Men den økonomiske ødeleggelsen av et estimert tap på $ 90 millioner er stort.

10. Jeg har 99 problemer og en Pentium er en

Vanligvis har Intel-prosessorer bedre ytelse enn AMD-kolleger. AMD tilbyr imidlertid en utmerket pris-til-ytelse ratio AMDs nye plan: Gjør virtuell realitet billigere for deg AMDs nye plan: Gjør virtuell realitet billigere for deg AMD ser ut til å bytte gir i 2016, og hvis alt går bra, er de kommer til å være en stor aktør i det virtuelle virkelighetsmarkedet. Les mer . Men i 1994 hadde Intels Pentium mikroprosessorer et stort problem. 486DX- og Pentium-prosessorene inneholdt en flytende punkt-enhet (FPU). Denne FPUen var en matteprosessor. Tidligere generasjon Intel-prosessorer behandlet matte med heltall. Ved å inkludere en FPU innebygd, lovet denne neste generasjons Pentium-chip betydelig raskere numeriske beregninger.

Pentium FPU benyttet en radix 4 STR algoritme. Feil inntastingsinformasjon forårsaket feilaktige beregninger. Men selv en mindre variasjon kan bety massive problemer som vist i tilfelle av Hartford-sammenbrudd eller Therac-25. Omtrent fem oppføringer på tusen ble utelatt og kaste av Pentiums lange divisjonskapasiteter. Intel hevdet offisielt at en skriptfeil forårsaket oppslagspostproblemer. Uansett er Pentiums matte tilskrevet dårlig kode.

Hvorfor er det en av de verste programmeringsfeilene: Noen få signifikante tall kan ikke virke som mye, men i tilfeller av ingeniør- eller helsepersonell er det viktig.

Dårlig til koden: Programmeringsfeil skjer

Programmeringsfeil har skjedd siden starten av kodingen. Siden bruken av kode i en rekke felt fortsetter å utvide, vil denne trenden sannsynligvis ikke forsvinne når som helst snart.

Det er mange eksempler på programmeringsfeil. Noen er ganske uskyldige som a World of Warcraft bug. Andre resulterer i døden, enten ekte (Therac-25) eller forestilt (St. Marys). Ikke la disse kjente eksemplene avskrekke deg fra koding. Sjekk ut denne veiledningen for å velge riktig webprogrammeringsspråk Hvordan velge riktig webprogrammeringsspråk å bruke Hvordan velge riktig webprogrammeringsspråk å bruke Hvorfor bør enkelte språk bli valgt over andre i et gitt scenario? Denne artikkelen vil gi en sjekkliste over spørsmål som programmereren burde spørre for å velge hvilket språk som skal brukes. Les mer .

Hvilke historiske eksempler på dårlig kode husker du? Legg igjen en kommentar nedenfor med dine valg av programmeringsblunders!

Image Credit: nouskrabs og McIek via Shutterstock.com

Utforsk mer om: Historie, Programmering.