Monday, July 14, 2014

Diario de PiWeek I

Llegue a las 9:00 a Kaleidos y ya estaba casi todo el mundo cerrando su participación en los proyectos. En mi caso, parece que la proyecto para aprender Go le ha convencido a Yamila Moreno por lo que se ha apuntado al mismo....

Inicialmente parecía que Antonio de La Torre tenia interés, pero después de la primera reunión en la que he comentado un poco por encima como funciona snmp, el interés a decaído y finalmente ha decido pasar a otro proyecto que seguramente sea más interesante. :-)

Total, que nos hemos embarcado Yamila y yo con el proyecto.

Hemos empezado por montar el entorno de desarrollo en el equipo de Yamila y conseguir algunos temas de logística como teclado, monitor y acceso a wifi. Posteriormente nos hemos metido en el fregado y hemos empezado por mirar el código que tenia yo desarrollado de días anteriores.

Y ya por fin hemos comenzado a desarrollar, aunque en esto tengo que decir que sin darme cuenta he acaparado bastante el teclado :-(  Mañana no pasará. Lo siento, Yamila.

Es muy gratificante poder trabajar y contrastar las ideas sobre como hacer algo con alguien que cómo tú está fuera de su zona de confort. Creo que esto ayuda mucho a hacer las preguntas más absurdas o las suposiciones más raras sin temor a quedar mal, puesto que los dos estamos en el mismo punto :-)

El resto del día se ha pasado familiarizándonos con la forma de usar canales y funciones concurrentes y haciendo cambios muy pequeños de forma que el avance fuese lento pero seguro y que sirviese para ir afianzando conceptos.

El uso de canales para la sincronización me gusta tanto o más como me gustaron los mensajes entre procesos en erlang.

Durante el proceso:

  • Hemos generado dos dead locks
  • Nos hemos liado con la sintaxis de Go unas cuantas veces
  • Hemos en muy poco tiempo realizado un programa con bastantes hilos de ejecución sin generar un caos muy grande (punto para Go)

Resultado:

  • Entorno de compilación en los dos equipos
  • Trello con bastante contenido
  • Esqueleto de aplicación en el que cada comando se despacha a una cola por destino en el que procesaran un numero máximo de procesadores concurrentes
  • Main de prueba que acepta comandos en texto por la entrada estandard
  • Ejecución de snmpwalk sin ningún tipo de control de errores y sin almacenar el resultado, solo limpiándolo en pantalla.

Bonus point

Algunos otros proyectos tenían cierto interés en seguir prácticas de DDD en su implementación y aprovechando que nosotros estamos usando muchos de esos conceptos en el desarrollo en Alea Soluciones, realice una presentación medio improvisada sobre DDD en python.
Creo que ha resultado de interés y estaré al tanto para ver si alguno de los proyectos realiza una implementación de ese tipo.
Junto con el tema de DDD hemos visto también como estamos haciendo el testing unitario y como la arquitectura que usamos nos permite postergar las decisiones.


Mañana, mas y mejor...


Enlaces relacionados:

No comments: