Generando electricidad hace 2.200 años

Antigua batería de Bagdad
El envoltorio cuproso estaba sujeto al cuello de la vasija por algo parecido al betún, sobresaliendo un centímetro, y daba la impresión de haber estado revestido con una fina película de plomo. Los arqueólogos no supieron dar explicación a aquel descubrimiento, así que enviaron una muestra al Museo Nacional de Iraq para que lo investigaran más a fondo. Tres años más tarde, en 1939, y tras multitud de pruebas y reproducciones, el director del museo (a la sazón el alemán Wilhelm König) lanzó la noticia bomba que conmocionó a todos los científicos del mundo: aquello podría tratarse de la primera y más antigua batería de la historia. Desde entonces, aquel descubrimiento pasó a conocerse como la batería de Bagdad, a veces denominada batería parta también.
Se especuló con que el comportamiento del instrumento era exactamente igual que el de una pila eléctrica actual, pudiéndose haber unido varios de ellos en serie para aumentar el voltaje producido; no en vano, König relacionó el descubrimiento con multitud de varillas de cobre y cilindros de hierro similares procedentes de Mesopotamia. La corrosión que presentaban los cilindros metálicos del interior se supuso producida por algún tipo de elemento cítrico contenido en las vasijas, lo que actuaría como electrolito para generar electricidad.
El cobre y el hierro forman una muy buena pareja electroquímica, de modo que, en presencia de cualquier electrolito o solución iónica, son capaces de generar potencial eléctrico. De ello se encarga la llamada corrosión galvánica, un proceso en el que un metal menos noble, en presencia de otro más noble y de un electrolito, se corroe. Esta corrosión (que no es más que un movimiento de iones desde el ánodo hasta el cátodo) se aprovecha en pilas y baterías para generar una corriente de cierto voltaje.

Esquema y reproducción de las baterías
Willard Gray, ingeniero estadounidense de la época, decidió tratar de hacer una réplica de las baterías después de apoderarse de algunos dibujos y planos del dispositivo realizados por el científico alemán Willy Ley. Rellenó el recipiente con sulfato de cobre y consiguió generar medio voltio de electricidad. Posteriormente declaró que, en los tiempos en los que se fabricaron las baterías originales, se podría haber utilizado otro líquido cítrico a modo de electrolito al alcance de los habitantes del momento, como, por ejemplo, zumo de uva corriente. Treinta años más tarde, el científico alemán Arne Eggebrecht volvió a reproducir el dispositivo, consiguiendo 0,9 voltios, con vinagre como electrolito.
Sin embargo, desde aquel momento hubo una corriente escéptica en favor de otras explicaciones más lógicas para aquellos instrumentos. Nunca se descubrió, en ninguna excavación, material alguno que hubiera podido funcionar como unión entre varias baterías (como cables metálicos), por lo que la conexión en serie quedó descartada. Además, ¿para que demonios iban a necesitar electricidad hace dos mil años?
La explicación más lógica a las baterías de Bagdad la ofreció el propio Willard Gray cuando afirmó que, en su reproducción de las vasijas, había introducido una estatuilla de plata en el interior que, dos horas después, se había vuelto de color dorado o cobrizo. Según él, había demostrado que la batería funcionaba y que su probable uso era el destinado a restaurar objetos de plata, lo que hoy conocemos como galvanización o galvanizado.
Sin embargo, y para vapuleo de esta información, científicos posteriores a Gray demostraron que, con el electrolito utilizado y la corriente generada, era imposible que en dos horas se pudiera haber galvanizado nada. Además, recordaron que en ningún lugar de estudio arqueológico en el mundo se ha encontrado jamás objeto alguno galvanizado.
Los más radicales afirman que esas vasijas se utilizaban simplemente para guardar legajos o cosméticos. El betún que tapa la boca de las vasijas, dicen, es aislante eléctrico, por lo que sería imposible sacar la electricidad hacia fuera sin modificar el diseño. Además, una celda galvánica requiere de un rellenado más o menos continuo de electrolito, por lo que habría sido una solemne tontería haber sellado herméticamente las vasijas con dicho betún. Es posible, afirman, que pergaminos guardados en estos recipientes se pudrieran por completo en su interior, dejando probablemente un rastro de residuos orgánicos ligeramente ácido.
Durante la invasión de Iraq del año 2003, llevada a cabo por una coalición de países encabezada por EE. UU., y que marcó el inicio de la Guerra de Iraq, el Museo Nacional fue asaltado y saqueado, perdiéndose infinidad de piezas de un valor incalculable, entre ellas las baterías de Bagdad. No se sabe a ciencia cierta qué es lo que fue de ellas y, aunque algunas versiones afirman que pudieron ser retiradas para su protección por el mismo gobierno iraquí como medida de protección ante los bombarderos, los más escépticos consideran que pasaron a formar parte del tráfico ilegal de antigüedades mesopotámicas. Una auténtica pena.
El problema «Fizz Buzz», o cómo cribar programadores en una entrevista de trabajo

«Fizz Buzz»
Las entrevistas de trabajo pertenecen a un universo aparte muy alejado del mundo real. Te hacen preguntas incómodas a las que tienes que contestar de manera sicológica, te estimulan o te procuran motivar de una manera peculiarmente curiosa, te examinan atentamente con la mirada y, de vez en cuando, te prueban técnicamente para verificar tus conocimientos reales. El orbe informático no se escapa de estos ensayos y, con cierta frecuencia, recurre a los exámenes expertos para determinar la valía de un candidato o su más absoluta incompetencia.
El problema conocido como «Fizz Buzz» es un buen ejemplo de lo anteriormente comentado. No es más que un método para descartar, de una forma ágil, a un aspirante a programador, ahorrando mucho tiempo al contratador y, por supuesto, al posible contratado. El dilema en sí parece sencillo (y, en el fondo, lo es), pero tiene truco.
El enunciado del problema que se plantea a los candidatos es el siguiente:
Escribe, en el lenguaje de programación que desees, un programa que muestre en pantalla los números del 1 al 100, sustituyendo los múltiplos de 3 por el palabro “Fizz” y, a su vez, los múltiplos de 5 por “Buzz”. Para los guarismos que, al tiempo, son múltiplos de 3 y 5, utiliza el combinado “FizzBuzz”.
Una tontería, ¿no? Pues no. Este programa se puede resolver de cincuenta millones de maneras diferentes, lo que importa (lo que realmente buscan) es que lo hagas de la forma más elegante posible, esto es, utilizando el menor número de líneas de código o, en su defecto, de un modo tal que eyaculen de placer con el procedimiento aplicado. Todo vale, o un sinfín de sentencias condicionales anidadas de Basic o una de línea de 56 caracteres en Ruby.
Los resultados de «Fizz Buzz» son concluyentes y, para mí, bastante preocupantes. Dicen los expertos de las mejores empresas de desarrollo que la mayoría de los graduados, ingenieros o diplomados en informática no pueden hacerlo o, por el contrario, lo saben resolver pero invierten demasiado tiempo en ello. Los entendidos comentan que cualquier candidato deseable no debería tardar más de dos o tres minutos en terminarlo y, pasados 10 minutos, podría ser descartado sin ningún tipo de miramiento.
Parece ser que sólo uno de cada doscientos programadores en una entrevista de trabajo es capaz de pasar la prueba, y eso es muy alarmante.
Lo curioso es que el juego proviene de un divertimento adolescente, últimamente también ligado al hecho de beber alcohol en grupo. Un conjunto de chavales en corro recitan la serie lo más rápido posible, a razón de un número cada uno e introduciendo los «Fizz», los «Buzz» y los «FizzBuzz» correspondientes: 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16… Y así hasta el 100 (que, por cierto, es «Buzz»). El que se equivoque bebe; y se vuelve a empezar.
A mí mismo me ha tocado lidiar con esta prueba no hace mucho, y pienso que se puede resolver, elegantemente en muy poco tiempo, siempre y cuando tengas la cabeza estructurada y pienses como un programador de verdad. Existen miles de soluciones en cientos de lenguajes de programación diferentes, y en la web Technical Support existe un hilo en el que se pueden encontrar un montonazo de ellas, algunas muy curiosas y otras muy divertidas. Hay una versión para la consola de MS-DOS, otra para Excel, versiones para Python, ensamblador, GW-BASIC, PHP y hasta una en código MSIL y otra en el lenguaje de programación esotérico Ook!
Yo, así a bote pronto, voy a improvisar dos, una en Visual Basic .NET y otra en C# (ambas como aplicación de consola). Y reto a los lectores a que, en cualquiera de estos dos lenguajes (que son de los más típicos) intenten escribir versiones con menos líneas de código y más elegantes. Se puede hacer seguro, y ahora mismo se me está ocurriendo una manera, pero voy a plasmar mis primeras ideas para dar más juego.
Mostrar códigoOcultar código
For i As Byte = 1 To 100
If i Mod 3 = 0 Or i Mod 5 = 0 Then
If i Mod 3 <> 0 Then
Console.WriteLine("Buzz")
ElseIf i Mod 5 <> 0 Then
Console.WriteLine("Fizz")
Else
Console.WriteLine("FizzBuzz")
End If
Else
Console.WriteLine(i)
End If
NextMostrar códigoOcultar código
for (byte i=1; i<=100; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
if (i % 3 != 0)
{
Console.WriteLine("Buzz");
}
else if (i % 5 != 0)
{
Console.WriteLine("Fizz");
}
else
{
Console.WriteLine("FizzBuzz");
}
}
else
{
Console.WriteLine(i);
}
}Pues, lo dicho, a pensar un poco y a fizzbuzzear un rato.
teknoPLOF! INTO alt-tab #4

teknoPLOF! INTO alt-tab
teknoPLOF! en alt-tab publica su cuarta entrada. En esta ocasión hablamos del sistema servidor y gestor de bases de datos SQL Server, de Microsoft, y de cómo diseñar una estrategia lógica de copias de seguridad.
Diversos modelos de recuperación para diversos tipos de backup: completo, diferencial o del registro de transacciones. Cómo configurar un sistema según la empresa, el tipo de origen de datos y su carga, ya sea para bancos de datos pequeños o para inmensas implementaciones que necesiten soluciones de alta disponibilidad.
Podéis leer el post, vía alt-tab, aquí: http://alt-tab.com.ar/elegir-la-mejor-estrategia-de-backup-en-sql-server/
GNU/Linux sigue adoleciendo de facilidad de uso

Tux, i love u, but...
Ayer se murió mi portátil grande (de tamaño). Era un Acer chungo que tenía veinte mil años y, la verdad, había pasado por millones de batallas, formateos, cambios de hardware, añadidos varios y más putadas. El ordenador es viejo y, para más ende, con teclado en portugués y una tarjeta WiFi en placa que funcionaba a veces no y a a veces tampoco. El pobre había sufrido un inmejorable Windows XP durante todo este tiempo.
Bueno, muerto eres, se acabó; te desgracio vivo y, ya de paso, te voy a meter la última distro de Ubuntu para que te pongas bonito y me dejes tirar unos cuantos años más contigo, aunque sea para lo básico, que no necesito más de ti, corazón.
Me descargo la última versión de Ubuntu, la quemo en un cedé y me la llevo al aparato. Arranco y se inicia la instalación; todo correcto al más mínimo detalle. Configuro las particiones de root, home y swap con sus respectivos sistemas de archivo, asigno el espacio, determino mi configuración de teclado, configuro el nombre de la máquina y, también, el de usuario y su contraseña correspondiente. El tema va a las mil maravillas.
De pronto, sucede algo inesperado: tras completar la instalación, el ordenador no arranca, se queda atontado, sin decir nada y con la pantalla negra y un bonito cursor pixelado parpadeando en monocromo. ¿Qué demonios?
Instalo el sistema una, dos y hasta tres veces más, cambiando configuraciones y variando asignaciones de espacio, sistemas de archivo, particionados, etcétera. Nada de nada; sigue haciendo lo mismo, se me queda colgado en un arranque normal, en modo depuración y hasta haciendo el test de memoria. ¡Qué cosa más rara! Esto va a ser la tarjeta wireless que va mal y me bloquea el proceso: la desactivo, pero todo sigue igual.
Llegó un momento en que mis conocimientos no daban más de sí. Es posible que siendo un gurú en temas de hardware, controladores y configuraciones linuxeras habría podido solventar el asunto de una manera más que elegante, pero no todos aquellos que nos sentamos delante de un ordenador tenemos que conocer los entresijos del kernel del sistema, la herencia de ensamblados que necesitan los aparatos para funcionar o las librerías necesarias para hacer correr un determinado controlador.
La solución fue harto sencilla, a la par que frustrante: instalar una versión de prueba de Windows 7 que ruló de perlas desde el primer cuadro de diálogo de instalación hasta la última actualización del sistema. Y esto es lo que no me parece lógico y normal.
Si GNU/Linux se quiere comer una buena porción de la tarta de chocolate que representan los sistemas operativos actuales, tiene que hacer de tripas corazón y asumir que el mercado casero informático no está dispuesto a lidiar con negras consolas de texto, compilaciones de paquetes de instalación o rutas de acceso imposibles. El hecho de una mayor robustez, una seguridad inmejorable y un precio nulo no va a ser nunca una buena baza a favor para la gente de a pie. No todos aman el software libre, algunos quieren no volverse locos para instalar un programa descargado de Internet. Como decía Bill Gates en sus tiempos mozos, «que lo tuyo sea mejor no importa, ¿no te das cuenta?».
Frases con historia (XV)
He viajado a lo largo y ancho de este país y he hablado con las personas más preparadas y puedo asegurar que el procesamiento de datos es una moda pasajera que no durará más de un año.
Editor mercantil de Prentice Hall, 1957.

