De 10 sämsta programmeringsfel i historien
Koden är nästan överallt. Tillkomsten av moderna datorer anlände på 1940-talet. I sin rika historia möjliggjorde programmering bättre kommunikation och ledde till framsteg inom en mängd industrier. Allt från rymdresor till telekommunikation och hälsovård har revolutionerats och påverkats av kod.
Dessutom kan programmering undervisa värdefulla livsundervisning 6 Livsvanor som programmering kan lära dig idag 6 Livsvanor som programmering kan lära dig idag Det är viktigt att du behöver veta om att leva ett framgångsrikt liv, du kan få från ett datorprogram. Tro mig inte? Läs vidare. Läs mer . Men i sitt förflutna förflutna, kodande smidd förstörelse också. Inställningar av lite dålig kod orsakade katastrof på en stor nivå. Följande är 10 av de värsta programmeringsfel i historien.
1. Y2K Bug
År 2000-felet, aka Y2K Bug eller Millennium Bug, var ett kodproblem som förutspåddes orsaka datorpandemonium. På 90-talet listades de flesta datorprogram i fyra stycken år i förkortad version. Så 1990 läste 90, 1991 skrivet som 91 etc. Genom att förkorta fyrsiffriga år till två siffror sparade kodarna värdefullt minne. Men datorer kunde inte identifiera 2000 som bara 00. Vidare förvärrade problemet, 2000 var ett språngår. Vissa program tillämpade inte den extra dagen.
Många fruktade att Y2K kunde sätta ner datorer och elektronik över hela världen. Jag kommer ihåg att min första DVD-spelare har en glänsande bild “Y2K-kompatibel” klistermärke. Medan år 2000 ringde in ganska oförsonligt från en mjukvaru sida, uppdaterade datorer och appar i alla branscher kostar ungefär 300 miljarder dollar. Datorer kraschar inte. Livet fortsatte som vanligt. Men inte utan massor av pengar och arbete, vilket enligt Slate rapporter kan ha varit ett slöseri.
Varför det är ett av de värsta programmeringsfel: Y2K-paniken var extremt kostsam, till ett belopp på 300 miljarder dollar. Dessutom resurser omdirigerades för att åtgärda detta potentiella problem.
2. Heartbleed Bug
Innehåller sig i OpenSSL-biblioteket, Heartbleed Bug är ett farligt säkerhetsproblem Heartbleed - Vad kan du göra för att vara säker? Heartbleed - Vad kan du göra för att vara säker? Läs mer . Transport Layer Security (TLS) -protokollet använder OpenSSL-kryptografibiblioteket. På grund av sin utbredda användning i TLS sprids Heartbleed snabbt. Denna bugg tillåter nästan alla på internet att läsa minne på maskiner som kör påverkade iterationer av OpenSSL. Upp till 64 kb systemminne kunde läsas. Medan Heartbleed Bug blev avslöjad för allmänheten 2014, rullade den ut 2012.
Felaktig inmatningsvalidering på grund av en saknad gränskontroll inom TLS-hjärtslagstillägget orsakade felet. Eftersom det var en bugg i hjärtslagsförlängningen, så namnet Heartbleed sågade. En artikel i 2014 i registret rapporterade att 1,5% av de mest populära TLS-aktiverade sidorna var sårbara för Heartbleed-buggen. Men TLS-implementeringar bortsett från OpenSSL var orörda. Därför var Windows-versionen av TLS och Mozillas nätverkssäkerhetstjänster opåverkad av Heartbleed Bug. En plåster fixade så småningom problemet med OpenSSL version 1.0.1g. Genom att lägga till gränskontroller för att förhindra att bufferten överläses, har Heartbleed Bug blivit framgångsrikt patchad.
Varför det är ett av de värsta programmeringsfel: Heartbleed Bug skapade ett stort säkerhetshot. Tiden mellan lansering och patstering av vänstra, drabbade system sårbara i åratal. När som helst finns det ett problem med datorns sårbarhet, det här skapar en stor säkerhetsrisk.
3. World of Warcraft-virus som tas för bokstavligen
World of Warcraft en gång drabbats av ett datavirus av olika slag. 2005 infiltrerade en digital pest några spelservrar. Tusentals tecken föll till blodproblemet. Wow utvecklare Blizzard introducerade Hakkar, gud av blod. De betydande fiende infekterade karaktärerna med skadat blod. Medan blodinfektionen ursprungligen var avsedd att skada spelare i närheten av Hakkar's kropp, inträffade spelare-till-spelare-överföring utanför riket. Detta oavsiktliga sätt att sprida blodviruset som sprutats från husdjur. Dessutom blev icke-spelare karaktärer (NPC) bärare.
Archimonde blev den första infekterade servern. Lågnivå tecken dödades omedelbart. Även kraftfulla tecken varade inte längre längre. Trots att en kodningsglitch fortsatte viruset via NPC och husdjur, var viruset inte planerat att släppas utanför Hakkars rike. Medan tusentals spelare dog, World of Warcraft har inte perma-död. Blizzard fixade blodviruset med rullande server omstart. Men inte förrän spelarkroppar fylldes på Wow landskap.
Varför det är ett av de värsta programmeringsfel: Okej så World of Warcraft kanske inte presentera ett datasäkerhetsproblem eller livshotande scenario - men spelare tar sin underhållning på allvar. Blizzard spenderade timmar återställande servrar. Intressant, imiterade speluppträdande i spelet vad som kan hända i en verklig epidemi med utbrott, panik och civilisationens kollaps. Har inte spelat Wow? Kom igång med den här fullständiga nybörjaren guide Komma igång med World Of Warcraft: En komplett nybörjare guide Komma igång med World Of Warcraft: En komplett nybörjarguide Här är vad du behöver veta om du aldrig har försökt World of Warcraft tidigare. Läs mer .
4. Therac-25
Medan många programmeringsfel orsakar sårbarheter eller döda spelare, dålig kod faktiskt kan döda. Therac-25-katastrofen inträffade med Therac-25-strålterapi-maskinen. Producerad av Atomic Energy of Canada, orsakade Therac-25 oavsiktlig strålningsdoser som dödade åtminstone sex patienter. Undersökningar upptäckte att dålig programvara och otillräcklig systemutveckling orsakade strålningsdoser. Störst berodde dessa på att det var svårt att utföra automatiserade mjukvarutester.
Therac-25-strålningsdoser fungerar som en påminnelse om att skapa kod som enkelt testas. Maskiner som dödar människor kan låta som science fiction, men Therac-25-incidenten visar på annat sätt. Men det här var verkligen ett resultat av mänskligt fel vid kodning som orsakade dessa problem. Experter inklusive Nancy Leveson fann att oerfarna kodare skapade buggy-programvara. Dessutom skapade bara en programmerare mjukvaran och baserades på kod från Therac-6 och Therac-20.
Varför det är ett av de värsta programmeringsfel: När det finns förlust av mänskligt liv är ett programmeringsfel absolut ett av de värsta exemplen på dålig kod.
5. Flyg av Ancient Mariner 1
NASA använder ganska lite teknik. Dess New Horizons Probe använder en PlayStation CPU. VP för lösningar Arkitektur och teknik vid NVIDIA Marc Hamilton bloggar regelbundet om NASAs användning av NVIDIA-hårdvara. Mariner 1-raketen lanserades med en rymdsond som slats för att utforska Venus. Men något efter lanseringen avviker raketen från sin avsedda flygväg. Mariner 1 förstördes strax efter start.
En programmerarens mindre misstag orsakade Mariner 1-buggen. Även om rapporter skiljer sig, pekar tecken på en saknad bindestreck. Enligt NASA-arkivdokument, “Mariner 1 Post Flight Review Board bestämde att utelämnandet av en bindestreck i kodade datorinstruktioner i dataredigeringsprogrammet möjliggjorde överföring av felaktiga styrsignaler till rymdfarkosten.” Känd författare Arthur C. Clarke (2001: En rymdodyssey) dubbade Mariner 1-katastrofen “den dyraste bindestreck i historien.”
Varför det är ett av de värsta programmeringsfel: Mariner 1-blundret kunde lätt ha undvikits. Public service meddelande: kära utvecklare, testa din programvara.
6. AT & T-nätverket går ner
Kan du höra mig nu? Nej. Den 15 januari 1990 kraschade över 50 procent av AT & T: s nätverk. På nio timmar gick 75 miljoner samtal obesvarade. Medan de första rapporterna skyllde hackare var den faktiska skyldige mycket värre: en vanlig mjukvaruuppdatering. Kom ihåg det nästa gång du klagar över Windows 10-uppdateringar. Windows-uppdateringar är inställda för att bli mindre irriterande. Windows-uppdateringar är inställda för att bli mindre irriterande. Under det nya systemet bör uppdateringarna i Windows 10 vara mindre i storlek, laddas ner mer effektivt och sätta mindre belastning på dina systemresurser. En förändring du kommer nog inte ens märka. Läs mer . Ett fel på bara en rad kod sänkte AT & T: s nätverk i flera timmar. En omkopplare återställer sig, men felet innebar att den andra omkopplaren skickade ett annat meddelande. I huvudsak slog en dominoffekt av med nätverket att fortsätta att upprepa sitt fel. Så småningom utvecklade AT & T en lösning genom att minska nätverksbelastningen. Omkopplarna återställer sig själva.
Trots tung testning försvagade ett enda uttalande nätverket. Programmet skrevs i C. Ett pausutlåtande i en if-klausul förblev nestad i en växelklausul. Det stora AT & T-stödet från 1990 verkar som ett enkelt problem. Massor av missade samtal, eller som skulle vara fallet idag, en massa missade texter, Instagram, Twitter och Snapchat-meddelanden. Men brist på kommunikation medför stora monetära konsekvenser. Företag som American Airlines led finansiella förluster. American Airlines fick två tredjedelar mindre samtal på grund av avbrottet. 1990-avbrottet fortsätter som ett utmärkt exempel på varför testning är viktig. Dessutom fungerar AT & T-utmatningen som en påminnelse om den inneboende sambandet mellan teknik och ekonomi.
Varför det är ett av de värsta programmeringsfel: Inte bara minskade AT & T: s nätverk, de många timmarna som stannat kvar skapade en ekonomisk tumble.
7. Dag för de levande döda: St Marys Mercy Hospital
2003 misslyckades en programvara felaktigt “dödade” 8 500 personer. St Marys Mercy Medical Center i Grand Rapids, Michigan rapporterade felaktigt att många patienter död med en glitch i sitt system för patienthantering. Denna dåliga kodkatastrof är ganska ofarlig jämfört med Therac-25-dödsfallet, eftersom ingen egentligen dog. Ändå är läsning om din egen nedgång störande - särskilt när du lever och väl.
Falska dödsrapporter var inte begränsade till patienter. Denna korrespondens gick ut till försäkringsbolag och socialförsäkringsbyråer. Eftersom socialförsäkrings- och försäkringsleverantörer ser till att berättigade patienter har Medicare, presenterade detta ett ganska problem. St Marys Mercy-anställda informerade patienter, myndigheter och försäkringsleverantörer om felet. I slutändan fick programmeringsfel inte mycket uppmärksamhet. Det är oklart om kodfelet någonsin korrigerats. Men inga ytterligare falska dödsrapporter uppstod. St Marys Mercy-sjukhus bytte helt enkelt patienthanteringsprogram.
Varför det är ett av de värsta programmeringsfel: Lyckligtvis dog ingen faktiskt. Men skada kontrollen för att säkerställa fortsatt vård täckning var en röra.
8. Fångare Pre-Alpha: Tidig Release
Michigan drabbades av en databehandlingsglitch mellan 2003 och 2005. Under den tiden orsakade en datorprogrammeringsfel tidigt släpp för 23 fångar genom att dumpa meningar för Michigan-statsfångare. Lyckliga inmates gynnades av meningar reducerade var som helst från 39 till 161 dagar. Medan oavsiktlig fängelsestraff upphörande är problematisk, var det lyckligtvis dessa mindre överträdelser, som drog och förskingring avgifter.
Programvaran syftar ofta till att automatisera processer. Genom att skära ner på manuella uppgifter är våra liv teoretiskt lättare. Men det här fallet med Michigan-fångar som kommer ut ur fängelset får de korta korten igen värdet av mjukvarutestning. Ett mindre programmeringsfel bär massiva förgreningar speciellt i detta exempel. Tänk dig om fångar släpptes dabbled i mer allvarliga brott.
Varför det är ett av de värsta programmeringsfel: Denna händelse kunde ha varit mycket värre, men tidigt fängslad frigöring är skrämmande.
9. Hartford Coliseum Falls
Trots att 1978-Hartford Coliseum-kollapset kostade en rapporterad $ 90 miljoner förlust, kunde den ha varit väsentligt sämre. Hartford Coliseum kollapsade flera timmar efter att fansen lämnade platsen. Dess stålsättade tak misslyckades med att stödja vikten av våt snö. En byggnad kollapsade på grund av ett enkelt programmeringsfel. Kodaren av CAD-mjukvaran som användes för att designa Hartford Coliseum misslyckades med att redovisa flera variabler. I stället antog programvaruteknikerna ståltakstjänster endast ren komprimering.
Ingenjörerna står inför många utmaningar. Att använda programvara ska göra arbetet enklare. Att misslyckas med att redogöra för flera variabler leder till enorma utmaningar. Medan du enkelt kan lappa ett fel i Minecraft, CAD-programvara påverkar direkt verkliga världsstrukturer.
Varför det är ett av de värsta programmeringsfel: Jo, åtminstone ingen dog. Men den ekonomiska förödelsen av en uppskattad $ 90 miljoner förlust är enorm.
10. Jag fick 99 problem och en Pentium är en
Vanligtvis har Intel-processorer bättre prestanda än AMD-motsvarigheter. AMD erbjuder dock ett utmärkt prisförhållande AMD: s nya plan: Gör den virtuella verkligheten billigare för dig AMD: s nya plan: Gör virtuell verklighet billigare för dig AMD verkar vara att byta växlar 2016, och om allt går bra är de kommer att bli en stor aktör på marknaden för virtuell verklighet. Läs mer . Men 1994 fick Intels Pentium-mikroprocessorer ett stort problem. 486DX- och Pentium-processorerna innehöll en flytande punktenhet (FPU). Denna FPU var en matte coprocessor. Tidigare generations Intel-processorer bearbetade matte med heltal. Genom att inkludera en FPU inbyggd, lovade detta nästa generations Pentium-chip betydligt snabbare numeriska beräkningar.
Pentium FPU utnyttjade en radix 4 STR algoritm. Felaktigt inmatad information orsakade lite felaktiga beräkningar. Men även en mindre variation kan innebära massiva problem som uppvisats vid Hartford-kollapsen eller Therac-25. Ungefär fem poster i tusen släpptes ut för att kasta bort Pentiums långdistributionsmöjligheter. Intel hävdade officiellt att ett skriptfel orsakade problem med uppslagsproblem. Hur som helst, Pentiums matematik tillskrivs dålig kod.
Varför det är ett av de värsta programmeringsfel: Några signifikanta siffror kanske inte verkar lika mycket, men i fall av ingenjörskonst eller vård av precision är det viktigt.
Dålig till koden: Programmeringsfel händer
Programmeringsfel har inträffat sedan kodningen började. Eftersom användningen av kod i en rad olika områden fortsätter att expandera, kommer denna trend sannolikt inte att försvinna när som helst snart.
Det finns många exempel på programmeringsfel. Vissa är ganska oskyldiga som a World of Warcraft insekt. Andra resulterar i döden, antingen verklig (Therac-25) eller föreställd (St Marys). Låt inte dessa kända exempel avskräcka dig från kodning. Kolla in denna guide för att välja rätt webbprogrammeringsspråk Hur man väljer rätt webbprogrammeringsspråk att använda Hur man väljer rätt webbprogrammeringsspråk att använda Varför ska vissa språk väljas över andra i ett visst scenario? Denna artikel kommer att ge en lista över frågor som programmeraren ska fråga för att välja vilket språk som ska användas. Läs mer .
Vilka historiska exempel på dålig kod kommer du ihåg? Lämna en kommentar nedan med dina val av programmeringsblundrar!
Bildkredit: nouskrabs och McIek via Shutterstock.com
Utforska mer om: Historia, Programmering.