La Coctelera

Categoría: Personal

Un paso menos para acabar la carrera

No quiero meter mucho tema personal en este blog, pero ayer ya terminamos y presentamos el que ha sido mi Proyecto de Fin de Carrera :D

La experiencia ha sido interesante, trabajar con gente del MIT y RISD, y además me vuelvo a España con un 9 en el proyecto, que no del todo está mal.

Semana intensa

Sólo decir que todavía no he abandonado el blog, sólo que ha venido mi novia a verme a Hellsinki y cuando no estoy con ella estoy trabajando.

La Semana Santa no podría haber ido mejor, con mi niña aquí, el trabajo que va saliendo y además una "despedida" de mi rol como colaborador de lo más grata (GRACIAS!).

Aquí os dejo una foto tomada en Tallin ayer por la mañana.

Nueva etapa dentro de tractis

¡Ya es oficial! ¡Desde hace unos días soy el nuevo empleado de Negonation!

Después de un año colaborando en el desarrollo de tractis tomo el relevo de Manuel Santos como desarrollador residente. Aunque de momento, hasta Julio, voy a ir a media jornada hasta que acabe mis estudios :)

La verdad es que esto me hace mucha ilusión porque como colaborador he tenido la oportunidad de conocer y trabajar mano a mano con gente con muchísimo talento, capacidad y todavía mejor trato. Además, mi primer trabajo va a ser en una empresa que innova y me gusta, con lo que no puedo pedir mucho más :D

Quería aprovechar para dar las gracias a todos los que están convirtiendo tractis en una realidad, tanto empleados como colaboradores. Es un auténtico placer trabajar con vosotros, he aprendido en un año de colaborador más que en dos años y medio de Universidad, y la compañía ha sido inmejorable ^_^

Ya que estamos doy las gracias especialmente a aquellos con los que he estado más en contacto :)
Seguro que me dejo a alguien fuera de la lista XD

Con los que no he tenido tanto contacto espero tenerlo ahora que le voy a dedicar más horas al proyecto :)

Gracias a todos, espero seguir aprendiendo de vosotros y con vosotros, con suerte a lo mejor yo también logro enseñaros algo... ;)

Un saludo!

P.D.: Si lees esto y no eres colaborador, que sepas que nos gusta la sangre fresca ;D

Vota por un one-click install de Trac en Dreamhost

¿Tienes contratado tu hosting en Dreamhost?
¿Te gusta Trac?

¡Vota para que lo añadan como one-click install!

El suplicio el SPAM


La opción de extraer el correo de otras cuentas que han incorporado a gmail me ha permitido recuperar una cuenta que tenía abandonada por el spam. Recibía unos 50 mails de SPAM diarios.

Al recuperar la cuenta, a parte de tener siempre la línea de SPAM en negrita, me he encontrado con que recibo una cantidad de SPAM brutal que ni siquiera puedo entender:

¿De verdad piensan que me voy a comprar un 最初からエッチ目的の女性と会う? XD

Por cierto, esos más de 400 mails de spam son el fruto de 6 días. He decidido que no voy a vaciar la bandeja en un mes, a ver a cuánto llego ^_^

Update: Al final la cifra no ha sido tan impresionante :)
Ahora mismo el contador va por 1606 mails de SPAM

Cómo afronto una competición de desarrollo rápido

Benko ha escrito un post titulado "Consejos para desarrollar un videojuego en 72 horas". La verdad es que es algo sobre lo que tenía pensado escribir, y como lo que quería decir yo no lo ha dicho Benko, pues aprovecho para escribir el post :)

Antecedentes

Durante el 2006 he participado en dos competiciones de desarrollo rápido:

Desarrollo rápido de un videojuego (Campus Party 2006)

Es la competición a la que se refiere Benko

Tiempo
72 horas
Objetivo
Escribir un videojuego que contuviera al menos tres de los cuatro conceptos que presentó la organización
Requisitos
A parte de tener que programarlo y diseñarlo prácticamente todo, había que mantener un blog en el que ir comentando cómo llevábamos el tema
Equipo
Éramos 4 personas, pero hasta llegar allí sólo conocía a Benko
Resultado
En el blog está el juego. Ganamos el primer premio y el premio especial del público

Desarrollo rápido de una web en Ruby on Rails
(Conferencia rails hispana 2006)

Tiempo
48 horas
Objetivo
Teníamos que hacer la web que nos pidieran, al final resultó ser otro juego, un hundir la flota. Nota: Creo que al final programé más javascript que Ruby on Rails xD
Requisitos
Tener la web colgada en público (salvo que estuvieras en las conferencias y te acercaras con tu portátil, pero yo estaba en Helsinki, así que no era una opción xD)
Equipo
Esta me la comí solito, que el ipod no se podía partir por la mitad ;)
Resultado
Fui el único que logró terminar y presentar mi hundir la flota, así que gané :P

Mis consejos

A continuación una lista de las cosas que considero más importantes para afrontar cualquier competición de este tipo.

Aprenderse bien las bases

Siempre que voy a participar en una competición me leo y releo las bases de la misma. Si algo no es opcional en cualquier competición seria es saltarse las bases, así que aprende bien todos los requisitos: qué puedes hacer, qué no puedes hacer y qué tienes que hacer de forma obligatoria.

Muchas veces hay puntos que son especialmente olvidadizos, por ejemplo: en la competición de la campus uno de los requisitos era poner una pantalla en la que saliesen nombres y correos electrónicos de todos los participantes del equipo, así como el logo de la campus party y las menciones al material de terceros que pudieras haber utilizado (gráficos, música, etc...). Ten en cuenta que este tipo de cosas son obligatorias.

Además, en ocasiones las bases mencionan qué es lo que se va a valorar en los trabajos presentados, con lo que te pueden servir para enfocar tu trabajo en aquello que el jurado va a prestar más atención.

Llegar preparado a la competición

En este tipo de competiciones sueles tener toda la información antes de la fecha de comienzo y lo único que te falta es qué hacer. Es una tontería esperar al pistoletazo de salida para empezar con todo. Siempre hay cosas que se pueden llevar preparadas. Por ejemplo, en estas dos competiciones en las que preparé llegué con todo lo siguiente montado:

  • Campus Party
    1. Subversion: Siempre utilizo un sistema de control de versiones
    2. El blog: Las bases decían bien claro que teníamos que mantener un blog durante la competición, así que dos semanas antes ya teníamos un wordpress instalado, habíamos escogido un tema y habíamos creado las cuentas para los cuatro que éramos.
    3. Ideas: Pese a que no podíamos idear nada sobre el juego antes de la fecha una semana antes ya estábamos hablando de posibles ideas, cosas que nos gustaría hacer, etc... Luego, una vez supimos los requisitos, pasamos muchas horas pensando en qué hacer definitivamente, pero hay cosas que teníamos en mente antes de la competición, como lo de que el juego fuese multijugador.
  • Conferencia Rails
    1. Subversion: ya lo he dicho, no puede faltarme ;)
    2. Esqueleto de la aplicación: Tenía el esqueleto de la aplicación rails preparada, bastaba con ponerme a trabajar sobre él
    3. Entornos de desarrollo y producción: bases de datos creadas, la aplicación rails configurada para conectarse a ellas y un mini-sistema de despliegue.

Son cosas que pueden parecer rápidas, pero en estas competiciones el tiempo es limitado, si sabes qué vas a necesitar, así que no está de más prepararse antes :)

He de decir que conseguir montar el entorno de producción para la conferencia rails me llevó un día, y si hubiera esperado a hacerlo en las 48 horas de la competición yo tampoco habría acabado a tiempo para presentar. Cada minuto cuenta

Dormir poco y no desesperarse

Como he dicho en el apartado anterior: Cada minuto cuenta. A medida que van pasando las horas se te va echando el tiempo encima y te empiezan a agobiar más todos esos bugs que no aciertas a corregir o el ToDo interminable.

Antes de plantearte participar en una competición de desarrollo rápido, si pretendes ganar, has de ser consciente de que van a llegar momentos de mucha presión, pero al final merece la pena ;)

Como ejemplo de dormir poco y desesperarse, la última noche de la competición de la conferencia rails la pasé tratando de hacer funcionar la sincronización de los tableros de ambos jugadores. Unas horas antes de la entrega creía que no me iba a dar tiempo a lograrlo, me estaba tirando de los pelos, pero al final, ya de día, acabó funcionando ^_^

No tires la toalla!

No atascarse

Enlazando con los dos puntos anteriores: No hay que atascarse!. Si ves que algo no te sale y tienes otras cosas pendientes, no malgastes horas dándote de cabezazos contra lo mismo, ponte con otra cosa más relajada y luego vuelve con lo que te atormentaba.

El diseño del hundir la flota lo hice en los ratos de "descanso" cuando me atascaba con la programación :)

No menosprecies tu trabajo

Tienes que ser realista, por muy bueno que seas en 72 horas no vas a conseguir algo bien pulido, siempre vas a tener bugs e imperfecciones, así que no te amargues más de lo necesario con los bugs misteriosos. Nadie va a esperar que hagas algo perfecto en tan poco tiempo

A modo de anécdota, en la campus nosotros optamos por hacer un juego multijugador por red, pero al final no nos dio tiempo a implementar la parte de multijugador. Sin eso nuestro juego al final no era más que un bicho biscoso saltando por ahí y moviendo bolas, y aun así ganamos :)

Así que ya sabes, presenta tu trabajo aunque no esté del todo acabado

¿Qué echas(te) en falta en la Universidad?

La pregunta

Estudio informática (que sorpresa, eh? ;) y estoy acostumbrado a ver cómo a gente se queja de lo que se enseña y de cómo se enseña. En realidad yo soy de la opinión de que un estudiante de informática puede aprovechar la carrera bastante más de lo que se suele hacer, pero siempre hay cosas que faltan ^_^

Este post es para lanzar una pregunta (probablemente retórica, porque dudo que a estas alturas me lea alguien xD):

¿Qué crees que deberían haberte enseñado en la Universidad y no lo hicieron?

Mi respuesta

Yo estudio en la UPV, y lo que echo en falta son dos palabras: Testing y Refactoring. Además, me parece que son dos cosas que se podrían (y deberían) inculcar desde el primer curso de programación de la Universidad.

En lo que al testing se refiere, me parece que igual que los alumnos tienen que hacer mains para ir probando sus programas, se les podría enseñar a usar assert y hacer mains cargaditos con llamadas a assert. No es necesario meterles con frameworks de testing completos desde el primer día, pero es de vergüenza que los alumnos salgan sin saber para qué sirve la función assert cuando deberían saberlo desde primero de carrera.

El aspecto del refactoring me parece mucho más serio. Es lamentable ver ingenieros que no saben escribir código inteligible. En mi opinión debería ser obligatorio escribir código limpio, y debería ser requisito indispensable para aprobar una asignatura de programación. A mí me gusta el código bonito.

Quizá con esto tendríamos más ingenieros (técnicos y superiores) que saben programar como toca y menos que no tienen ni idea

Nota: Si al final respondes no estaría mal decir en qué Universidad estudias(te) ^_^

GET /person/1.post;about HTTP/1.0

Después de varios intentos fallidos voy a ver si consigo mantener un blog :)

Para los que no me conocen, me llamo Ernesto Jiménez, ahora mismo ando estudiando informática y colaborando con tractis. En ambas tareas me acompaña mi incansable compañero TextMate y junto a él revisamos muchas líneas de RoR.

Mi idea es darle al blog una orientación técnica, así que ahora mismo pondré otro post para ir quitando la presentación de en medio ^_^

[an error occurred while processing the directive]