2008-07-22

Lego Starwars

Mi sobrino Isaac de 7 años es un gran fan de "Lego StarWars", tanto del videojuego como de los muñecos reales. Y tal como le prometí, y él he me ha reclamado, le he comprado un "lego starwar con el Darth Vader" por sacar buenas notas. En realidad dado que en España sólo he podido encontrar un "Crucero Imperial" que trajese a Darth Vader negocié con él traer algo más pequeño desde el extranjero, ya que la abuela (mi madre) no quiere más chismes. En fin todo ha quedado en Darth Vader (con capa y espada roja) y Luke Skywalker (con mano negra y espada verde), lo cual limitó bastante la busqueda en ebay. Por fin ha llegado desde Canadá y este es el resultado.



Ha salido caro dada la poca mercancía, pero ha merecido la pena ya que Isaac está muy contento. A mi me ha tocado jugar con Luke, porque él siempre se pide a Darth Vader, y es que me parece que ha sido absorbido por el reverso tenebroso, le gusta Windows XP, aunque creo que es sólo por llevarme la contraria, porque siempre quiere jugar en los juegos de mi GNU/Linux :-)









2008-07-21

Ejemplo de coordinación

Esto es un ejemplo de coordinación y lo demás son tonterias.

2008-07-19

Google Code Jam 08 (I)

Esta semana he participado en la ronda de clasificación del Google Code Jam 08, y he quedado el 3830 con 50 puntos, así que paso a la siguiente ronda.

puesto 3830

En el primer problema "A. Saving the Universe" me confié e hice un programa de búsqueda en profundidad de todas las posibilidades, pero a pesar de ser correcto (y repetidas optimizaciones) no cumplía con el tiempo máximo de 4 minutos, yo diría procesaba en horas o días lo que se esperaba fuese casi instantáneo, así que tuve que inventarme otro algoritmo más "humano" para calcularlo ya sí en menos de un segundo.

El Segundo problema ya con la lección aprendida fue totalmente "humano" (hice a mano el ejemplo) y luego implementé esos pasos.

El tercero lo entiendo pero no fui capaz de implementarlo correctamente en 39 minutos que quedaban para el final, de todas formas creo que sigo sin ser capaz ¿Tú sí? :-)

Ahora a entrenarme para la primera ronda (Online Round 1).

2008-07-09

KILLER TUX

Lo mejor de este video está justo al final.

2008-07-06

¿Por qué es divertido programar?

Navegando por la red encontré aquí el siguiente fragmento traducido del famoso libro "The Mythical Man-Month" (por cierto, aún no he tenido tiempo de leerlo) y resume en esencia porqué me resulta divertido programar. Sí, programar puede ser divertido, puede lograrse un estado de euforia, que incluso crea adicción. Cuantas veces habré hecho la siguiente broma:

Pregunta: ¿Que has hecho este fin de semana?
Respuesta: Meterme C++ en vena (mientras golpeo las venas del brazo con los dedos índice y corazón).

Casi nadie suele entender la broma y los más dicen que tengo que descansar. Pero es que programar en el trabajo no suele ser tan divertido, yo diría que a veces es aburrido y tedioso.

Otras veces me preguntan ¿Como puede gustarte programar? Y nunca he sabido explicarlo. Ahora ya tengo algo que responder (si logro memorizarlo), creo que me quedare con la idea de "niños jugando con barro" y "construir castillos en el aire, con la imaginación".

¿Por qué es divertido programar?. ¿Qué beneficios esperan obtener los programadores?

Primero, por el placer de construir cosas. Al construir cosas, los adultos experimentan el mismo placer que los niños al jugar con el barro, especialmente si construyen cosas que ellos mismos han diseñado.

Segundo, por el placer de hacer cosas que puedan resultar útiles a otras personas. En realidad lo que persiguen es que otros usen su trabajo y lo encuentren útil.

Tercero, por la fascinación de ver trabajar sistemas complejos, que asemejan rompecabezas en los que se integran diferentes piezas y partes móviles, que interactúan entre sí para llevar a cabo las funciones que inicialmente se han previsto.

Cuarto, por el placer de estar siempre aprendiendo al trabajar cada vez en proyectos de características diferentes.

Y por último, por el placer de construir con un material tan maleable y tan etéreo. El trabajo del programador, como el del poeta, se construye de forma sutil desde la materia pura de su pensamiento. Puede construir castillos en el aire, sólo con el esfuerzo de su imaginación. Pocos medios de creación son tan flexibles, tan limpios y fáciles de remodelar, para desarrollar complejas estructuras conceptuales.

Frederick P. Brooks. The Mythical Man-Month