Equivocarse es de humanos

La sonda Mars Global Surveyor, desaparecida en noviembre de 2006 en órbita del planeta Marte, pudo sucumbir ante un pequeño error de programación. La noticia, reducida a su mínima expresión, muestra a una agencia espacial plagada de incompetentes, digna de una Loca Historia de las Galaxias protagonizada por programadores descuidados, y no refleja en absoluto la realidad de lo sucedido.

Hubo, en efecto, un error de programación. Dos registros de memoria actualizados en junio de 2006 tenían un valor incorrecto. El ajuste de rutina de los paneles solares del 2 de noviembre lleva a los motores de los paneles a desplazarlos hasta el final de su carrera, generando una serie de alarmas. El ordenador de a bordo interpreta que uno de los motores está atascado, entra en su modo seguro y procede a orientar la nave de modo que el calor del Sol provoque una dilatación y lo suelte. Pero tras comunicar este hecho al control de tierra, la antena queda orientada incorrectamente; esto provoca la pérdida de comunicaciones, que habría sido temporal de haberse tenido en cuenta en el diseño original la estabilidad térmica de las baterías en esta situación. Por pura casualidad, una de las dos queda orientada hacia el Sol: se sobrecalienta y se descarga, y provoca en 11 horas la descarga en cascada de la segunda. La nave, desorientada y sin energía, queda a la deriva; la misión se da por finalizada.

La realidad es siempre más interesante que la noticia. Lo cierto es que el éxito de la MGS fue tan grande que su misión fue ampliada cuatro veces consecutivas por los responsables de la agencia espacial americana. La nave, en órbita marciana desde septiembre de 1997, tuvo tiempo de fotografiar varias veces la superficie completa del planeta, lo que ha permitido estudiar los patrones atmosféricos estacionales. Descubrió cráteres nuevos, que no estaban al principio de su misión. Más importante aún: aportó una de las evidencias más concluyentes en favor de la hipótesis del origen hídrico de los barrancos de Marte, ofreciendo así una de las piezas más relevantes de la nueva geología marciana y, tal vez, un motivo para ir allí en persona algún día.

Centenares de científicos analizarán durante muchos años los datos aportados por la MGS; los ingenieros han obtenido una experiencia sin precio sobre los avatares de una misión realmente longeva; y los legos nos hemos quedado con la maravilla de sus imágenes de aquel desierto lejano y no tan seco como creíamos. Descanse en paz.

Matemáticas

Stephen Hawking afirmó en su Historia del tiempo que:

“Alguien me dijo que cada ecuación que incluyera en el libro dividiría por dos las ventas, de modo que resolví no introducir ninguna. Pese a todo, sí que terminé incluyendo una: la famosa E = mc2 de Einstein. Espero que eso no haga huir a la mitad de mis lectores potenciales.”

Yo no tengo lectores, así que me puedo permitir incluir tantas matemáticas como quiera. Incluso pueden ser erróneas. Pero me sirven para hacerme ilusiones. Ay, la vanidad.

El caso es que incluir una cita matemática en una bitácora no es fácil. La solución más evidente es utilizar algún programa externo para componer ecuaciones (como OpenOffice.org Math, que viene de paquete con OpenOffice.org). Luego, se puede sacar una captura de pantalla de la ecuación, recortarla y redimensionarla, para finalmente subirla al blog como una imagen.

Pedestre. Incómodo. Primitivo. Para un ingeniero, el mundo es una colección de juguetes sin suficientes prestaciones: vamos a añadirle alguna a nuestra bitácora. Necesitaremos:

  1. Una versión reciente de Firefox. Esta receta se puede hacer con Internet Explorer, pero no sale tan rica (luego diré algo más al respecto).
  2. Un paquete de fuentes para matemáticas como éste. Vienen instaladores para las principales plataformas.
  3. ASCIIMathML. Un script capaz de transformar para una página web texto escrito con una sintaxis sencilla en MathML.

Firefox viene con soporte de MathML de serie, y sólo se necesita instalar el paquete de fuentes matemáticas del punto 2. Para Internet Explorer, es necesario utilizar un plugin llamado MathPlayer (funciona a partir de IE6), pero a cambio, no será necesario el paquete de fuentes.

ASCIIMathML está desarrollado en Javascript, y para utilizarlo basta con incluir en la página este código (en cualquier lugar):

<script type="text/javascript" src="ASCIIMathML.js"></script>

Naturalmente, es necesario cambiar el path del script para que lo cargue de modo correcto.

Usar ASCIIMathML es sencillo: basta escribir nuestras fórmulas en un formato de sólo texto sencillo, delimitándolas con ``, o bien signos de dólar ($). Algunos ejemplos:

  • `sin^-1(x)`: la función inversa del seno.
  • `d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h`: la fórmula de la derivada.
  • `int_0^1f(x)dx`: una integral definida.

La sintaxis se describe en la página que ya he enlazado, y con más detalle del que nadie necesitaría saber aquí. Además, el script tiene algunas variables globales en su cabecera que sirven para cambiar el aspecto de los resultados:

var notifyIfNoMathML = true; // display note if no MathML capability
var alertIfNoMathML = false;  // show alert box if no MathML capability

Cambiando estos dos valores se puede determinar que se notifique al usuario mediante un aviso en lugar de la fórmula a mostrar, o con un popup (o ambos, si se quiere).

var mathcolor = "red";       // change it to "" (to inherit) or any other color

Esto lo pondría como "". Queda un poco molesto que las fórmulas aparezcan en rojo, como si no fueran suficientemente intimidatorias de por sí.

var mathfontfamily = "serif"; // change to "" to inherit (works in IE)
                           // or another family (e.g. "arial")

El valor debería ser el de una familia de fuentes aceptable en CSS. "sans-serif" también debería funcionar.

var showasciiformulaonhover = true; // helps students learn ASCIIMath

En producción, esto podría ser false para evitar ruidos innecesarios.

var decimalsign = ".";        // change to "," if you like, beware of `(1,2)`!

En castellano, el separador correcto es ",". Si se pone, hay que tener cuidado de insertar un espacio después de cada coma cuando no queremos que la coma actúe como separador decimal (por ejemplo, en n-tuplas o funciones de más de una variable).

El problema de Metro de Madrid

Metro de Madrid vuela. Para ser más exactos, sus responsables están corriendo en círculos y agitando fuertemente los brazos, a ver si despegan de una vez. Mientras tanto, el público usuario sufre un número de averías diarias variable entre cero (según fuentes de la Comunidad de Madrid) y cuatro (según ciertos diarios antisistema). Entre ambas cifras, la empresa niega la mayor y achaca las inexistentes incidencias a sabotajes (en medios más respetables).

El problema de Metro no surge de una falta de inversión en mantenimiento, como sugieren algunos. En realidad, no es ni siquiera un problema, porque lo que está sucediendo está planificado. A lo largo de los últimos años, el sistema general de conservación de convoyes e infraestructuras ha pasado de un mantenimiento cíclico y preventivo a un nuevo modelo de mantenimiento avanzado o proactivo, en el que se utilizan modelos matemáticos y variables indicadoras para realizar predicciones sobre el momento en el que será necesario efectuar una intervención.

Naturalmente, ni siquiera el ingeniero más puesto de crack se cree que sea posible predecir con un 100% de fiabilidad cuándo va a fallar el soporte de un motor por el sonido que hace cuando se le da un martillazo (exagero un poco, pero las variables indicadoras se definen como parámetros fácilmente medibles sobre un sistema operativo, es decir, no desmontado; y es cierto que se auscultan los motores). Admitamos pulpo como animal de compañía y un 50% de fiabilidad en la predicción, no sin antes notar que me he inventado esa cifra.

En realidad no importa. Lo que sí importa es lo que se hace en caso de fallo en la bola de cristal. La mantecnología avanzada (así la llaman, de veras) afirma que debe realizarse entonces un mantenimiento correctivo. En un idioma más corriente, diríamos que si se ha roto, entonces pasamos al Plan B: ¡arreglarlo!

Pero para entonces la incidencia ya ha ocurrido, y los pasajeros ya están tirados en la vía. Se va perfilando la cuestión: el mantenimiento preventivo tiene un coste muy bajo en mano de obra y capital. Apenas lo que le pagan al directivo que lo implanta y lo que cuesta despedir a la gente que sobra de los talleres. El mantenimiento correctivo es más caro (porque hay que hacer algo, no como en el otro), pero ¡oh desgracia! parte de sus costes son inmateriales: daño a la imagen y menoscabo de la calidad. Peor aún, son diferidos en el tiempo.

El punto de inflexión entre preventivo y correctivo está, precisamente, en esa cifra de fiabilidad de predicción que me inventé antes. Los costes inmediatos del plan dependen de ella, siendo el plan más barato cuanto más alta se estime. Así pues, no hay incentivo para que el diseñador del plan intente aproximarse a la realidad; antes bien, ofrecerá una fiabilidad tan cercana al 100% como sea posible, sin que provoque espasmos de risa floja a quien lo lea. Ya oímos pensar al directivo de antes:

“Para cuando mi plan tenga consecuencias ya estaré en otro departamento, la culpa de los fallos la tendrá otro y a mí se me recordará por la espectacular rebaja de costes. Y que me quiten la casita en la playa que me compré con la paga de objetivos.”

Los directivos suelen rotar con un periodo similar al de las elecciones, por cierto. A veces menos.