MagMax Blog

Aviso: En este blog puede encontrar código!

Niveles De Automatización

| Comments

Hace poco escribí un twit sobre los niveles de automatización. Desgraciadamente, en 140 caracteres no podía meter todo lo que me gustaría y tampoco podía corregir el error cometido, a pesar de ser importante. Aunque parece que nadie se dio cuenta :D

Pero para eso tengo mi blog.

Aquí contaré cómo veo yo los distintos niveles de automatización, desde la automatización más básica a la más avanzada, con ejemplos y software que puede ayudar a obtener ese nivel.

Faltarán cosas… Sobre todo programas. Agradecería si pudiérais completarlo en comentarios. Si es software privativo, es bienvenido si la entrada no es publicidad cantosa; pero si es libre, mucho mejor.

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 ;)