¿Cuáles son los mejores ejemplos de características de software que se convirtieron en errores?

DRM ofrece muchos buenos ejemplos.

CD de audio no estándar

En los primeros días de la batalla contra la piratería musical, muchos proveedores de soluciones DRM ofrecieron productos dudosos que prometían a los sellos discográficos que evitaría que las personas compartieran música.

Por ejemplo, una solución común era violar el estándar del Libro Rojo para los CD de audio de alguna manera tal que el CD no se pudiera reproducir en una computadora o presentara distorsiones cuando se grabara.

Mientras trabajaba en un pequeño sello discográfico, le advertí al propietario que adoptara uno de estos productos, pero estaba convencido de que era seguro, ya que los Cuatro Grandes estaban usando ese proveedor hasta cierto punto u otro.

El problema fue que pronto empezamos a recibir quejas de personas que no podían escuchar los CD en su computadora o incluso en su automóvil o en su reproductor de CD portátil, e inevitablemente tuvimos que reembolsarles su dinero y retirar la protección contra copia para el futuro. carreras.

AutoRun

AutoRun y ​​AutoPlay tienen un historial interesante que en realidad precede a su relación con DRM. Inicialmente, fueron diseñados simplemente como una característica de conveniencia para los usuarios, permitiendo que el software de CD-ROM se inicie automáticamente al insertarlo. Los proveedores de DRM pronto descubrieron que esta podría ser una excelente manera de instalar malware (como el rootkit Sony BMG) en la computadora de un usuario desprevenido a través de CD de modo mixto que tenían una pista de audio y datos en una sola sesión. Esto permitió que se comportara como un CD de audio la mayor parte del tiempo, pero también ejecutara un programa oculto cada vez que se inserta en una PC con Windows.

Además, antes de Windows 7, AutoRun podría iniciarse desde cualquier tipo de almacenamiento masivo, no solo unidades ópticas. Esto significaba que el almacenamiento en red y las unidades de almacenamiento en miniatura también podrían usarse como un vector de ataque (como lo explota el gusano Conficker).

Y, resulta que incluso después de Windows 7, todavía se puede explotar AutoRun a través de USB a través de unidades USB especialmente diseñadas como el U3, que se presenta al sistema como un concentrador USB con un CD-ROM y un almacenamiento masivo USB estándar. dispositivo adjunto. Esto significaba que algo que se parecía a una unidad de disco USB normal aún podía ejecutarse automáticamente en una PC con Windows cuando se enchufaba, lo que representaba un gran riesgo para la seguridad en los sistemas donde AutoRun no se había desactivado.

DRM siempre encendido

La verificación en línea del servidor del software también ha producido algunas experiencias de usuario negativas para clientes legítimos. Por ejemplo, cuando se lanzó Diablo III, los servidores de verificación de Blizzard fueron derribados por la avalancha de personas que intentaban jugar el juego a la vez. La gente no estaba contenta cuando no podían jugar un juego por el que pagaban una buena cantidad de dinero.

Aquí hay algunos del mundo de los motores de base de datos …

No estoy seguro de si es una “característica que se convirtió en un error”, pero una de mis cosas favoritas de este tipo es el hecho de que Oracle implementó cadenas de tal manera que una cadena de longitud cero responde a NULA. En otras palabras, ” = NULL en un sentido lógico (aunque no en SQL ya que esto se evalúa como NULL).

Supongo que este fue un error básico debido al uso de un desplazamiento de longitud cero para indicar NULL en la representación de filas de bajo nivel de Oracle. Esto funciona para los campos numéricos, pero no para los campos de cadena a menos que haga otra cosa para indicar la diferencia entre una cadena de longitud cero y una NULL en el almacenamiento.

Todas las demás bases de datos SQL admiten esto “correctamente”, ya que una cadena de longitud cero es una cadena válida (y usted puede realizar la prueba mystringcol = de manera segura), por lo que lidiar con esto es un gran problema si está portando un SQL mundo desde o hacia Oracle. Pero en el mundo de Oracle, “arreglar” este error rompería tanto el código del lado de la aplicación que simplemente no se puede hacer, y he conocido a los fanáticos de Oracle que intentan argumentar que esta es una “característica”.

Otra “característica” de este tipo es MySQL que implementa TRUNCATE TABLE como una operación implícita de “DROP TABLE / CREATE TABLE”. Esto significa que TRUNCATE TABLE en MySQL termina interactuando con las tablas de metadatos y requiere bloqueos de metadatos para ejecutarse. Si su aplicación no es absolutamente cuidadosa, esto puede hacer que su aplicación se “bloquee” inesperadamente en los bloqueos de metadatos.

Pero esta implementación de TRUNCATE TABLE también restablece los contadores de incremento automático a 0 y hace un montón de otras cosas en las que se basan las aplicaciones, por lo que cambiar esto también es “difícil”.

Y yo diría que toda la implementación de SQL NULL es un error, que causa todo tipo de dolores de cabeza y maldad: ¿Cuál es el significado de NULL en SQL?

Un muy buen ejemplo de una característica de software que se convirtió en un error es el sistema de referencia inercial o SRI (es un cohete francés) del cohete espacial Ariane IV. Esto tenía una característica diseñada para la “alineación de la plataforma inercial de la correa hacia abajo”. No tengo ni idea de lo que es la plataforma inercial de correa hacia abajo, pero eso es irrelevante para el resto de la historia.

Lo que sí debe recordar es que la alineación de la plataforma inercial de la correa hacia abajo es algo que sucede en el launchpad antes de levantarlo. En Ariane IV, continuó durante aproximadamente 40 segundos después del despegue. Además, como una de sus entradas, esta característica tenía un valor relacionado con la velocidad horizontal del cohete. Este fue un valor entero de 16 bits.

Tras el éxito de Ariane IV, la ESA diseñó el Ariane V, un cohete mucho más grande y poderoso. Ariane V incluía el mismo sistema de referencia inercial que Ariane IV que realizaba exactamente la misma función, incluso hasta el punto de continuar durante 40v segundos después del lanzamiento , aunque no era necesario.

Después del primer lanzamiento, después de unos 36 segundos, el Ariane V viajaba horizontalmente mucho más rápido que el Ariane IV en el mismo punto. El SRI tomó la velocidad como un valor de punto flotante de 64 bits y la convirtió al valor de 16 bits que esperaba, pero desafortunadamente, el número resultante era demasiado grande para 16 bits, lo que provocó una excepción. El SRI envió un código de error de diagnóstico a la computadora a bordo que lo interpretó como instrucciones para cambiar de dirección, violentamente, lo que llevó a la ruptura y autodestrucción del cohete.

Fuente: ARIANE 5 Failure – Informe completo

Error de sustitución de caracteres en los escáneres / fotocopiadoras Xerox

JBIG2 es un estándar de compresión de imágenes para imágenes de dos niveles, desarrollado por el Grupo de Expertos en Imágenes de Dos Niveles . Es adecuado tanto para la compresión sin pérdida como para la pérdida. En su modo sin pérdida, JBIG2 generalmente genera archivos de un tercio a un quinto del tamaño del Grupo de Fax 4 y de la mitad a un cuarto del tamaño de JBIG, el estándar de compresión de dos niveles anterior publicado por el Grupo.

En 2013, el científico informático alemán David Kriesel descubrió un error en una copiadora Xerox WorkCentre 7535 . El dispositivo sustituiría los dígitos de los números en los documentos escaneados, incluso cuando el OCR estaba apagado. Por ejemplo, una tabla de costos en un documento escaneado tenía una entrada de 85.40, en lugar de la suma original de 65.40.


La fuente del error fue un error en la implementación de JBIG2, que hace uso de la coincidencia de patrones para codificar caracteres idénticos solo una vez. Si bien esto proporciona un alto nivel de compresión, es susceptible a errores en la identificación de caracteres similares.

Fuentes:
fotocopia
JBIG2
Los escáneres / fotocopiadoras de Xerox alteran aleatoriamente los números en los documentos escaneados

Ctrl-Alt-Supr. Gran característica cuando comenzó: esas teclas estaban muy separadas, por lo que no se presionarían accidentalmente. Ahora que es un error, ya que Ctrl-Alt-Delete se utiliza para muchas otras cosas. Afortunadamente, la mayoría de los teclados tienen una solución alternativa para la función al tener varias teclas Ctrl y Alt.

Las interfaces de usuario para seleccionar de una lista desplegable o enumerada es una que consideraría una característica que ahora es un error. Solía ​​ser (para mí de todos modos) que la selección se realizó de una lista enumerada al escribir el primer carácter y luego el segundo carácter, por lo que al escribir “S” entonces “T” lo llevaría al principio de “ST” s y no al principio de la “T” s. En algún momento del camino, alguien determinó que el código sería más eficiente si cualquier carácter escrito se interpretara como el primer carácter. Tal vez eso tenía sentido cuando el código era caro y las listas eran cortas, pero ahora, cuando queremos llegar a “Sycamore”, escribimos “T” y nos desplazamos hacia atrás en lugar de escribir “Sy”.

El Asistente de Office (también conocido como Clippy) en Microsoft Office era una característica tan odiada que cuando la eliminaron, Microsoft realmente promocionó el hecho de que la nueva versión de Office no tenía “ningún Clippy”.

Los errores de software y los problemas de rendimiento se deben a la necesidad de mantener la compatibilidad con versiones anteriores. El ejemplo más visible:

La respuesta de Balaji Viswanathan a ¿Por qué la gente odia a Windows?

Windows siente mucho odio por estar hinchado, “horrible”, no tiene muchas funciones, a menudo falla, etc. Pero, los que odian no aprecian el desafío de ingeniería con el que nos enfrentamos.

En general:
Compatibilidad de errores (Wikipedia)

¿Cuáles son algunos buenos ejemplos de compatibilidad de errores?

1) No permitir que los usuarios “peguen” texto en el campo de contraseña.

Podría haber sido una característica de seguridad (dudosa) al mismo tiempo, pero ahora hace que los usuarios sean mucho menos seguros al evitar que utilicen un administrador de contraseñas.

2) Encriptación “Export Grade”.

Mantener la compatibilidad con este antiguo estándar de cifrado obsoleto que prácticamente nadie usa y se rompe fácilmente se ha convertido en una vulnerabilidad conocida y explotada en los dispositivos modernos.

Chrome RAM de consumo.

Google Chrome es un excelente navegador, pero debido a su función de caja de arena, extensiones y muchos otros servicios, ha comenzado a consumir una cantidad excesiva de RAM. El uso de Chrome con varias extensiones y abanicos abiertos se convierte en un problema en PC de 2GB. Chrome proporciona algunas características muy útiles, pero tienes que sacrificar RAM por ellas. Esto hace que la gente busque un navegador alternativo y “más ligero”, por ejemplo, Maxthon Nitro – Maxthon.

Registro de Windows (ya sabes)
Javascript (muchos agujeros de seguridad provienen de sitios que requieren Javascript)
NTP / DNS (ataques de reflexión … uuugghh)

En realidad, ahora que lo pienso, cada vez que su software falla es un intento de implementar una característica que se convirtió en un error.

Un ejemplo reciente es la característica de Windows 9. Era una forma fácil de compatibilidad entre Windows 95 y 98, pero ahora que era el momento de crear una Windows 9 real, se convirtió en un error.

¿Puedo nombrar arrastrar hacia abajo para actualizar en Google Chrome? Ese ha sido mi “feachure” menos favorito en mucho tiempo. No puedo saber cuántas páginas web he actualizado al intentar desplazarme hasta la parte superior. Parece un diseño extremadamente pobre tener un gesto con dos significados.

La etiqueta . La mayor desgracia de todos los tiempos.

El maldito Microsoft Word y su lista de numeración.

Es una tarea muy simple. Numerar los puntos principales de los documentos. ¿Es fácil? No Tienes que referir un tutorial. F *** usted si el documento es de 256 páginas. necesitarías registrarte en una clase de tutorial de Microsoft Word.

¡No sé si fue intencional o originalmente un error pero no poder pegar en un indicador de comando usando el atajo de teclado Ctrl + V obtiene mi voto de error! Al menos no era posible en versiones anteriores de Windows, tal vez en Windows 10, aunque no estoy seguro.

Microsoft Office – todo eso.

Al fingir que las comunicaciones deben modelarse como una actividad de composición tipográfica, retrasa muchos años y continúa haciéndolo.