
Gabriel Brooks
7
3451
150
El código está en casi todas partes. El advenimiento de las computadoras modernas llegó en la década de 1940. En su rica historia, la programación permitió una mejor comunicación y condujo a avances en una miríada de industrias. Todo, desde los viajes espaciales hasta las telecomunicaciones y la atención médica, ha sido revolucionado y afectado por el código..
Además, la programación puede enseñar valiosas lecciones de vida 6 Hábitos de vida que la programación podría enseñarle hoy 6 Hábitos de vida que la programación podría enseñarle hoy Todo lo que necesita saber sobre cómo vivir una vida exitosa, lo puede obtener de un programa de computadora. No me creas Sigue leyendo. . Sin embargo, en su pasado histórico, también codifica la destrucción forjada. Las instancias de un poco de código incorrecto causaron desastres en un nivel importante. Los siguientes son 10 de los peores errores de programación de la historia..
1. Error Y2K
El error del año 2000, también conocido como Y2K Bug o Millennium Bug, fue un problema de codificación que se pronostica que causará el pandemonio de la computadora. En los años 90, la mayoría de los programas informáticos enumeraban años de cuatro dígitos en una versión abreviada. Así que 1990 leyó 90, 1991 escrito como 91, etc. Al acortar años de cuatro dígitos a dos dígitos, los codificadores ahorraron así una memoria valiosa. Pero las computadoras no pudieron reconocer el 2000 como simplemente 00. Para exacerbar aún más el problema, el 2000 fue un año bisiesto. Ciertas aplicaciones de software no tuvieron en cuenta el día adicional.
Muchos temían que Y2K pudiera derribar computadoras y dispositivos electrónicos en todo el mundo. Recuerdo mi primer reproductor de DVD con un brillante “Cumple con Y2K” pegatina. Si bien el año 2000 se produjo sin incidentes desde el lado del software, la actualización de computadoras y aplicaciones en todas las industrias costó aproximadamente $ 300 mil millones. Las computadoras no se bloquearon. La vida procedió como siempre. Pero no sin un montón de dinero y trabajo, que según los informes de Slate puede haber sido un desperdicio.
Por qué es uno de los peores errores de programación: El pánico Y2K fue extremadamente costoso, por una suma de $ 300 mil millones. Además, los recursos se redirigieron para solucionar este problema potencial.
2. Insecto sangrante
Crédito de imagen: OpenClipart-Vectors a través de Pixabay
Al aparecer en la biblioteca de OpenSSL, Heartbleed Bug es una vulnerabilidad de seguridad peligrosa Heartbleed: ¿qué puede hacer para mantenerse a salvo? Heartbleed: ¿qué puede hacer para mantenerse a salvo? . El protocolo de Seguridad de la capa de transporte (TLS) emplea la biblioteca de criptografía OpenSSL. Debido a su uso generalizado en TLS, Heartbleed se propagó rápidamente. Este error permite que prácticamente cualquier persona en Internet lea la memoria en máquinas que ejecutan iteraciones afectadas de OpenSSL. Se pueden leer hasta 64 kb de memoria del sistema. Si bien el Heartbleed Bug se reveló al público en 2014, se lanzó en 2012.
La validación de entrada incorrecta a causa de una comprobación de límites faltantes dentro de la extensión de latido TLS causó el error. Como se trataba de un error en la extensión de latido, el nombre Heartbleed se generó. Un artículo de 2014 en The Register informó que el 1.5% de los sitios habilitados para TLS más populares seguían siendo vulnerables al error Heartbleed. Sin embargo, las implementaciones de TLS aparte de OpenSSL quedaron intactas. Por lo tanto, la versión de Windows de TLS y los servicios de seguridad de red de Mozilla no se vieron afectados por el error Heartbleed. Un parche finalmente solucionó el problema con OpenSSL versión 1.0.1g. Al agregar controles de límites para evitar la sobre lectura del búfer, el Heartbleed Bug fue parcheado con éxito.
Por qué es uno de los peores errores de programación: El Heartbleed Bug creó una gran amenaza de seguridad. El tiempo entre el lanzamiento y el parche dejó a los sistemas afectados vulnerables durante años. Cada vez que hay un problema de vulnerabilidad de la computadora, esto crea un gran problema de seguridad de datos.
3. Virus de World of Warcraft tomado demasiado literalmente
Crédito de la imagen: WoW Wiki
Mundo de Warcraft Una vez sufrió un virus informático de un tipo diferente. En 2005, una plaga digital se infiltró en algunos servidores de juegos. Miles de personajes cayeron presa del virus de la sangre. Guau El desarrollador Blizzard presentó a Hakkar, el dios de la sangre. El enemigo considerable infecta a los personajes con sangre corrupta. Si bien la infección de sangre originalmente tenía la intención de afectar a los jugadores que estaban cerca del cuerpo de Hakkar, la transferencia de jugador a jugador ocurrió fuera del reino. Este medio no intencionado de propagar el virus de la sangre se generó en las mascotas del juego. Además, los personajes que no son jugadores (NPC) se convirtieron en portadores.
Archimonde se convirtió en el primer servidor infectado. Los personajes de bajo nivel murieron instantáneamente. Incluso los personajes poderosos no duraron mucho más. Aunque una falla de codificación perpetuaba el virus a través de NPC y mascotas, el virus no estaba planeado para su liberación fuera del reino de Hakkar. Mientras miles de jugadores murieron, Mundo de Warcraft no presenta perma-muerte. Blizzard reparó el virus de la sangre con reinicios continuos del servidor. Pero no antes de que los cadáveres de los jugadores ensuciaran el Guau paisaje.
Por qué es uno de los peores errores de programación: OK entonces Mundo de Warcraft Es posible que no presente un problema de seguridad de datos o un escenario que ponga en peligro la vida, pero los jugadores se toman muy en serio su entretenimiento. Blizzard pasó horas reiniciando servidores. Curiosamente, el comportamiento del jugador en el juego imitaba lo que podría suceder en una epidemia del mundo real con un brote desenfrenado, pánico y un colapso de la civilización. No he jugado Guau? Comience con esta guía completa para novatos Comenzando con World Of Warcraft: una guía completa para novatos Comenzando con World of Warcraft: una guía completa para novatos Esto es lo que necesita saber si nunca antes ha probado World of Warcraft. .
4. Therac-25
Mientras que muchos errores de programación causan vulnerabilidades o jugadores muertos en el juego, el código incorrecto en realidad poder matar. El desastre de Therac-25 ocurrió con la máquina de radioterapia Therac-25. Producido por Atomic Energy de Canadá, Therac-25 causó sobredosis de radiación accidentales que mataron al menos a seis pacientes. Las investigaciones descubrieron que un software deficiente y un desarrollo insuficiente del sistema causaron sobredosis de radiación. En gran parte, esto resultó de la dificultad para realizar pruebas de software automatizadas.
Las sobredosis de radiación Therac-25 sirven como recordatorio para crear un código que se pueda probar fácilmente. Las máquinas que matan humanos pueden parecer ciencia ficción, pero el incidente de Therac-25 demuestra lo contrario. Pero esto fue realmente el resultado de un error humano en la codificación que causó estos problemas. Los expertos, incluida Nancy Leveson, descubrieron que los codificadores inexpertos crearon software con errores. Además, solo un programador creó el software y se basó en el código de Therac-6 y Therac-20..
Por qué es uno de los peores errores de programación: Cada vez que hay pérdida de vidas humanas, un error de programación es absolutamente uno de los peores ejemplos de código incorrecto..
5. Vuelo del antiguo marinero 1
La NASA usa bastante tecnología. Su New Horizons Probe emplea una CPU PlayStation. El vicepresidente de Arquitectura e Ingeniería de Soluciones en NVIDIA, Marc Hamilton, escribe regularmente sobre el uso del hardware NVIDIA por parte de la NASA. El cohete Mariner 1 se lanzó con una sonda espacial programada para explorar Venus. Sin embargo, un poco después del lanzamiento, el cohete se desvió de su ruta de vuelo prevista. Mariner 1 fue destruido poco después del despegue.
El error menor de un programador causó el error Mariner 1. Aunque los informes difieren, los signos apuntan a un guión faltante. De acuerdo con los documentos de archivo de la NASA, “el Mariner 1 Post Flight Review Board determinó que la omisión de un guión en las instrucciones codificadas de la computadora en el programa de edición de datos permitió la transmisión de señales de guía incorrectas a la nave espacial.” El reconocido autor Arthur C. Clarke (2001: una odisea del espacio) apodado el desastre del Mariner 1 “el guión más caro de la historia.”
Por qué es uno de los peores errores de programación: El error Mariner 1 podría haberse evitado fácilmente. Anuncio de servicio público: queridos desarrolladores, por favor prueben su software.
6. La red de AT&T se cae
Crédito de imagen: Unsplash a través de Pixabay
puedes escucharme ahora? No. El 15 de enero de 1990, más del 50 por ciento de la red de AT&T colapsó. En nueve horas, 75 millones de llamadas quedaron sin respuesta. Si bien los informes iniciales culpaban a los piratas informáticos, el culpable real era mucho peor: una actualización de software estándar. Recuerde esto la próxima vez que se queje de las actualizaciones de Windows 10 Las actualizaciones de Windows están configuradas para ser menos molestas Las actualizaciones de Windows están configuradas para ser menos molestas Bajo el nuevo sistema, las actualizaciones de Windows 10 deberían ser de menor tamaño, descargarse de manera más eficiente y poner menos esfuerzo en los recursos de su sistema. Un cambio que probablemente ni siquiera notarás. . Un error en una sola línea de código derribó la red de AT&T durante varias horas. Un interruptor se restableció, pero el error significó que el segundo interruptor envió otro mensaje. Esencialmente, se inició un efecto dominó con la red que continúa repitiendo su error. Finalmente, AT&T ideó una solución al reducir la carga de la red. Los interruptores luego se reinician.
A pesar de las fuertes pruebas, una sola declaración paralizó la red. El programa se escribió en C. Una declaración de interrupción dentro de una cláusula if permaneció anidada en una cláusula switch. La gran interrupción de AT&T en 1990 parece un problema simple. Muchas llamadas perdidas, o como sería el caso hoy, un montón de mensajes de texto perdidos, Instagram, Twitter y notificaciones de Snapchat. Sin embargo, la falta de comunicación tuvo enormes impactos monetarios. Empresas como American Airlines sufrieron pérdidas financieras. American Airlines recibió dos tercios menos de llamadas debido a la interrupción. La interrupción de 1990 persiste como un excelente ejemplo de por qué las pruebas son importantes. Además, la interrupción de AT&T sirve como un recordatorio de la conexión inherente entre la tecnología y la economía..
Por qué es uno de los peores errores de programación: La red de AT&T no solo se derrumbó, sino que las varias horas que permaneció inactiva crearon una caída financiera.
7. Día de los muertos vivientes: Hospital St. Mary's Mercy
Crédito de imagen: Vitalworks a través de Pixabay
En 2003, una falla de software incorrectamente “delicado” 8,500 personas. El Centro Médico St. Mary's Mercy en Grand Rapids, Michigan, informó erróneamente que muchos pacientes murieron con una falla en su sistema de software de gestión de pacientes. Este mal código de desastre es bastante inofensivo en comparación con las muertes de Therac-25, ya que en realidad nadie murió. Aún así, leer sobre su propia desaparición es desconcertante, especialmente cuando está vivo y bien.
Los informes falsos de muerte no se limitaron a los pacientes. Esta correspondencia se envió a las compañías de seguros y las oficinas de la Seguridad Social. Debido a que el Seguro Social y los proveedores de seguros se aseguran de que los pacientes elegibles tengan Medicare, esto presenta un gran problema. Los empleados de St. Mary's Mercy informaron a los pacientes, las agencias gubernamentales y los proveedores de seguros del error. Finalmente, el error de programación no ganó mucha atención. No está claro si el error de codificación se corrigió alguna vez. Sin embargo, no surgieron más informes falsos de muerte. El hospital St. Mary's Mercy simplemente cambió el software de gestión de pacientes.
Por qué es uno de los peores errores de programación: Afortunadamente, nadie murió realmente. Pero el control de daños para garantizar una cobertura de atención médica continua fue un desastre.
8. Prisionero pre-alfa: liberación anticipada
Crédito de la imagen: Alexas_Fotos a través de Pixabay
Michigan sufrió una falla en el procesamiento de datos entre 2003 y 2005. Durante ese tiempo, una falla en la programación de computadoras causó la liberación anticipada de 23 prisioneros al reprimir las condenas para los prisioneros del estado de Michigan. Los reclusos afortunados se beneficiaron de sentencias reducidas de 39 a 161 días. Si bien la terminación accidental de la pena de prisión es problemática, afortunadamente se trata de infracciones más pequeñas, como cargos por drogas y malversación.
El software a menudo apunta a automatizar procesos. Al reducir las tareas manuales, nuestras vidas son teóricamente más fáciles. Sin embargo, este caso en el que los prisioneros de Michigan salen de la cárcel por primera vez una vez más demuestra el valor de las pruebas de software. Un pequeño error de programación conlleva ramificaciones masivas, especialmente en este ejemplo. Imagínense si los prisioneros liberados incursionaron en crímenes más serios.
Por qué es uno de los peores errores de programación: Este incidente podría haber sido mucho peor, pero la liberación anticipada de prisioneros es aterradora.
9. Hartford Coliseum Falls
Aunque el colapso del Coliseo Hartford de 1978 costó una pérdida reportada de $ 90 millones, podría haber sido mucho peor. El Coliseo de Hartford se derrumbó varias horas después de que los fanáticos abandonaron el lugar. Su techo con celosía de acero no pudo soportar el peso de la nieve húmeda. Un edificio se derrumbó debido a un simple error de programación. El codificador del software CAD utilizado para diseñar el Coliseo de Hartford no tuvo en cuenta múltiples variables. En cambio, el programador de software asumió que los soportes de techo de acero solo enfrentarían una compresión pura.
Los ingenieros enfrentan muchos desafíos. El uso de software debería facilitar su trabajo. Sin embargo, no tener en cuenta varias variables conduce a inmensos desafíos. Si bien puede simplemente parchear un error en Minecraft, El software CAD influye directamente en las estructuras del mundo real..
Por qué es uno de los peores errores de programación: Bueno, al menos nadie murió. Pero la devastación económica de una pérdida estimada de $ 90 millones es enorme.
10. Tengo 99 problemas y un Pentium es uno
En general, los procesadores Intel cuentan con un mejor rendimiento que sus homólogos de AMD. Sin embargo, AMD ofrece una excelente relación precio-rendimiento. Nuevo plan de AMD: hacer que la realidad virtual sea más barata para usted Nuevo plan de AMD: hacer que la realidad virtual sea más barata para usted AMD parece estar cambiando de marcha en 2016, y si todo va bien, va a ser un gran jugador en el mercado de realidad virtual. . Pero en 1994, los microprocesadores Pentium de Intel sufrieron un gran problema. Las CPU 486DX y Pentium presentaban una unidad de punto flotante (FPU). Esta FPU fue un coprocesador matemático. Las CPU Intel de la generación anterior procesaron matemáticas con enteros. Al incluir una FPU incorporada, este chip Pentium de próxima generación prometió cálculos numéricos significativamente más rápidos.
La FPU Pentium utilizó un algoritmo radix 4 STR. La información ingresada incorrectamente causó cálculos ligeramente incorrectos. Pero incluso una variación menor puede significar problemas masivos como se muestra en el caso del colapso de Hartford o Therac-25. Aproximadamente cinco de cada mil entradas quedaron excluidas de las capacidades de división larga del Pentium. Intel afirmó oficialmente que un error de secuencias de comandos causó problemas de entrada de búsqueda. De cualquier manera, las matemáticas de Pentium se atribuyen al código incorrecto.
Por qué es uno de los peores errores de programación: Algunas cifras significativas pueden no parecer mucho, pero en casos de ingeniería o precisión en la atención médica es esencial.
Malo para el código: los errores de programación suceden
Se han producido errores de programación desde el inicio de la codificación. A medida que el uso del código en una variedad de campos continúa expandiéndose, esta tendencia probablemente no desaparecerá pronto.
Hay muchos ejemplos de errores de programación. Algunos son bastante inocuos como un Mundo de Warcraft insecto. Otros resultan en la muerte real (Therac-25) o imaginada (St. Mary's). No dejes que estos famosos ejemplos te impidan codificar. Consulte esta guía para elegir el lenguaje de programación web correcto Cómo elegir el lenguaje de programación web adecuado para usar Cómo elegir el lenguaje de programación web correcto para usar ¿Por qué se deben elegir ciertos idiomas en lugar de otros en un escenario dado? Este artículo proporcionará una lista de verificación de preguntas que el programador debe hacer para elegir qué idioma usar. .
¿Qué ejemplos históricos de mal código recuerdas? Deje un comentario a continuación con sus selecciones de errores de programación!
Crédito de imagen: nouskrabs y McIek a través de Shutterstock.com