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.

Carl Sagan

«Nosotros somos la encarnación local del Cosmos, que ha crecido hasta tener consciencia de sí. Hemos empezado a contemplar nuestros orígenes: sustancia estelar que medita sobre las estrellas; conjuntos organizados de decenas de miles de billones de billones de átomos que consideran la evolución de los átomos y rastrean el largo camino a través del cual llegó a surgir la consciencia, por lo menos aquí. Nosotros hablamos en nombre de la Tierra. Debemos nuestra obligación de sobrevivir no sólo a nosotros sino también a este Cosmos, antiguo y vasto, del cual procedemos.» Cosmos de Carl Sagan.

Si os ha gustado el párrafo anterior disfrutaréis leyendo cualquier libro de Carl Sagan. Su libro más famoso es Contact (Novela), adaptado a película hace unos años. Otros libros suyos son Cosmos (Astronomía) , Dragones del Edén (Antropología), Miles de Millones (Divulgación) o El cerebro de Broca (Divulgación).

Stardust y el aerogel

El Stardust es una de las misiones de la Nasa en las que más espectativas tienen puestos los científicos ya que nos permitirá conocer la estructura interna y la verdadera naturaleza de los cometas y así poder entender algo más sobre la formación de nuestro universo. Fue lanzado en el 99 y su misión es capturar partículas acercándose a la cola del cometa Comet P/Wild 2. Lo curioso es que para capturar estas partículas se utiliza un nuevo material que ha creado la NASA. Se trata del Aerogel, el sólido con menos densidad que existe. De hecho el 99,8% está vacío, pero aún así es sólido por muy raro que parezca.

En esta primera foto vemos al profesor Peter Tsou (Vaya pinta de científico loco que tiene) manejando un cubo de aerogel.

Fijaros en la rayante que es la última imagen donde se ve como es capaz de mantener objetos encima. Las imágenes no son fakes, están sacadas por la Nasa

Más imágenes, vídeos e información en la web de la misión Stardust

Controlando robots japoneses desde internet

Via Gizmodo encuentro un robot creado con un Tablet PC, una webcam, cuatro ruedas y alguna que otra cosa más. Lo más interesante es que puede ser controlado por cualquiera desde internet, se abre una sesión de unas horas cada semana para que los usuarios de cualquier parte del mundo lo puedan controlar.