Category Archives: Historia

Tim Berners-Lee, la WWW, el CERN y Europa.

Tim Berners-Lee (Inglés) creó la World Wide Web que todos usamos hoy en día en el CERN (Laboratorio científico situado entre Suiza y Francia). Por lo que se podría decir que los americanos crearon la base de Internet, pero en Europa creamos la Internet actual que todo el mundo usa.

La primera web que existió estaba en http://info.cern.ch, y en ella Tim Berners explicaba en que consistía la www. Via Chacobo encuentro una anecdota sobre la decisión de qué nombre darle a la WWW:

Tim Berners-Lee: Al buscar el nombre para mi proyecto, buscaba palabras que sugirieran su nuevo tipo de estructura. Malla de Información era una de las candidatas, pero en inglés (mesh) era parecido a la palabra jaleo o desastre. Pensé también en Mina de Información (MOI) pero en francés significa ‘yo’ y era demasiado egocéntrico, y la alternativa inglesa (The Information Mine) TIM era aún más egocéntrica. Buscaba unas siglas características, por lo que decidí que empezaría todos los programas implicados en este sistema con las siglas ‘HT’ de HiperTexto. Finalmente apareció otro nombre, utilizado en matemáticas para indicar una colección de nodos con vínculos entre ellos: la telaraña (web). Decidí pues dar el nombre de Telaraña de Ámbito Mundial, más conocida por sus siglas en inglés WWW o World Wide Web.

Hoy en día Tim Berners es el director del World Wide Consortium y está definiendo la futura Web Semántica. En el CERN actualmente se trabaja en el Grid y en temas de física se está construyendo el LHC (Con el que se revolucionará el mundo de la física de partículas) del cual hablaremos en futuros posts.

Y yo el día 21 de este mes me marcho 2 meses a participar en el proyecto Grid. Así que tendremos dos meses de posts desde Suiza antes de marchar a Japón 😉


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.


Historia de la programación

Ya había visto algún que otro poster con la linea evolutiva de ‘todos’ los lenguajes de programación. La famosa editorial americana O’reilly acaba de publicar un espectacular poster que sin duda fascinará a todos los programadores.

Todo empezó hace 50 años con el nacimiento de Fortran. Es interesante ver las conexiones entre los diferentes lenguajes, y ver como algunos de ellos desaparecen mientras que otros siguen dando guerra. Pero yo creo que lo más importante es aprender de la historia y poder sacar conclusiones sobre lo que nos depara el futuro.

¿Cómo será el poster de aquí 50 años? ¿Quién ganará la batalla Java o .NET? ¿Y en los lenguajes concernientes a tecnologías web que pasará?

Yo personalmente cada vez le veo el futuro más negro a Java, simplemente porque cuando llegue Longhorn de aquí 2 años .NET entrará en casi todos los ordenadores del mundo. Una vez más Microsoft aprovechará su posición en el mercado de los sistemas operativos para introducir una nueva tecnología y desbancar a la competencia. ¿O realmente es Sun Microsystems quien está fallando en su estrategia y está dejando que Microsoft gane la batalla al igual que pasó con Netscape? ¿Será Google quien le de un giro a la industria introduciéndose en nuestros escritorios?


Origen militar de Linux

Todos sabemos que Linux está basado en la filosfoía de Unix. Veamos de donde surgió la filosofía de Unix:

A mediados de los 60 comenzó a crearse el concepto de tiempo compartido, o sistemas multiusario en el MIT con el proyecto CTSS empleando un mainframe 7094. Este sistema evolucionó dentro del proyecto MAC financiado por la Agencia de proyectos de investigación avanzada de defensea de los Estados Unidos de América . Este proyecto rechazó usar el nuevo Sistema/360 de IBM por su arquitectura poco óptima para tiempo compartido, así que se utilizaron rodenadores GE635 de General Electric. Así el proyecto continuó dentro de la financiación del departamento de defensa dando luegar al sistema operativo de tiempo compartido Multics. También colaboraban en el proyecto los laboratorios Bell.

En 1970 General Electric vendió su división de ordenadores de Honeywell con lo que los laboratios Multics abandonaron Multics en 1969, pero dos investigadores de allí, Ken Thompson y Dennis Ritchie, continuaron Multics creando Unix para un PDP-7 de DEC, un ordenador con mucha menos capacidad que el ordenador de General Electric y ya obsoleto en 1969. Más adelante se pasaron a un PDP-11. A lo largo de la siguiente década y media el desarrollo de Unix estaría asociado a los ordenadores DEC. El nombre de Unix es una forma simplificada de Multics y tomó prestadas muchas de sus características. El Unix también estaba inspirado en el CTSS anterior y más sencillo. El verdadero impacto de Unix sobre la informática dominante ocurriría a partir de la década de 1980 y más adelante a partir de los años 90 gracias a Linux.