La tecnología GRID

Tenemos millones de ordenadores y dispositivos interconectados en Internet. Pero solo utilizamos este sistema para comunicarnos e intercambiar información. Imaginad que todas estas máquinas pueden decidir en cierto momento trabajar como una única máquina superpotente, compartiendo potencia de cálculo y memoria. No es Matrix, es lo que en el futuro se denominará El Grid.

Actualmente hay varios proyectos (Búsqueda de vida extraterrestre, búsqueda de números primos, romper claves) que utiilizan la potencia de muchos ordenadores de forma rudimentaria. Estos proyectos dividen los datos a tratar en pequeños trozos y los reparten a los usuarios que lo deseen. Una vez el usuario a analizado el trozo de información lo devuelve a los servidores de la organización que se encargan de verificar el análisis.

Ahora imaginad que podéis compartir vuestro procesador cuando no lo utilicéis, y automáticamente pasa a formar parte de un superordenador que utiliza tu ordenador cuando es necesario. Imaginadlo a la inversa, necesitáis mucha potencia de cálculo para resolver cierta tarea (Renderizar una escena 3D por ejemplo), lanzáis el proceso y éste se encargaría de buscar procesadores compartidos por Internet y en cuestión de segundos la tarea habría terminado (Suponemos que cuando Grid funcione, Internet será muy muy rápida 🙂 ).

Todo esto puede sonar a ciencia ficción o profecía pero hay miles de personas que trabajan para hacer este sueño realidad. Actualmente hay muchos «MiniGrids» funcionando en redes locales controladas por científicos, pero aun queda mucho para convertir Internet en un Grid gigantesco.

Uno de los laboratorios donde más avanzada está la investigación es en el Cern (Laboratorio Europeo), donde hace 15 años se creó la WWW gracias a Tim Berners Lee. Esperemos que el Cern nos vuelva a sorprender con algo revolucionario, que se adelanten a los americanos y que cambien nuestras vidas tal y como ha hecho la World Wide Web.

Conferencias Java y la situación laboral de los informáticos

Ayer tuvimos otro par de conferencias para terminar el curso de especialista en J2EE que llevo cursando durante todo el año en el que he aprendido muchas cosas útiles para poder entrar en el mundo laboral con un poco más de idea.

En esta ocasión la primera conferencia me sirvió para darme cuenta que en la CAM aquí en Alicante se desarrollando proyectos serios usando J2EE. Ramón Rubio incidió en la importancia del Modelo Vista Controlador que tienen montado, y que le dan mucha importancia a la seguridad en las aplicaciones de banca. Dedicando hasta un 50% del tiempo de desarrollo solo a la seguridad. Utilizan Bea Weblogic como servidor de aplicaciones y Eclipse para desarrollar.

En la segunda conferencia Aitor Medrano (Ex alumno de la Universidad de Alicante), que es arquitecto J2EE en Indra, nos estuvo explicando todo el ciclo de vida de un proyecto real. Comenzando por los análisis funcionales, técnicos, pasando por los prototipos, el diseño de la interfaz, luego implementación etc. Utilizan un esquema de trabajo bastante cercano al que se supone «ideal» según los libros de Ingeniería del Software; incluso tienen encargados para testear la usabilidad de las aplicaciones. También utilizan Eclipse, pero como servidor de aplicaciones utilizan IBM WebSphere. Un consejo final de Aitor: Nunca reinventar la rueda.

Terminó la conferencia explicandonos un poco como está la situación laboral en Madrid, que deberíamos intentar entrar como Analistas/Programadores y con el tiempo pasar a ser Arquitectos. Aun así nos tocará currar muuuchas horas y siempre cobraremos menos que los gestores (Empresariales y ADE). ¿Cómo véis el futuro de los informáticos? ¿Cómo está la situación laboral en vuestra zona?

Muy interesantes todas las conferencias y saludos desde aquí a todos aquellos que me reconocieron por haberme leido 😉

Descifrando la piedra roseta

Hace unos días comentábamos que no fue fácil descifrar los jeroglíficos egipcios. Algunas de las técnicas que se utilizaron para el desciframiento de los jeroglíficos se siguen usando hoy en día como técnicas para desencriptar información cifrada.

Fue decisivo el descubrimiento por parte de las tropas de Napoleón de la Piedra Roseta en 1799. En esta piedra aparecía el mismo fragmento de texto escrito con jeroglíficos, con escritura demótica (una simplificación usada por los egipcios), y en griego.

Podríamos pensar que ya tenemos solucionado el problema, pero no se pudo descifrar hasta 20 años después. Algunos de los problemas más evidentes son: ¿cómo puedes saber el sonido de una letra si no existe ningún hablante de la lengua? ¿cómo sabemos donde termina una palabra si no usan espacios? ¿cómo sabemos dónde está el verbo?. Pueden parecer tonterías, pero cuando tenemos 100 símbolos seguidos sin un sentido aparente estas cuestiones son las primeras que aparecen.

Champollion, un francés experto en lenguas orientales, consiguió una copia de la Piedra Roseta y estuve 10 años trabajando en su desciframiento. Para conseguirlo comenzó suponiendo que los sonidos fonéticos serían los mismos que los de la lengua copta egipcia. Escogió una serie de nombres de faraones (Cleopatra, Ptolomeo, Ramsés), palabras que seguramente no habían cambiado su pronunciación a lo largo de los años y se puso manos a la obra.

Resulta que los nombres de faraones se rodean con especie de «óvalo» conocido como cartucho. En la piedra roseta aparecía uno de estos cartuchos y Champollion supuso que se correspondía con el nombre de Ptolomeo que aparecía en la parte traducida al egipcio. Champollion consiguió también el cartucho del nombre de Cleopatra a partir de unas inscripciones del templo de Philae (Un templo precioso por cierto), y comenzó a encontrar coincidencias:

Fijaros en que hay ciertas letras que se repiten en ambos nombres, y la representación con jeroglíficos coincide. A partir de ese momento ya se había superado el paso más difícil. Champollion se dedicó a recopilar muchos cartuchos e ir descifrandolos hasta tener todos los sonidos jeroglíficos para luego comenzar a traducir cada palabra, que no fue difícil por que la escritura jeroglífica es una representación antigua del copto (lengua que Champollion conocía a la perfección).

La técnica de buscar un «punto de anclaje» (Champollion utilizó los nombres de los faraones) a partir del cual podemos comenzar a descifrar el resto del mensaje es muy común y se ha utilizado en muchas ocasiones durante la historia. Por ejemplo, durante la 2ª Guerra mundial, los aliados capturaban los mensajes alemanes cifrados con la máquina Enigma que cambiaban la clave todos los días. Los aliados sabían que a primera hora de la mañana los alemanes enviaban un informe meteorológico cifrado, por lo que buscaban «puntos de anclaje» en este mensaje utilizando palabras relacionadas con la meteorología: Sol, nubes, lluvia, temperatura etc… Para ello utilizaban la máquina Colosuss, una vez descifrada la clave del día las comunicaciones alemanas eran transparentes para los aliados.

Para terminar un pequeño ejercicio (muy simplificado) para que quede todo más claro y veáis la importancia de encontrar un «punto de anclaje». Por ejemplo, si tenemos el siguiente texto cifrado:

wo gnghcovg goqtñg

Os resultará complicadillo descifrarlo. Pero si os digo que aparece la palabra «elefante» el problema se simplifica mucho. A ver quien descifra antes el mensaje 😉

George Boole

Hace un tiempo estuvimos recordando las hazañas de Leibnitz en el siglo XVII, uno de los primeros hombres que imaginaron algo parecido a un ordenador. Pero en el camino hasta la creación de un ordenador como el que estás usando ha intervenido mucha gente. Una de las aportaciones más importantes fue la de George Boole que sentó las bases de la lógica matemática que utilizan los ordenadores y sistemas digitales de hoy en día.

George Boole nació en el seno de una familia modesta en el Siglo XIX, sus padres enseguida notaron su talento y le ayudaron a desarrollar sus capacidades de forma autodidacta. Según cuenta la leyenda fue mientras caminaba por un prado cuando tuvo la idea de que se podrían expresar las relaciones lógicas que postuló Aristóteles dos milenios antes de forma algebraica.

Pero cuando realmente le vino la inspiración a Boole fue cuando a partir de unas discusiones entre sus amigos De Morgan y Hamilton comenzó a desarrollar una nueva lógica a partir de la lógica de Aristóteles. Comenzó usando letras para representar a las clases de la lógica clásica de Aristóteles. Consiste básicamente en utilizar símbolos para representar realidades, esto puede parecer muy simple pero tiene muchas consecuencias. Por ejemplo, si x representa a humanos e y representa a las cosas altas, se define xy como la clase de las cosas que pertenecen a la vez a x y también a y. Por lo tanto xy representaría a los humanos altos. La conclusión inmediata de esto es que si este operador se aplica a una clase sobre si misma obtenemos la misma clase, yy=y o xx=x . Actualmente este operador es conocido como la intersección.

El siguiente paso es sustituir estas clases por números y ver cuando se siguen cumpliendo las propiedades. ¿Cuando es verdadero xx=x ? Resulta que solo se cumple para dos números, el 0 y el 1 (Probadlo si no os lo creéis). Esto nos lleva a que el álgebra de la lógica se convierte en álgebra ordinaria si trabajamos con los valores 0 o 1. Que justamente son los valores con los que trabaja cualquier sistema digital. Boole también definió los operadores + y -. La suma de x + y representa todas las cosas que contienen a x e y (Conocido actualmente como Unión) y la resta x -y los elementos que pertenecen a x y no están en y.

Este párrafo es un poco durrillo, los no aficionados a las matemáticas pueden saltarselo ;). A partir de éstas reglas Boole llegó a conclusiones que muchos siglos antes había llegado Aristóteles, pero en esta ocasión utilizando su propia lógica basada en el 0 y el 1. Por ejemplo, si x-x = 0 y sacamos factor común tenemos que x(1-x)=0. Que en notación de conjuntos sería x INTERSECCION !x = conjunto vacío, es decir que nada puede pertenecer y no pertenecer al mismo tiempo a una clase determinada. Por ejemplo, una cosa no puede ser grande y al a vez ser pequeña. Esto lo denominó Aristóteles como principio de no contradicción. Este tipo de coincidencias animaron a Boole a seguir trabajando en su nueva lógica.

Se podría decir que el sistema lógico de Boole englobaba toda la lógica de Aristóteles pero iba también mucho más allá. Aunque aún quedaba mucho para construir para conseguir el sueño de Leibnitz. Hasta Boole la lógica no había avanzado prácticamente nada desde hacía dos milenios. Pero a partir de los trabajos de éste, la lógica no ha parado de evolucionar a pasos agigantados. Las reglas lógicas de Boole resultan adaptarse perfectamente a un comportamiento digital ya que trabajan con ceros y unos. Por lo que hoy en día la Lógica de Boole esta presente en nuestras vidas cotidianas ya que es la base del funcionamiento de cualquier aparato electrónico digital.

Estas notas sobre la historia de la informática están inspiradas en el libro La computadora Universal de Martin Davis que leí en la asignatura História de la informática impartida por nuestro colega blogero Jose Luis.

Para los interesados en la Lógica de Boole en la wikipedia, tenéis una pequeña introducción.

Vuestro nombre en Egipcio

Via Ephemera encuentro una web donde automáticamente transforma el texto que pongamos en un textbox a Jeroglíficos Egipcios.


Kirai escrito con jeroglíficos egipcios

En la escritura jeroglífica, aunque no lo parezca, cada símbolo representa un sonido, y no una palabra. Por ejemplo, el típico dibujo del halcón representa el sonido ‘A’, por eso aparece tantas veces.

Descubrir esto tan ‘simple’ supuso uno de los grandes problemas criptográficos de la historia que fue solucionado finalmente gracias a Champollion y la Piedra Roseta.