Die 10 schlechtesten Programmierfehler in der Geschichte
Code ist fast überall. Das Aufkommen moderner Computer kam in den 1940er Jahren an. In seiner reichen Geschichte ermöglichte das Programmieren eine bessere Kommunikation und führte zu Fortschritten in einer Vielzahl von Branchen. Alles von der Raumfahrt über Telekommunikation bis zum Gesundheitswesen wurde revolutioniert und vom Kodex beeinflusst.
Außerdem kann das Programmieren wertvolle Lektionen fürs Leben vermitteln. 6 Lebensgewohnheiten, die das Programmieren heute lehren kann 6 Lebensgewohnheiten, die das Programmieren heute lehren können Alles Wichtige, was Sie über ein erfolgreiches Leben wissen müssen, erhalten Sie aus einem Computerprogramm. Glaub mir nicht Weiter lesen. Weiterlesen . In seiner geschichtsträchtigen Vergangenheit wirkte jedoch auch die Codierung. Instanzen von etwas schlechtem Code führten auf einer großen Ebene zu einer Katastrophe. Das Folgende sind 10 der schlimmsten Programmierfehler in der Geschichte.
1. Y2K Bug
Der Jahr-2000-Fehler, auch bekannt als Y2K-Fehler oder Millennium-Fehler, war ein Programmierproblem, das voraussichtlich Computerpandemonium verursachen wird. In den 90er Jahren wurden die meisten Computerprogramme in einer abgekürzten Version vierstellig aufgelistet. 1990 lesen also 90, 1991 geschrieben als 91 usw. Durch die Verkürzung der vierstelligen Jahre auf zwei Ziffern sparten die Codierer somit wertvollen Speicherplatz. Aber Computer konnten das Jahr 2000 nicht einfach als 00 erkennen. Das Problem wurde noch verschärft. 2000 war ein Schaltjahr. Bestimmte Softwareanwendungen haben den zusätzlichen Tag nicht berücksichtigt.
Viele befürchteten, dass Y2K Computer und Elektronik auf der ganzen Welt zum Erliegen bringen könnte. Ich erinnere mich an meinen ersten DVD-Player, der glänzend war “Y2K-konform” Aufkleber. Während das Jahr 2000 von der Software-Seite recht ereignislos verlief, kostete die Aktualisierung von Computern und Apps in allen Branchen rund 300 Milliarden Dollar. Computer sind nicht abgestürzt. Das Leben verlief normal. Aber nicht ohne viel Geld und Arbeit, was laut Slate-Berichten eine Verschwendung gewesen sein könnte.
Warum es einer der schlimmsten Programmierfehler ist: Die Jahr-2000-Panik war mit 300 Milliarden Dollar extrem kostspielig. Außerdem wurden Ressourcen umgeleitet, um dieses potenzielle Problem zu beheben.
2. Heartbleed Bug
Der Heartbleed Bug erscheint in der OpenSSL-Bibliothek und ist eine gefährliche Sicherheitsanfälligkeit. Heartbleed - Was können Sie tun, um sicher zu bleiben? Heartbleed - Was können Sie tun, um sicher zu bleiben? Weiterlesen . Das Transport Layer Security (TLS) -Protokoll verwendet die OpenSSL-Verschlüsselungsbibliothek. Durch die weit verbreitete Verwendung in TLS verbreitet sich Heartbleed schnell. Durch diesen Fehler kann praktisch jeder im Internet Speicher auf Computern lesen, auf denen betroffene Iterationen von OpenSSL ausgeführt werden. Bis zu 64 KB Systemspeicher konnten gelesen werden. Während der Heartbleed Bug 2014 der Öffentlichkeit enthüllt wurde, wurde er 2012 eingeführt.
Eine fehlerhafte Eingabevalidierung aufgrund einer fehlenden Begrenzungsüberprüfung in der TLS-Takterweiterung verursachte den Fehler. Da es sich um einen Fehler in der Heartbeat-Erweiterung handelte, entstand der Name Heartbleed. Ein Artikel aus dem Jahr 2014 in The Register berichtete, dass 1,5% der beliebtesten TLS-fähigen Websites weiterhin anfällig für den Heartbleed-Fehler waren. Abgesehen von OpenSSL waren jedoch TLS-Implementierungen nicht betroffen. Daher waren die Windows-Version von TLS und die Network Security Services von Mozilla vom Heartbleed Bug nicht betroffen. Ein Patch beendete das Problem mit OpenSSL Version 1.0.1g. Durch das Hinzufügen von Begrenzungsprüfungen zum Verhindern des Pufferüberschlags wurde der Heartbleed Bug erfolgreich gepatcht.
Warum es einer der schlimmsten Programmierfehler ist: Der Heartbleed Bug verursachte eine große Sicherheitsbedrohung. Die Zeit zwischen dem Start und dem Patching hat die betroffenen Systeme jahrelang anfällig gemacht. Jedes Mal, wenn es ein Problem mit der Computeranfälligkeit gibt, entsteht ein großes Sicherheitsrisiko.
3. World of Warcraft-Virus zu wörtlich genommen
World of Warcraft litt einmal einen Computervirus einer anderen Art. Im Jahr 2005 infiltrierte eine digitale Seuche einige Spieleserver. Tausende Charaktere fielen dem Blutvirus zum Opfer. Beeindruckend Entwickler Blizzard stellte Hakkar, den Gott des Blutes, vor. Der beträchtliche Feind steckte Charaktere mit verdorbenem Blut an. Während die Blutentzündung ursprünglich darauf abzielte, Spieler in der Nähe von Hakkars Körper zu befallen, fand der Transfer von Spieler zu Spieler außerhalb des Bereichs statt. Dieses unbeabsichtigte Mittel zur Verbreitung des Blutvirus, der von Haustieren im Spiel erzeugt wird. Darüber hinaus wurden Nichtspielercharaktere (NSCs) zu Trägern.
Archimonde wurde der erste infizierte Server. Charaktere auf niedrigem Niveau starben sofort. Sogar mächtige Charaktere haben nicht viel länger gehalten. Obwohl ein Codierungsfehler den Virus über NPCs und Haustiere verewigte, war die Veröffentlichung des Virus außerhalb von Hakkars Königreich nicht geplant. Während tausende Spieler starben, World of Warcraft weist keinen Perma-Tod auf. Blizzard hat den Blutvirus mit rollenden Server-Neustarts behoben. Aber nicht bevor die Leichen des Spielers verschmutzt waren Beeindruckend Landschaft.
Warum es einer der schlimmsten Programmierfehler ist: OK, also World of Warcraft Es kann sich nicht um ein Datensicherheitsproblem oder ein lebensbedrohliches Szenario handeln - aber Gamer nehmen ihre Unterhaltung ernst. Blizzard verbrachte Stunden damit, Server zurückzusetzen. Interessanterweise ahmt das Verhalten von Spielern im Spiel nach, was in einer realen Epidemie mit einem grassierenden Ausbruch, Panik und einem Zusammenbruch der Zivilisation passieren könnte. Habe nicht gespielt Beeindruckend? Erste Schritte mit diesem vollständigen Handbuch für Neulinge Erste Schritte mit World of Warcraft: Ein vollständiges Handbuch für Neulinge Erste Schritte mit World of Warcraft: Ein vollständiges Handbuch für Neulinge Hier erfahren Sie, was Sie wissen müssen, wenn Sie World of Warcraft noch nie probiert haben. Weiterlesen .
4. Therac-25
Während viele Programmierfehler zu Schwachstellen oder toten Spielern führen, ist dies in der Tat ein schlechter Code können töten. Die Therac-25-Katastrophe ereignete sich mit dem Strahlentherapiegerät Therac-25. Der von Atomic Energy of Canada produzierte Therac-25 verursachte versehentliche Strahlungsüberdosierungen, bei denen mindestens sechs Patienten starben. Untersuchungen haben gezeigt, dass unzureichende Software und unzureichende Systementwicklung Strahlungsüberdosierungen verursachten. Diese resultieren größtenteils aus Schwierigkeiten, automatisierte Softwaretests durchzuführen.
Die Therac-25-Bestrahlungsüberdosierungen erinnern daran, Code zu erstellen, der leicht getestet werden kann. Maschinen, die Menschen töten, mögen nach Science-Fiction klingen, aber der Vorfall von Therac-25 beweist etwas anderes. Dies war jedoch wirklich ein Ergebnis menschlicher Fehler bei der Codierung, die diese Probleme verursachten. Experten wie Nancy Leveson fanden heraus, dass unerfahrene Programmierer fehlerhafte Software entwickelten. Darüber hinaus hat nur ein Programmierer die Software erstellt, die auf Code von Therac-6 und Therac-20 basierte.
Warum es einer der schlimmsten Programmierfehler ist: Wann immer Menschenleben verloren gehen, ist ein Programmierfehler eines der schlimmsten Beispiele für fehlerhaften Code.
5. Flug des uralten Seemanns 1
Die NASA verwendet ziemlich viel Tech. Die New Horizons Probe verfügt über eine PlayStation-CPU. Der Vizepräsident für Lösungsarchitektur und Engineering bei NVIDIA Marc Hamilton bloggt regelmäßig über die Verwendung von NVIDIA-Hardware durch die NASA. Die Mariner 1-Rakete startete mit einer Weltraumsonde, die die Venus erkunden sollte. Etwas nach dem Start weicht die Rakete jedoch von ihrer beabsichtigten Flugbahn ab. Mariner 1 wurde kurz nach dem Start zerstört.
Ein kleiner Fehler des Programmierers verursachte den Fehler bei Mariner 1. Obwohl die Berichte unterschiedlich sind, deuten die Zeichen auf einen fehlenden Bindestrich hin. Laut Archivdokumenten der NASA, “Das Mariner 1 Post Flight Review Board stellte fest, dass das Weglassen eines Bindestrichs in codierten Computeranweisungen im Datenbearbeitungsprogramm die Übertragung falscher Leitsignale an das Raumfahrzeug ermöglichte.” Der bekannte Autor Arthur C. Clarke (2001: Eine Weltraum-Odyssee) nannte die Mariner 1-Katastrophe “der teuerste Bindestrich in der Geschichte.”
Warum es einer der schlimmsten Programmierfehler ist: Der Mariner 1-Fehler konnte leicht vermieden werden. Öffentliche Bekanntmachung: Sehr geehrte Entwickler, bitte testen Sie Ihre Software.
6. Das AT & T-Netzwerk fällt aus
Kannst du mich jetzt hören? Am 15. Januar 1990 stürzten über 50 Prozent des AT & T-Netzwerks ab. In neun Stunden blieben 75 Millionen Anrufe unbeantwortet. Während erste Berichte Hacker beschuldigten, war der eigentliche Schuldige viel schlimmer: ein Standard-Software-Update. Beachten Sie dies, wenn Sie sich das nächste Mal über Windows 10-Updates beschweren. Windows-Updates sind weniger störend. Windows-Updates sind weniger störend. Unter dem neuen System sollten Windows 10-Updates kleiner sein, effizienter heruntergeladen und weniger belastet werden auf Ihren Systemressourcen. Eine Änderung, die Sie wahrscheinlich nicht einmal bemerken werden. Weiterlesen . Ein Fehler in nur einer Codezeile hat das Netzwerk von AT & T für mehrere Stunden unterbrochen. Ein Switch hat sich selbst zurückgesetzt, aber der Fehler hat dazu geführt, dass der zweite Switch eine weitere Nachricht gesendet hat. Im Wesentlichen startete ein Dominoeffekt, bei dem das Netzwerk seinen Fehler weiterhin wiederholte. Schließlich entwickelte AT & T eine Lösung, um die Netzwerklast zu reduzieren. Die Schalter setzen sich dann selbst zurück.
Trotz intensiver Tests wurde das Netzwerk durch eine einzige Aussage erschwert. Das Programm wurde in C geschrieben. Eine break-Anweisung innerhalb einer if-Klausel blieb in einer switch-Klausel verschachtelt. Der große AT & T-Ausfall von 1990 scheint ein einfaches Problem zu sein. Viele Anrufe in Abwesenheit, oder wie es heute der Fall wäre, eine Reihe von versäumten Texten, Instagram-, Twitter- und Snapchat-Benachrichtigungen. Der Mangel an Kommunikation hatte jedoch enorme monetäre Auswirkungen. Unternehmen wie American Airlines erlitten finanzielle Verluste. American Airlines erhielt aufgrund des Ausfalls zwei Drittel weniger Anrufe. Der Ausfall von 1990 ist nach wie vor ein hervorragendes Beispiel dafür, warum das Testen so wichtig ist. Darüber hinaus erinnert der AT & T-Ausfall an die inhärente Verbindung zwischen Technologie und Wirtschaft.
Warum es einer der schlimmsten Programmierfehler ist: Das Netzwerk von AT & T brach nicht nur zusammen, sondern die mehreren Stunden, die es stillstand, verursachte einen finanziellen Umschwung.
7. Tag der lebenden Toten: St. Mary's Mercy Hospital
Im Jahr 2003 ein fehlerhafter Software-Fehler “getötet” 8.500 Menschen. Das St. Mary's Mercy Medical Center in Grand Rapids, Michigan, hat irrtümlicherweise berichtet, dass viele Patienten mit einem Fehler in ihrem Patientenverwaltungs-Softwaresystem tot sind. Diese schlechte Code-Katastrophe ist im Vergleich zu den Todesfällen von Therac-25 ziemlich harmlos, da eigentlich niemand gestorben ist. Trotzdem ist es sehr verwirrend, über Ihren eigenen Untergang zu lesen - besonders, wenn Sie am Leben und gesund sind.
Berichte über falsche Todesfälle waren nicht auf Patienten beschränkt. Diese Korrespondenz ging an Versicherungsgesellschaften und Sozialversicherungsämter. Da Sozialversicherungen und Versicherungen sicherstellen, dass berechtigte Patienten Medicare haben, war dies ein Problem. Mitarbeiter von St. Mary's Mercy informierten Patienten, Behörden und Versicherungen über den Fehler. Letztendlich wurde der Programmierfehler nicht besonders beachtet. Es ist nicht klar, ob der Codierungsfehler jemals korrigiert wurde. Es entstanden jedoch keine weiteren falschen Todesberichte. St. Mary's Mercy Hospital hat einfach die Patientenverwaltungssoftware gewechselt.
Warum es einer der schlimmsten Programmierfehler ist: Zum Glück ist eigentlich niemand gestorben. Aber die Schadenskontrolle der Sicherstellung einer kontinuierlichen Gesundheitsversorgung war ein Durcheinander.
8. Gefangener Vor-Alpha: Frühe Entlassung
In Michigan kam es zwischen 2003 und 2005 zu einem Datenverarbeitungsproblem. In dieser Zeit verursachte ein Fehler in der Computerprogrammierung 23 Gefangene vorzeitig, indem er die Haftstrafen für Gefangene des Staates Michigan stieß. Glückliche Insassen profitierten von Haftstrafen, die von 39 auf 161 Tage verkürzt wurden. Eine versehentliche Gefängnisstrafe ist zwar problematisch, aber glücklicherweise waren dies geringere Verstöße wie Drogen- und Unterschlagungsgebühren.
Software zielt häufig darauf ab, Prozesse zu automatisieren. Durch die Reduzierung von manuellen Aufgaben wird unser Leben theoretisch leichter. Dieser Fall, in dem Michigan-Gefangene aus den frühen Karten des Gefängnisses kommen, beweist erneut den Wert von Softwaretests. Ein geringfügiger Programmierfehler hat gerade in diesem Beispiel erhebliche Auswirkungen. Stellen Sie sich nur vor, wenn die freigelassenen Häftlinge an schwereren Verbrechen beteiligt waren.
Warum es einer der schlimmsten Programmierfehler ist: Dieser Zwischenfall hätte viel schlimmer sein können, aber die vorzeitige Entlassung von Gefangenen ist erschreckend.
9. Hartford Coliseum Falls
Obwohl der Kollaps von Hartford Coliseum 1978 einen Verlust von 90 Millionen Dollar kostete, hätte er wesentlich schlimmer sein können. Das Hartford Coliseum brach mehrere Stunden zusammen, nachdem die Fans den Veranstaltungsort verlassen hatten. Sein Stahlgitterdach konnte das Gewicht von nassem Schnee nicht tragen. Ein Gebäude ist aufgrund eines einfachen Programmierfehlers zusammengebrochen. Der Codierer der CAD-Software, mit der das Hartford Coliseum entworfen wurde, konnte mehrere Variablen nicht berücksichtigen. Stattdessen ging der Software-Programmierer davon aus, dass Stahldachträger nur der reinen Kompression ausgesetzt wären.
Ingenieure stehen vor vielen Herausforderungen. Die Verwendung von Software sollte ihre Arbeit erleichtern. Wenn jedoch mehrere Variablen nicht berücksichtigt werden, führt dies zu immensen Herausforderungen. Sie können zwar einfach einen Fehler einflicken Minecraft, CAD-Software beeinflusst die realen Strukturen direkt.
Warum es einer der schlimmsten Programmierfehler ist: Nun, zumindest ist niemand gestorben. Die wirtschaftliche Verwüstung eines geschätzten Verlusts von 90 Millionen Dollar ist jedoch enorm.
10. Ich habe 99 Probleme und ein Pentium ist eins
Im Allgemeinen bieten Intel-Prozessoren eine bessere Leistung als AMD-Pendants. AMD bietet jedoch ein hervorragendes Preis-Leistungs-Verhältnis. AMDs neuer Plan: Virtual Reality für Sie billiger machen AMDs neuer Plan: Virtual Reality für Sie billiger machen AMD scheint 2016 den Gang zu wechseln, und wenn alles gut geht, dann sind sie es wird ein großer Akteur auf dem Markt für virtuelle Realität sein. Weiterlesen . 1994 hatten Intel Pentium-Mikroprozessoren jedoch ein großes Problem. Die 486DX- und Pentium-CPUs verfügten über eine Fließkommaeinheit (FPU). Diese FPU war ein mathematischer Koprozessor. Intel-CPUs der vorherigen Generation verarbeiteten Mathematik mit Ganzzahlen. Durch die Integration einer integrierten FPU versprach dieser Pentium-Chip der nächsten Generation wesentlich schnellere numerische Berechnungen.
Die Pentium FPU verwendete einen Radix 4 STR-Algorithmus. Falsch eingegebene Informationen verursachten geringfügig falsche Berechnungen. Aber auch eine geringfügige Abweichung kann massive Probleme bedeuten, wie sie beim Zusammenbruch von Hartford oder Therac-25 auftreten. Etwa fünf von tausend Einsendungen wurden ausgelassen, was die langen Divisionsfähigkeiten des Pentium abwarf. Intel hat offiziell behauptet, dass ein Skriptfehler Probleme beim Nachschlagen von Einträgen verursacht hat. In beiden Fällen wird die Mathematik von Pentium auf schlechten Code zurückgeführt.
Warum es einer der schlimmsten Programmierfehler ist: Ein paar signifikante Zahlen scheinen nicht viel zu sein, aber in Fällen von Präzision in der Technik oder im Gesundheitswesen ist dies unerlässlich.
Schlecht zum Code: Programmierfehler passieren
Programmierfehler sind seit der Einführung der Codierung aufgetreten. Da die Verwendung von Code in einer Vielzahl von Bereichen immer weiter zunimmt, wird dieser Trend wahrscheinlich nicht bald verschwinden.
Es gibt viele Beispiele für Programmierfehler. Einige sind ziemlich harmlos wie eine World of Warcraft Fehler. Andere führen zum Tod entweder real (Therac-25) oder eingebildet (St. Mary's). Lassen Sie sich nicht von diesen berühmten Beispielen vom Codieren abhalten. Informationen zur Auswahl der richtigen Web-Programmiersprache finden Sie hier. So wählen Sie die richtige Web-Programmiersprache aus So wählen Sie die richtige Web-Programmiersprache Warum sollten bestimmte Sprachen in einem bestimmten Szenario gegenüber anderen Sprachen ausgewählt werden? Dieser Artikel enthält eine Checkliste mit Fragen, die der Programmierer stellen sollte, um die Sprache zu wählen. Weiterlesen .
An welche historischen Beispiele für fehlerhaften Code erinnern Sie sich? Hinterlassen Sie einen Kommentar mit Ihren Tipps zur Programmierung von Fehlern!
Bildnachweis: nouskrabs und McIek über Shutterstock.com
Erfahren Sie mehr über: Geschichte, Programmierung.