10.31.2009

Python y miniframeworks web

He empezado a colaborar con web.ontuts, una blog sobre tutoriales de programación web, con un pequeño artículo sobre juno, un pequeño framework web hecho en python muy útil para pequeños servicios.

Aquí está:
mini-aplicaciones web con python y juno

10.25.2009

Lo que debería haber en todas las empresas de software de España

En todas y cada una de las empresas de software de España debería haber un cartel, bien grande, donde todos pudiesen leerlo, con la siguiente frase

"El verdadero progreso es el que pone la tecnología al alcance de todos"


De un tal henry ford.

vía voolive visto en microsiervos.

10.23.2009

integración continua en 100 líneas de código

Actualmente estoy trabajando con un embebido con linux, la potencia de la placa es bastante limitada y a la hora de compilar una aplicación mediana el sistema demasiado. Como tengo varias placas decidí montar un servidor de integración continua en uno de ellos usando compilación distribuída con distcc. La forma de trabajar es la siguiente:

- programo haciendo mis commits en local (usando git)
- cuando necesito probar mi código en el embebido hago "git push ci" de forma que ci es un remote parecido a ssh://user@ciserver/home/ci/project.
- Este repositorio tiene un post-recieve-hook que lanza una petición al servidor de integración continua, este compila (distribuido, con distcc) y si la compilación va bien lanza un "build_pass" que usando rsync hace deploy en la máquina de pruebas.

Parece muy complicado, pero realmente es poca la configuración que se necesita, casi todo va sobre ssh.

Sentía la necesidad imperiosa de tener un servidor de integración continua pequeño y manejable, así que decidí hacer uno :).

Con juno, un miniframework web que permite en dos patadas tener una pequeña aplicación web.

Si quereis probarlo o ver el código, el código está en github: cipy, servidor de integración continua.

Funciona bien, realmente no hace demasiado, pero basta. Solo soporte un proyecto, pero no hay problema para lanzar varias instancias, cada una en un puerto diferente, apuntando ngnix ( o tu servidor web favorito) con un "proxy pass" a cada una con un "location" diferente.

Si realmente quieres un servidor de integración continua potente puedes usar hudson.

Un shot: