MagMax Blog

Aviso: En este blog puede encontrar código!

Combinando Git Y Subversion

| Comments

El otro día mi amigo Diego D. me propuso un problema. Él ya tenía una posible solución, pero quería contar también con mi opinión.

A menudo, cuando tenemos un problema no somos los únicos en enfrentarnos a él. Por eso he decidido publicar aquí mi solución, algo más elaborada de cómo se la conté a él, por supuesto.

Y éste es el problema: Nuestra empresa utiliza Git, y una subcontrata utiliza Subversion. Cada vez que la subcontrata nos tiene que enviar código, lo hace a través del email (ésto no es tan raro, yo también lo he sufrido). Claro, eso supone perder el tiempo colocando los archivos en su sitio y mergeando a mano, con todos los problemas que esto supone.

Veamos mi solución. Si alguien tiene otra mejor, por favor, que lo diga.

Publicando Artefactos Python

| Comments

Hace un par de semanas que comencé un proyectillo Python que se ha transformado en mi primer paquete pypi serio. Bueno, realmente se ha transformado en dos paquetes, lo que me ha hecho darme cuenta de lo repetitivo de algunas tareas… Y cómo no, he decidido compartirlo aquí.

Así aprovecharé para contar algunas lecciones aprendidas, ahorrando así tiempo la próxima vez y ayudando a otros. De hecho, ya estoy preparando el siguiente XD

Comenzaré desde el principio del todo: la creación del repositorio.

ElasticSearch Y Logstash

| Comments

Se han puesto de moda las bases de datos No-SQL. El tratamiento de datos masivo y el escalado horizontal (sharding) están a la orden del día.

Gestionar granjas de servidores es cada día más común, y cada vez es todo más distribuido.

Esta distribución dificulta la gestión de logs y trazas: ¿Qué ocurrió para que saltara una excepción, cuando cada paso de la ejecución se realizó en una máquina diferente?

Es en este escenario en el que surge una solución libre con Logstash y ElasticSearch.

De Jekyll a Octopress

| Comments

Los que me seguís sabéis que este blog estaba construido con Jekyll. Sin embargo, he descubierto que Octopress tiene un pequeño ecosistema bastante interesante, y quería comentar mis impresiones.

Contaré también algunos trucos a los que he recurrido, así como los mayores problemas.

Gist: Servidor SMTP De Pruebas

| Comments

A veces escribimos programas que tienen que enviar emails y no queremos que estos lleguen a su destino, ya que estamos en pruebas.

Una opción es instalarnos nuestro propio servidor SMTP y redirigir el tráfico. Sin embargo esta opción es propensa a fallos.

La mejor manera es utilizar un servidor SMTP dummy que nos permita ver el contenido de los mensajes sin enviarlos. Y Python nos lo pone fácil:

$ sudo python -m smtpd -n -c DebuggingServer localhost:25

Ya está. Ahora podéis configurar vuestro servidor SMTP en “localhost:25” sin seguridad, y los mails que enviéis los veréis en pantalla.

Más información en la propia documentación de python.

Y mis agradecimientos a @jplana por el hint!

Testing en Django: Mejoras

| Comments

A menudo, cuando me pongo a hacer algo en Django y escribo mis primeros tests, los noto pesados y desordenados. Me resulta difícil diferenciar entre tests unitarios, de integracción y de aceptación.

De la misma manera, suele ser una aventura añadir coverage, ya que nunca me acuerdo de cómo se hace.

En este artículo describiré cómo hacer ambas cosas.

Gist: Instalando Firefox Con Salt

| Comments

En el artículo LAMP con Salt vimos los pasos para utilizar Salt. En esta ocasión sólo mostraré cómo instalar Firefox.

Hace tiempo que Firefox dejó de estar en Debian. No voy a entrar en si me parece buena idea ni en los motivos, pero sí en el hecho de que no se incluye en mi distribución favorita. Se supone que iban a mantener Iceweasel, pero la realidad es que [Iceweasel está en la versión 10.0 mientras que Firefox en la 28.0.

Como estoy intentando manejar mis máquinas con Salt, necesito una manera fácil y repetible de instalarlo.

Fracasos

| Comments

Durante mi vida laboral he vivido numerosos éxitos y fracasos. De lo que más he aprendido es de los fracasos, tanto propios como ajenos. Y admitámoslo: los fracasos son mucho más divertidos que los éxitos.

Hace ya algún tiempo que un amigo está intentando tirarme de la lengua (o de la tecla en este caso) para que escriba un artículo con todos estos fracasos… Pues bien, aquí está.

Éste es el artículo dedicado a todas las personas que han propiciado estos fracasos, gracias a los cuales he aprendido casi todo lo que sé.

LAMP Con Salt

| Comments

De la misma manera que hace unos meses conté cómo crear un entorno LAMP con Puppet, en esta ocasión haremos lo mismo con Salt, también conocido como SaltStack:

  • crear una máquina virtual con Vagrant
  • configurar Salt
  • instalar todo un entorno LAMP (Linux + Apache + MySQL + Php)
  • descargarnos la web de un repositorio remoto Git
  • servir su contenido desde el servidor Apache.

Y, nuevamente, todo en unos 10 minutos.

Este artículo va por David P., que me habló de Salt, José Antonio, que me preguntó por twitter qué sistema es el mejor, y por @ricbartm, con quien estube hablando este viernes sobre Salt ;)

Primeros Pasos en AngularJS

| Comments

Llevo desde el verano investigando Yui… Para terminar pasándome a AngularJS.

Uno de los primeros problemas que veo cuando se comienza una página web es gestionar la barra de navegación. El simple hecho de resaltar la opción de menú seleccionada es un problema… Salvo que utilices AngularJS.

En este artículo veremos cómo crear un proyecto AngularJS con Bootstrap desde cero, y le añadiremos una barra de herramientas completamente funcional.