Wiki de Azogue – Quicksilver

Impresionante el wiki de Azogue de Neal Stephenson. Ya he terminado el primer libro de esta obra enorme del autor de Criptonomicón del cual ya hemos hablado en un post de hace un mes. Pero uno de los problemas que he tenido es la gran cantidad de personajes y lugares que aparecen en el libro. Por ello es realmente útil el wiki donde se explican muchas cosas sobre la situación histórica de Europa en la época que se desarrolla la acción, la verdadera vida de los personajes, o incluso teorías científicas que desarrollan personajes de la novela.

Destacar el siguiente párrafo del libro donde aparece la máquina de multiplicar de Leibnitz de la cual hablamos en en este post

Daniel vio engranajes, cigüeñales, ejes. Penso que podría tratarse de un nuevo reloj, pero no tenía ni esfera ni manecilas, sólo algunas ruedas con números grabados.
   -Debe mucho, evidentemente, a la máquina de monsieur Pascal– dijo Leibniz-, pero ésta puede multiplicar números aparte de sumar y restarlos.
   -Hágala funcionar para mí,doctor.
   …..

Montaje electrónico – Coche fantástico :)

Una de las disciplinas que más me llaman la atención es la electrónica pero nunca he tenido tiempo ni ganas suficientes para aficionarme. Por fin me he puesto las pilas y he sacado adelante un pequeño montaje típico que consiste en poder controlar desde el ordenador 8 Leds. Ha sido una experiencia muy interesante porque he podido trabajar desde muy bajo nivel (tocando cables) hasta la programación de alto nivel usando C# para el control del circuito. Una vez funcionando me he dedicado a hacer programas «chorra» que hacen efectos de luces. En este video podéis ver en acción el montaje con el efecto clásico del coche fantástico (subid el volumen de los altavoces).

El montaje del circuito es muy sencillo, simplemente hay que tener conectar una resistencia de medio K en los cables de datos del puerto paralelo y conectarlos a la parte positiva de cada LED. Y luego un cable conectando las partes negativas de cada LED a la toma tierra del puerto paralelo. Luego para programar se accede al puerto paralelo y se envian datos en paquetes de 1 byte. Queda más claro en este esquema de Codeproject

Supongo que seguiré haciendo cosas a partir de esta base.

Trabajar para Google en la Luna

Hoy es el día de los inocentes para los americanos. Lo más curioso que he encontrado son las ofertas de trabajo de Google para ir a trabajar a un nuevo centro de investigación que se abrirá en la Luna en el año 2007 🙂 En el artículo explican los objetivos de la base lunar, hay mapas de como será la base, explican los sistemas de refrigeración de los servidores etc.


A enviar todos currículums y nos vamos a currar una temporada a la Luna para Google.

Computer Science crisis

Ya hemos hablado en otras ocasiones sobre la crisis del software. Esta vez he encontrado una crítica feroz a la situación actual de la industria del software y la ciencia de la informática en general (Computer science). En este artículo se comenta que estamos en la época de la historia de la informática (desde los años 70) cuando menos sistemas operativos y lenguajes de programación se están creando, estamos estancados.

Comienza mostrando una comparativa entre la evolución del software en la década pasada y la evolución del hardware. Muestra el software utilizado por sistemas Linux.

Año 1990 Año 2000
CPU 33Mhz CPU 600Mhz
32 Mb RAM 512Mb RAM
10 Mbps Ethernet 100Mbps Ethernet
Unix Unix
Emacs Emacs
X Windows X Windows
TCP-IP TCP-IP y Netscape
C C
C++ C++ y Java

Vemos el impresionante avance del hardware en 10 años y en cambio seguimos utilizando los mismos sistemas operativos, los mismos protocolos y los mismos lenguajes de programación. Básicamente la estructura de un sistema Linux es el mismo y la forma de programar y trabajar con él también después de tantos años. Los investigadores en el año 90 trabajaban con C/C++, Emacs/Vi, Tex y siguen utilizando las mismas herramientas hoy en día. En cambio dice que Microsoft es sinónimo de innovación, y la verdad es que si comparamos las versiones de Word y de Windows del año 1990 con las versiones del 2000 es algo realmente impresionante.

Hace una crítica muy dura de Linux. Diciendo de este último que es una simple evolución de un sistema operativo de los años 70 que está matando la investigación en nuevos sistemas operativos en las universidades y empresas, está destruyendo la imaginación de los programadores e investigadores que emulan todos la misma arquitectura de Unix sin crear nada nuevo. Además la forma de trabajar y programar en linux es arcaica, lenta y se podría mejorar mucho si no nos asentaramos en unas herramientas que se usan simplemente como convención y nos dedicaramos a crear nuevas ideas.

También comenta algo que estoy viendo yo mismo en la universidad. Se hacen investigaciones muy cortas para dar unos resultados mínimos que sirvan para dar dinero a los departamentos y prestigio a sus profesores a base de escribir publicaciones en vez de software útil.

Para competir con Windows hay que innovar, crear cosas nuevas, realizar proyectos a largo plazo sin prisas por ganar dinero, crear nuevos lenguajes de programación que abran nuevas vías de creatividad.

50 libros

Estoy siguiendo la inciativa de Pjorge que consiste en leer 50 libros en un año. La cosa está complicada pero aquí va mi lista después de 3 meses.

La computadora universal – Martin Davis
A history of modern computing – Paul E. Ceruzzi
¿Que es esa cosa llamada ciencia? – Alan Chalmers
El código da Vinci – Dan Brown
Fundación e imperio – Isaac Asimov
Barrio Lejano – Jiro Taniguchi
Notas autobiográficas – Albert Einstein
Los códigos secretos – Simon Singh
C# How to program – Deitel
Java y XML – Otto Colomina
11 minutos – Paulo Coelho
El dedo de galileo – Peter Atkins
Las partículas elementales – Etienne Klein
Just in Tokyo – Justin
Black Art of Java Game Programming – by Joel Fan
A new kind of science – Stephen Wolfram
Azogue Libro 1 – Neal Stephenson

Ya veis cuales son mis gustos. Espero vuestras recomendaciones.

¿Cómo funciona un buscador? – Capítulo 1

Para mi proyecto final de carrera estoy programando un buscador. No es una tarea fácil, pero gracias a lo que estoy aprendiendo ya no veo a Google como algo tan misterioso. Tengo pensado escribir unos cuantos artículos para divulgar lo que vaya aprendiendo, es importante saber como funciona un buscador para hacer que sea más fácil para ellos encontrar información en nuestros blogs y páginas webs.

Clasificar información para luego encontrarla con facilidad es una tarea que lleva realizando la humanidad desde hace muchos siglos, el problema es que cada vez disponemos de más cantidad de información escrita. Necesitamos mejores métodos para organizar la información y luego obtenerla con facilidad. Uno de los métodos más potentes que existe hoy en día consiste en obtener la información de forma automática.

Dentro de la obtención de información de forma automática se pueden definir varios enfoques según la finalidad y modo de funcionamiento:

  • Recuperación de información (Information Retrieval)
  • Extracción de información (Information Extraction)
  • Búsqueda de respuestas (Question answering)

La Recuperación de información consiste en indicar al usuario en qué documentos puede haber información relevante. Un sistema de Recuperación de información nos indica en que documentos hay apariciones de las palabras que hemos puesto en nuestra búsqueda y los ordena según una puntuación. Un ejemplo de este tipo de sistemas son los típicos buscadores como Google, Yahoo etc.

La Extracción de información consiste en hacer lo mismo que la Recuperación de información pero en vez de mostrar los resultados al usuario se generan una serie de archivos con los datos más importantes que se han encontrado. Estos sistemas eliminarían la tarea del usuario de tener que seleccionar los resultados realmente importantes. Aun no existe ningún sistema de este tipo realmente efectivo en entornos abiertos como Internet, solo se han hecho pruebas con colecciones de datos de temas concretos.

La Búsqueda de respuestas consiste en responder a una pregunta concreta del usuario. A un sistema de búsqueda de respuestas le podemos hacer peticiones del tipo ¿Cuándo nació Einstein? ¿Dónde está la plaza roja? y debe ser capaz de respondernos con una frase concreta. Puede sonar a ciencia ficción pero ya hay sistemas que son capaces de responder a preguntas sencillas.

Mis compañeros y yo estamos construyendo por ahora un sistema de Recuperación de información que utilizaremos para intentar crear encima un sistema de Búsqueda de respuestas sencillo.