Archive for Marzo, 2005

No es buen tiempo, es que nos vamos todos a Oz…

Ayer y hoy ha hecho un tiempo inusualmente bueno por tierras Chicaguenses. De hecho, hoy ha sido el primer día (desde octubre) que he podido salir a la calle sin abrigo, bufanda, y gorro. No sé si lo he dicho antes, pero lo que más me joroba del tiempo invernal en Chicago no es tanto el tiempo en sí, sino el hecho de que antes de salir a la calle tengo que pasar por un ritual de ponerme varias capas de ropa adicionales (y al volver a casa, tienes que quitartelas). Por lo tanto, este cambio de tiempo ha sido gratamente bienvenido.

Sin embargo, este tiempo no sólo era bueno… era sospechosamente bueno. ¿Cómo hemos pasado en un par de días de tener temperaturas bajo cero a tener una temperatura de más de 20º C? En mi pueblo eso casi siempre significa que se avecina una tormenta (o una galerna) que te cagas. He acudido raudo y veloz a www.weather.com y me he encontrado con las siguientes dos joyas:

TORNADO WATCH UNTIL WED MAR 30 2005 08:00 PM CST

A TORNADO WATCH MEANS CONDITIONS ARE FAVORABLE FOR TORNADOES IN AND CLOSE TO THE WATCH AREA. PERSONS IN THESE AREAS SHOULD BE ON THE LOOKOUT FOR THREATENING WEATHER CONDITIONS AND LISTEN FOR LATER STATEMENTS AND POSSIBLE WARNINGS….

SEVERE WEATHER STATEMENT FOR COOK COUNTY, IL UNTIL WED MAR 30 2005 06:15 PM CST

AT 551 PM CST… TRAINED WEATHER SPOTTERS REPORTED A SEVERE THUNDERSTORM CAPABLE OF PRODUCING LARGE DAMAGING HAIL UP TO GOLF BALL SIZE. THIS STORM WAS LOCATED NEAR CHICAGO… MOVING NORTHEAST AT 35 MPH.

THE SEVERE THUNDERSTORM WILL BE MOVING INTO THE NEARSHORE WATERS BETWEEN NORTHERLY ISLAND AND MONTROSE HARBOR AT 600 PM CST…

A TORNADO WATCH REMAINS IN EFFECT FOR THE WARNED AREA. SEVERE STORMS CAN PRODUCE TORNADOES WITH LITTLE OR NO WARNING. IF A TORNADO IS SPOTTED… ACT QUICKLY AND MOVE TO A PLACE OF SAFETY IN A STURDY STRUCTURE… SUCH AS A BASEMENT OR SMALL INTERIOR ROOM.

Cagate lorito. Y yo que pensaba que los tornados sólo ocurrian en las películas. Por lo menos se supone que en los centros urbanos no pueden producirse tornados (al parecer tiene algo que ver con el calor que produce un centro urbano, a diferencia del campo donde son más propicias las condiciones para un tornado). Pero lo del granizo con tamaño de bolas de golf impone respeto…

En fin, mientras escribo esto, la peor parte de la tormenta parece que ya ha pasado (ya casi no se oyen truenos). No he visto nada de granizo, y no he sido magicamente transportado a la tierra de Oz. Parece ser que esta vez hemos tenido suerte…

Domingo de paella

Bueno, la family abandonó Chicago ayer. Entre los múltiples presentes que me trajeron, se encuentran bastantes utensilios esenciales para la cocina Española, especialmente una paella (estrictamente, “paella” se refiere a la sartén en la que se hace el arroz, aunque la RAE admite ambas acepciones: la sartén, y el plato en si). Así que hoy, domingo, dia paellero por excelencia, he hecho mi primera paella (y la primera paella que como en más de seis meses). Teneis una foto aquí.

Por cierto, otro utensilio que han traido mis padres es una churrera. Valiendome de “El libro de la repostería” (de Angela Landa, uno de los mejores libros de repostería jamás editados), hace unos días me hice unos churros. El resultado fue más que satisfactorio.

Dude, I don’t have to outrun the bear…

Estos días estamos quedando los compis de doctorado para repasar obsesivamente todo el temario de Algoritmos. Cuando tienes que hacer un repaso de todo, una buena estrategia es poner por escrito un esquema del temario. Así que nos pusimos a escribir el nombre de todos los temas en la pizarra de nuestro despacho (sí, nuestro despacho tiene pizarra y todo…). El resultado nos dejo un poco acojonados, en parte por todo lo que tenemos que meter a presión en nuestras cabecitas para este viernes, y en parte por que no nos creiamos que todo eso lo hemos aprendido en las 10 semanas que dura el trimestre. En fin, como me daba pena borrar la pizarra, hice unas cuantas fotos de recuerdo. El resultado es este bonito collage. Os recomiendo que veais la versión de alta resolución, pues así podreis ver exactamente cual es nuestro temario. Otra cosa que intentaré hacer una vez termiando el trimestre es colgar una selección de homeworks que he entregado durante el trimestre, para que veais a qué tenía que dedicar casi todos mis fines de semanas (y mis lunes, y mis martes, y mis… ).

En fin, visto el panorama, por lo menos nos sigue consolando el hecho de que aquí la calificación es mediante campanazo de Gauss. Basta con que haya un puñado de patanes (3 o 4, en nuestro caso) para que el resto de nosotros aprobemos. Cuando hemos comentado eso, uno de mis compañeros ha dicho “Dude, at least you don’t have to outrun the bear!”. A lo que yo he respondido “¿Lo cualo?” (en correctisimo ingles: “The which-o?”). Y me ha contado este simpatico ‘chiste’:

Dos amigos se encuentran de acampada cuando, de repente, aparece un oso enorme. Los dos salen corriendo, pero el oso les persigue a una velocidad considerable.
- ¡Nunca conseguiremos ir más rapidos que el oso! ¡Es demasiado veloz!
-¡Tío, yo no tengo que ir más rápido que el oso, sólo tengo que ir más rápido que tú!

Está claro… nuestro profesor de Algoritmos es el oso y en su asignatura lo que hay que hacer no es trabajar lo suficiente como para llegar hasta una meta objetiva de ‘aprobado’, sino que tienes que asegurarte de que trabajas mejor que el 50% de tus compañeros (bueno, por estos lares solo suelen pencar al 25-30% inferior de la clase). Afortunadamente, a pesar de que esto podría derivar en ‘competiciones’ entre los compañeros, entre nosotros hay buen rollito, y nos ayudamos mutuamente. Habrá que ver que piensa Gauss de todo esto…

Problemas abiertos (o “Hay que ver los cerebrines que estudian aquí”)

En las matemáticas existen lo que se llaman problemas abiertos. Son problemas para los que se sabe que hay una solución, aunque nadie haya dado con ella todavía. Quizás el problema abierto (hasta hace poco) más conocido para el público general es el Último Teorema de Fermat:

No hay numeros enteros positivos x, y, z tales que xn + yn=zn, donde n es un número entero mayor que 2.

Desde que Pierre de Fermat enunció este teorema en 1637, nadie fue capaz de demostrarlo hasta 1994, y durante mucho tiempo fue uno de los problemas abiertos más conocidos del mundo de las matemáticas. Curiosamente, el Último Teorema de Fermat es de escaso interes teorico (en el sentido de que tanto si es cierto como si no, el teorema no tiene importantes repercusiones prácticas). Una de las cosas que he aprendido este año es que los matemáticos adoran a Pierre de Fermat no por su último teorema, sino por el Pequeño Teorema de Fermat, un teorema de gran utilidad (por ejemplo, es una de las bases del algoritmo criptográfico RSA).

Pues bien, en informática también hay muchos de estos problemas abiertos. Eso sí, a mi siempre me ha fascinado más el hecho de que hay problemas para los que se ha demostrado que nunca se podrá encontrar una solución. Por ejemplo, está demostrado que es imposible elaborar un algoritmo que, dado cualquier programa P, decida si P entrará en un bucle infinito en algún momento de su ejecución (si crees que te estoy engañando, ya estás leyendote el anexo del artículo Si Turing levantara la cabeza…).

Pero bueno, me desvío del tema: los problemas abiertos. Todo esto lo comento porque nuestro profesor de Algoritmos plantea como desafio a los alumnos la resolución de ciertos problemas abiertos. Lo siento mucho, pero eso es algo por lo que ya no paso. Bastante me atormenta la asignatura de Algoritmos como para además ponerme la capa de Super-Algoritmo-Man para luchar contra problemas en los que durante años han fracasado algunas de las mentes más brillantes de las matemáticas. Eso sí, en nuestra clase hay bastantes cerebrines que sí están por la labor… y resulta que durante la asignatura, dos alumnos han resuelto un problema abierto cada uno. Cagate lorito.

Sin entrar en demasiados detalles, uno de los alumnos ha descubierto la cota inferior de la complejidad de un problema clásico de algoritmia (relacionado con la detección de monedas falsas entre monedas genuinas). Descubrir la ‘cota inferior de la complejidad’ de un problema es un logro acojonante, porque quiere decir que has descubierto que un problema nunca podrá resolverme de manera más eficiente que la dada por la cota inferior. Para que nos enteremos: si un problema tiene como entrada n elementos (p.ej. n números) y la cota inferior es de n3, eso significa que ese problema nunca podrá resolverse en menos de n3 pasos (esta explicación omite muchos detalles, pero es para que me entendais todos… los más entendidos ya sabrán que me estoy refiriendo a la notación Big-Oh).

Otro de los alumnos ha cogido un problema cuyo mejor algoritmo conocido requiere n2 pasos, y ha encontrado un algoritmo que requiere sólo n pasos. También un logro interesante, aunque desde un punto de vista teorico no es tan acojonante como encontrar una cota inferior.

Pues ya veis el tipo de gente que deambula por esta universidad…

Por cierto, si esto de los problemas abiertos ha despertado vuestra curiosidad, os interesará saber cual es (con diferencia) el mayor problema abierto de la informática teorica: ¿P=NP? Esta sencilla formula trae de cabeza a buena parte de la comunidad de la informática teorica. Teneis más detalles aquí.

Mi kernel (y 2)

El viernes entregamos el segundo kernel que había que hacer para la asignatura de Sistemas Operativos. En este caso nos dieron un kernel ya programado (por el profesor), y nosotros teníamos que añadirle toda la funcionalidad de I/O. Leed el artículo sobre el primer kernel para más información sobre la arquitectura simplificada para la que está programada el kernel. En el caso de la capa de I/O, el sistema unicamente tiene cuatro dispositivos: un puerto serie, un lapiz optico, una pantalla, y un chip de memoria flash de 8 MB. Por simplificar, la memoria flash no tiene sistema de ficheros y el kernel presenta el dispositivo como si fuese un único fichero de 8MB.

Nuevamente, para disfrute y deleite de los lectores más frikis, aquí teneis el kernel en cuestión. Os recomiendo que empeceis por el README, pues ahí están listados lo módulos que hemos añadido nosotros. Eso sí, resultan especialmente interesantes los ficheros io_pipe.c (la implementacion de las pipes) y sema.c (la implementación de los semáforos).

¡Ah! Y no olvideis que el fichero está protegido con contraseña fácilmente descrifrable por alumnos/as de ESIDE:

Nombre de usuario: borjanet
Contraseña: “Número del aula de programación” (3 dígitos) + “Nombre de cierta profesora de programación con risa muy contagiosa” (en minúsculas) + “Piso de los profesores” (un dígito)

Nuevamente, si no has estudiado en ESIDE, pideme la contraseña por mail.

Por cierto, hoy he entregado mi proyecto para la asignatura de Grid Computing (impartida por el mismisimo Ian Foster). Ahora ya sólo queda el examen de Algoritmos este viernes. Y por fin habré terminadoooooooo :-D