Un error le costó a la NASA 150 millones de dólares

Es una historia antigua, se produjo en 1962, pero es muy interesante: Cómo un solo error de código le costó a la NASA 150 millones de dólares: el desastre de la Mariner 1. Un resumen de la historia es:

Enviar un vehículo al espacio por el procedimiento de sujetarlo a un proyectil descomunal impulsado por explosiones controladas no es precisamente tarea fácil. Un solo error a menudo es la diferencia entre el éxito y el desastre total. Para la sonda Mariner 1, ese error fue el símbolo “¯”.

[…]

¿Qué ocurrió con el cohete Atlas Agena que llevaba la Mariner? El escritor de ciencia ficción Arthur C. Clarke lo definió como el guión más caro de la historia, pero en realidad no era un guión, sino un guión alto o superguión. El programador que transcribió el código que regía uno de los sistemas de navegación se comió este símbolo.

Lista de países no ordenada

En Amazon me he encontrado la siguiente lista desplegable para seleccionar un país:

¿Qué hace España ahí, entre Eritrea y Etiopía? Parece que los nombres de los países están en inglés, pero la lista está ordenada a partir de los nombres en Español. ¡Qué lío!

Y en otra parte de Amazon me encuentro esta otra lista:

¿No son capaces de ordenar las listas siempre de la misma forma?

Google no es infalible

Blogger, el sistema de blogs de Google, lleva 2 meses fallando. ¡Viva Google!

En Blogger existe una opción para recibir por correo notificaciones cuando se publique una entrada o comentario nuevos. Sin embargo, desde mediados de octubre el sistema no funciona, tal como podemos leer en el hilo Not receiving email notifications from my blog posts.

Lo más gracioso son las respuestas que ofrece alguien que parece que habla en nombre de Google:

17/11/2019

08/12/2019

Qué bien que Google no se haya olvida del tema y siga trabajando en ello 2 meses después.

No es NO

En un sistema en producción, no se deben mostrar estos mensajes de error:

user warning: Table ‘drupal.semaphore’ doesn’t exist query: SELECT expire, value FROM semaphore WHERE name = ‘locale_cache_es’ in /usr/share/drupal6/includes/lock.inc on line 149.

A un posible atacante se le está ofreciendo mucha información que le puede ayudar a planificar un ataque. Y a un usuario normal, toda esa información no le ayuda para nada, al revés, le desconcierta. Y el desarrollador, si necesita tener acceso a esa información, seguramente estará registrada en un fichero de log, junto con más información necesaria para depurar el error.

Así que, no, no y no. “No es NO”.

Mensajes de error que no deberían aparecer

Aparece el mensaje de error:

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls en menu_set_active_trail() (línea 2405 de /srv/www/edutec.es/web/includes/menu.inc).

Y además, conocemos algo de la estructura de directorios del sitio web.

Excelente.

Este mensaje aparece porque la función each() ha sido “deprecated” en PHP 7.2.0:

Warning
This function has been DEPRECATED as of PHP 7.2.0. Relying on this function is highly discouraged.