Mes 1: starting up June 29, 2008
Posted by Bosco in : dooplan , 1 comment so farYa han pasado 4 semanas desde el arranque oficial de la startup. Seguimos provisionalmente con el nombre QSalimos, pero el próximo martes termina el plazo para que Roger (nuestro Marketing gurú) decida el nombre definitivo.
Han sido 4 semanas muy interesantes, y mucho más productivas de lo que me imaginaba. Tenemos la infraestructura básica para poder empezar el desarrollo en serio. Tenemos un listado de funcionalidades prioritarias, bastante lógicas y bien pensadas. Tenemos un motor de recomendaciones, mínimo pero funcional. Tenemos el modelo de datos, con las clases principales del sistema. Tenemos el esqueleto de la aplicación, que lo estamos construyendo sobre pinax. Tenemos los sistemas de CI montados (más o menos), y tenemos una wiki que empieza a tener muy buen contenido.
Sobre el motor de recomendaciones, (del que estoy muy orgulloso), tenemos además la aplicación que nos permitirá medir lo bueno o malo que es, y otra aplicación auxiliar para permitir la captura real de datos.
Como ya conté en otro post, en estas 4 semanas hemos estado en dos locales, el de Francesc Macià, que es grande, elegante, con la mesa de billar, bien comunicado y que todavía no han empezado a reformar (ufff), y el de Bonanova, que es pequeño y hace calor, pero que será temporal.
El martes se incorpora Hector, el tercer programador, y empezaremos una nueva fase, ya de desarrollo intensivo. A ver si todo sigue saliendo igual de fluido y avanzamos rápido!
Selenium June 29, 2008
Posted by Bosco in : dooplan, programación , 1 comment so farSelenium es una herramienta alucinante para realizar web testing. Es tan sencillo como abrir el firefox, activar el plugin de selenium y navegar por la página que quieres testear, seleccionando las palabras claves que quieras trazar. Y automáticamente te genera un Unit Test en el lenguaje que necesites: Python, java, .Net…
Una vez tienes ese unit testing, lo introduces en tu herramienta de CI, en nuestro caso utilizamos Hudson, y a olvidarte, que el software lo trabaje por tí!
Además tienes la opción de crear un Grid, de utilizar diferentes navegadores… Una joyita.
Yield en Python June 24, 2008
Posted by Bosco in : django/python, programación , 1 comment so farNo hay día que no aprenda algo nuevo en Django, en Python o en ambos. Ya lo he dicho anteriormente, pero programar en estas tecnologías se convierte en un placer.
Como muestra un botón. Es el comando yield. Es algo así como un return dentro de un bucle, pero que conserva la iteración del bucle para la siguiente vez que se le invoque. Un ejemplo:
def rotate(list):
while True:
for e in list: yield e
Al invocar rotate, este te devuelve un objeto de tipo Generator. Este objeto tiene el método next() que permite ir obteniendo valores del bucle cuando se necesitan. Además, como está dentro de un bucle infinito (while True), cuando termina de iterar vuelve a empezar!
>>> gen=rotate([1,2,3])
>>> gen.next()
1
>>> gen.next()
2
>>> gen.next()
3
>>> gen.next()
1
Evidentemente la lista puede contener cualquier cosa. Es una forma super elegante de usar iterables fuera de bucles.
De nuevo en Ullastres III June 24, 2008
Posted by Bosco in : buceo , add a commentUltimamente se me acumulan los acontecidos y no tengo tiempo de escribirlos en el blog. Este sábado pasado fuimos de salida a Ullastres III, con la gente de Barracuda. El día era buenísmo, por fin había llegado el verano. La mar estaba como un plato, y éramos un montón de buceadores.
Yo bajé con Toni y Pau, y acordamos quedarnos sobre los 25m, ya que estrenaba mi botella de 12l y quería probar cuanto me duraba. El ullastre es como una montaña submarina. Empieza a los 7,7 metros y termina en los 52m. La manera típica de recorrerlo es de modo sacacorchos, rodeándolo y subiendo ligeramente hacia arriba. Nosotros le dimos 2 vueltas. Además había mucha corriente, y según ciertas zonas, al ir contra corriente, era muy dificil avanzar, y un abuso en el consumo de oxígeno.
Los Ullastres son lugares muy bonitos, llenos de gorgonias y multitud de peces. Incluso se vieron barracudas (yo no). También vieron morenas, langostas… Pero la verdad que nosotros no tuvimos esa suerte. Muy bonita de todas maneras.
Fecha: 22/06/08
Lugar: Ullastres III
Centro buceo: Barracuda (Llafranc)
Tiempo de fondo: 27 min
Profundidad máxima: 27 metros
Visibilidad: 8 m
Temperatura Agua: 18 grados. Muy agradable!
Neopreno: 7 + 5 mm SIN capucha.
Plomos: 9 kg (más o menos bien)
Botella: Aire 12l.
Atms al salir: 50 atms. Si no hubera sido por la corriente, me habría sobrado más.
Estado de la mar:Como un plato, pero con bastante corriente.
Scrum June 20, 2008
Posted by Bosco in : Gestión Proyectos, dooplan , 1 comment so farA pig and a chicken are walking down a road. The chicken looks at the pig and says, “Hey, why don’t we open a restaurant?” The pig looks back at the chicken and says, “Good idea, what do you want to call it?” The chicken thinks about it and says, “Why don’t we call it ‘Ham and Eggs’?” “I don’t think so,” says the pig, “I’d be committed but you’d only be involved.”
En Scrum (ver wikipedia) los programadores somos los cerdos (cariñosamente), es decir, los que nos comprometemos 100% con el proyecto. Es una metodología que básicamente se basa en el compromiso, honestidad y comunicación. Basta de documentos de 200 páginas que no sirven para nada!
Llevamos usando Scrum un par de semanas (el proyecto solo tiene 3 semanas, ya está bien…) y parece una forma divertida de trabajar. Por ahora lo estamos haciendo un poco a la ligera, solo estamos Robert y yo, tenemos muchas cosas por hacer en paralelo, pero nos está sirviendo para ir cogiendo el ritmo y para entender mejor la metodología. En general consiste en estos puntos:
- Project Backlog, donde el “Cliente” define las funcionalidades del proyecto, les da una prioridad. A partir de este backlog se definen las Tareas y los Stories, que son agrupaciones de tareas. Por ejemplo, la story “Implementar un buscador” tendría como subtarea “Definir interfaz”, “Crear el agoritmo de búsqueda”, “Crear un juego de pruebas”… Todas las historias son de bastante alto nivel y se escriben en tarjetitas de papel, para que siempre estén a la vista, se puedan anotar, cualquier persona (un cliente) pueda escribirla sin que hayan barreras tecnológicas…
- A estas historias se les da una estimación (Story Points), y todos los “cerdos” opinan. Hay una serie de reglas para estimar, pero básicamente se utiliza el conocimiento colectivo y la experiencia real. Por supuesto, como en toda estimación, siempre nos equivocaremos, así que durante el proyecto volveremos a estimar las stories cuando sea necesario.
- Como subproducto interesante está la lista Iceberg. Es decir, se ordenan las stories segun releases y se publica la lista. Las tareas de la release actual están sobre la línea de superficie, y el resto por debajo. Cuando el cliente pida nuevas funcionalidades verá como se desplazan hacia abajo otras funcionalidades, pudiendo quedar algunas por debajo de la superficie, es decir fuera de la release.
- El Sprint. Un Sprint es un periodo de tiempo de aprox. 3 semanas, donde se realizan las stories. Al principio se deciden cuales son las que se harán, se reparte el trabajo, y se realizan. Cada día se hace una reunión de 10 minutos para saber qué se ha hecho el día anterior, que se hará hoy y los posibles problemas. Al final del sprint todos las tareas deberían haberse hecho y se aprovecha para hacer una pequeña evaluación.
- Por último, el burn down. el Burn down es un informe para ver la evolución del proyecto, contando los Story Points. Puede parecer bastante obvio, pero resulta muy útil. Ver este artículo, muy educativo.
Pues eso, esta última semana de Junio Robert y yo estamos haciendo un sprint para terminar de organizar el proyecto, definición de stories, arquitectura inicial, código base (modelo de classes, motor de recomendaciones básico…) y el día 1, cuando se incorpore Hector, empezaremos el primer Sprint real de desarrollo. A ver si esta métodología funciona, al menos un poco mejor que las tropecientas que he usado anteriormente.
Vuelta a la normalidad… June 19, 2008
Posted by Bosco in : dooplan , add a comment2 semanas después he recuperado Intennet…
Como dice Enjuto Mojamuto, “un día, tal como se fue, volvió…”
Qué otras cosas han pasado… En el curro hemos estado con los de la Universidad de Girona, con Silvana, para asesorarnos sobre motores de recomendación. Silvana es Doctora en Recomendaciones, o algo así, y las primeras impresiones son que las decisiones que he ido tomando son correctas, y aunque habrá que ajustar y probar diferentes combinaciones de algoritmos, la base es buena. La web (seguimos sin nombre…) va a tener un motor de recomendaciones de primera, de hecho es nuestra promesa de negocio, así que ya nos la podemos currar…
Más anécdotas del curro. Estamos cerca de convertirnos en una oficina Microsoft-free. Robert y yo (y el futuro resto del equipo de desarrollo) usamos ubuntu (después del fracaso de opensuse), Roger trabaja con un Asus EEE, espectacular (con linux xandros, creo). Carlos ha migrado a Ubuntu, no sin sustos. Al instalarlo se le rompió la partición de windows y nos costó una mañana recuperarla, pero lo conseguimos. Xavi trabaja con un Mac (es el diseñador, claro). Antonio rompió su ordenador, así que ahora está de prestado. Y Daniel no se lo que usa, está en Madrid, pero le lavaremos el coco…
Por último, llevo un mes (más o menos) corriendo, ya empiezo a tener un poco de fondo y he empezado a seguir una guía para mejorar mi carrera. Carlos ya lleva muy buen ritmo, pero la figura a batir es Antonio, que debe ser una fiera en esto de correr.
Programando con Kate June 13, 2008
Posted by Bosco in : django/python, linux, programación , add a commentEn casa (Ubuntu) suelo usar eclipse para programar python y django. Le puse en plugin de PyDev, y con el de subversion estoy muy feliz. Pero en el curro (opensuse) no me funciona nada. Cada vez que hago algo con el subversion me peta. Y también cuando hago cosas con el Eclipse. Mal.
Pues he tenido que buscarme otra herramienta, y he probado Kate, el editor de texto que viene con el KDE de opensuse. Y me gusta mucho. Resalta la syntaxis de python por defecto, tiene un navegador de archivos que me mola (cambias de documento en un click, y no en 2, al estilo TextPad), y tiene una consola de sistema integrada en el mismo editor, perfecta para debugar el código.
Se supone que se le pueden instalar plugins, si existiera el de svn entonces ya no usaría otro IDE. Ligero, muy rápido y suficientemente potente.
OpenSuse 10.3 64bits June 13, 2008
Posted by Bosco in : linux , 3commentsTomé la decisión de usar opensuse 10.3 de 64 bits en los ordenadores del curro (Dell Vostro 400, unos pepinacos), y me estoy arrepintiendo un web. Me explico, me parece muy bonito, más que Ubuntu, y todo más coherente y mejor integrado. Pero es super buggy. Falla por todos lados en cosas increibles (el eclipse practicamente no se puede usar, el firefox 2 se cuelga una barbaridad…). Parece que es cosa de los 64 bits…
Luego está la dificultad de instalar cosas. El YaST2 es muy util y bonito, pero un poco pesado para instalar paquetes. Y como tengas que instalar algo fuera de lo habitual, olvídate, a compilar… Lo mismo con los tutoriales y docs. Todo está pensado para Ubuntu. Reconozco que he metido la pata con openSuse.
A final de més sale la versión 11, con KDE 4. Es posible que tengamos que migrar, pero qué miedo me da que tenga incluso más bugs.
Silencio total June 13, 2008
Posted by Bosco in : blog , add a commentViernes 13, y todavía solo he escrito un post este mes! Y todo culpa de Orange, o de Telefónica, no lo sé. Resulta que llevo desde el día 4 de Junio con una incidencia y sin internet! He llamado mil veces y se están pasando la incidencia de orange a telefonica, y así puedo esperar… Lo más probable es que nunca más vuelva a tener internet. Con un poco de suerte puedo usar esto como excusa para darme de baja de Orange movil y pasarme a Telefónica cuando saquen el iphone! (que va)
Bueno, este mes está siendo muy interesante. El nuevo curro va viento en popa, y está siendo super entretenido. Brainstormings continuos con marketing pensando qué podemos ofrecer, cómo diferenciarnos, dónde innovar… si logramos hacer la mitad de las ideas que tenemos ya daremos de hablar. La parte de redacción ha tenido una idea brillante para facilitar el trabajo del redactor.
Luego estamos el equipo técnico. Somos imparables! En algún sitio leía lo de django es productividadx4, pero es que hasta que no lo pruebas de verdad no lo puedes creer. Lo que hemos hecho en django habríamos tardado un mes para hacerlo en java.
Además estamos preparando el resto del entorno y planificando cuando podemos para que se incorpore el resto del equipo.
Respecto a la localización de las oficinas. Esmpazamos en Francesc Macià, pero nos hemos tenido que mudar a Bonanova. Estamos de obras en Francesc Macià (2 meses?) para tener unas oficinas 2.0 como nos merecemos. Ahora, a pasar el verano en la Bonanova, que no se está mal, pero tiene pinta que pasaremos calor.
Primer día de QSalimos June 2, 2008
Posted by Bosco in : dooplan , 1 comment so farSeguimos con el nombre temporal, esta semana tenemos que cerrar el nombre definitivo! Pues eso, el primer día, nos lo hemos pasado instalando un servidor, los PCs, y además hemos hecho un par de entrevistas muy interesantes. Esto promete…
Hoy hemos trabajado en las oficinas de Francesc Macià, ya que los obreros del otro lado (el temporal) se han retrasado un par de días. El miércoles seguramente haremos el traslado, y en un par de meses otra vez vuelta aquí. Está muy bien esta zona para trabajar, bares, restaurantes, el Corte Inglés…

