Cómo regalar un ordenador (o dos)

Hace unos meses que acumulaba en una habitación de mi casa un par de ordenadores ligeramente obsoletos, de esos que son más que suficientes para cualquier aplicación doméstica razonable pero tienen la desventaja de haber perdido su lustre, aparte de hacer un ruido infernal. Un Athlon K7 y un Pentium 4 de los primeros, los dos alrededor del gigahercio de reloj, con la memoria algo justa pero suficiente.

Me he vuelto un usuario convencido de ordenador portátil: no ocupa espacio, no hace ruido y no es mío: todo ventajas. Sólo le faltaría llevar Linux, pero es un tablet. Cuando el tiempo personal escasea, lo último en que piensas es dedicar una semana a intentar adaptar la última versión de Ubuntu con paquetes no oficiales, parches, controladores y código “hazlo-tú-mismo” para obtener algo que funciona (pero ninguna de las teclas especiales funciona, el segundo puerto USB no reconoce a la lámpara de lava cuando hay luna llena, y el boli del tablet sólo pinta seises en grupos de tres).

Decidí donar mis ordenadores en desuso al colegio de mi niño. Un colegio público siempre agradece estas cosas. Como la configuración no era uniforme, y había algunos problemillas de hardware, procedí a revisarlos, quitando componentes de aquí y montándolos allá. Al final, quedaron unos ordenadores muy presentables, con dos discos duros cada uno y dos unidades de DVD-ROM y CD-RW, respectivamente. Para limpiar los discos duros (tenían un batiburrillo de particiones) instalé en ambos Ubuntu 6.10 (Edgy Eft, más o menos tritón irritable), en una configuración por defecto.

Muchas semanas después de haber empezado la tarea (sólo le dedicaba unos minutos cada fin de semana), llegó el momento de la entrega. Transportar las máquinas fue un dolor, pero la alegría de la buena acción que realizaba pudo con todos los sudores. ¡Pero! Nadie en el colegio sabe nada de Linux. Cuando le conté al director que no tenía otra cosa para instalar, comprendí por su expresión que lo que había hecho era darle mucho trabajo, y de una clase que no estaba preparado para realizar.

Moraleja: educar a los hijos en el camino recto del software libre también es cosa de los padres.

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).