Todos los Artículos
2023
Navaja Negra 2023
10-08
2021
Kubernetes (2): Helm
12-30
Kubernetes (1): conceptos básicos
12-29
Magmax 5.0
01-30
Hugo: Shortcodes
01-30
2020
ArgoCD con Kind
10-11
Monitorización con Graphite
03-28
2018
Organización
11-25
Hosting
10-05
DevOps: ¿Equipo, Rol o metodología?
09-10
2017
Instalando Linux con UEFI
09-09
2016
Plugins en Python
11-20
ipython autoreload
06-10
Limpiando Dockers antiguos
04-04
LAMP con Docker
03-28
Monitorización con ElasticSearch, Kibana y TopBeat
01-28
2015
Sistemas distribuidos modernos
12-28
Dominios con AWS Route 53
12-11
Django no encuentra las CSS del módulo Admin
12-07
MagMaxBlog Newsletter
11-22
¿Es la cobertura de código irrelevante?
11-17
Cambiando los colores a Jenkins
11-13
Lo que me gustaría que hubiéramos hecho...
11-01
Por qué odio Windows
09-21
Tests de aceptación con Fitnesse
08-31
Tests de aceptación con Robot
08-13
Calculando la letra del DNI
08-06
Cómo puede cambiar los despliegues Docker
08-03
Docker
07-21
Puppet templates hint: quitando espacios
07-17
Midiéndolo todo con StatsD
07-12
Yapsy, un sistema de plugins pythónico
07-09
Gráficas basadas en tiempo: Graphite
07-05
Creando tu propia Entidad Certificadora SSL (y volcando certificados autofirmados)
06-27
Colas de mensajes: RabbitMQ
06-19
Monitorización y alertado
06-16
En busca de los cinco 9s: Calculando la disponibilidad de sistemas complejos
06-13
Peewee, un ORM para Python
04-16
Cómo funciona Internet
04-02
Python distribuido: Celery
03-20
Django lo hizo un mago: plantillas y contextos
03-12
JavaScript limpio
03-07
Git: recuperación de changesets perdidos
03-06
Django lo hizo un mago: paginación y detalle
02-26
Django lo hizo un mago
02-23
Trabajando con GitHub de forma efectiva
02-20
Principios básicos de programación
02-09
Fish y Zsh
02-07
Migrando a Nikola
02-02
annotate-output
01-30
Retrospectiva a la #PyConEs2014 (2)
01-19
2014
Retrospectiva a la #PyConEs2014 (1)
11-09
Cárnicas
10-28
Primeros pasos en Jenkins
09-19
Niveles de automatización
09-17
Redondeos matemáticos
08-21
Combinando Git y Subversion
07-13
Publicando artefactos Python
05-14
ElasticSearch y Logstash
05-12
De Jekyll a Octopress
04-21
Gist: Servidor SMTP de pruebas
04-02
Testing en django: mejoras
03-24
Gist: instalando Firefox con Salt
03-23
Fracasos
02-02
LAMP con Salt
01-22
Primeros pasos en AngularJS
01-18
Aprender es duro (retrospectiva 2014)
01-11
2013
Code Retreat Global Day 2013: Retrospectiva
12-14
WebViews en el escritorio
12-07
Micro-framework web en Python
12-01
Usando Git(3): Internals
11-26
Webdriver: crackeando la web de Renfe
11-16
LAMP con Puppet
11-01
Usando Git(2): varios working copies
10-22
Usando Git(1)
10-18
Micro-receta: Java en Awesome WM
10-02
Python avanzado
09-30
Python básico
09-16
Selectores CSS
09-08
Munin: creando plugins
08-30
Munin
08-26
Bootstrap en 5 minutos
08-17
Bootstrap
08-14
Patentes
06-15
Hg vs Git
05-27
Patrones: Observer (Java/Python)
05-18
Python Tornado: Web Testing
05-03
Python Tornado
04-22
Selenium y QA Automation: PageObjects
03-29
Emacs y ficheros basura
03-24
Selenium y QA Automation: tests
03-13
Selenium y QA Automation
03-08
Buildbot: cómo se organiza
02-10
Por qué make mola
02-06
Retrospectiva OpenSpace Persistencia
01-19
Programación funcional
01-16
Por qué LaTeX mola
01-10
Un año en Tuenti
01-02
Retrospectiva 2012
01-02
2012
Retrospectiva al OpenSpace
12-15
10 razones para evitar el Desarrollo Dirigido por Tests
12-05
Guardar la configuración de tu máquina
12-01
Git
11-29
Python 3 es lento (I)
10-19
¿Qué es un 'Ingeniero'?
10-04
Por qué Ruby mola
09-07
MongoDB
08-30
Por qué C mola
08-20
Entonando el 'Mea Culpa'
08-07
Integración contínua: BuildBot
08-02
Integración continua: Jenkins
07-21
Unit tests en Java (II)
07-16
Unit tests en Java
07-09
Por qué PHP mola
06-28
Por qué python mola
06-24
JBehave y JUnit
06-20
Por qué Java mola
06-11
Pruebas Unitarias: Proveedores de datos
06-10
Python: tu directorio en la web
06-09
No somos islas
05-31
Cómo funcionan las cosas
05-23
El compilador de Python desde dentro
05-20
Vagrant y Puppet
05-18
Python curses
05-12
Programar sin condicionales
05-05
Colorit
04-28
No lo llames 'util', llámalo 'helper
04-23
Migrando de nuevo
04-16
Agile ha muerto. ¡Viva post-agile!
04-16
Jekyll: construyendo una web estática
04-09
Estadística
03-31
Monitores en GNU/Linux
03-30
Retrospectiva al #codemotion #es
03-26
¿Por qué 'por que'? Porque el porqué importa.
03-12
DevOpen Madrid 2012
03-05
El currículum
02-27
Alternativas
02-20
Apache: Autenticación básica
02-13
Tuenti, un mes después
02-06
Es lo que hay
02-03
Bloquear un paquete en Debian
02-01
Sistemas de Control de Versiones (Subversion y Mercurial)
01-30
Constructores simples
01-23
Repasando: Árboles y Grafos
01-17
El patrón Singleton
01-16
JBehave
01-12
Estático vs Dinámico
01-02
2011
Maven
12-26
Tuenti
12-19
Retrospectiva 2011, Sprint 2012
12-19
Cómo transformar un proyecto Netbeans en uno Maven
12-14
Un día en Codice Software
12-12
Virtualbox: qué hacer cuando no tienes tu vboxdrv
12-09
Code Coverage o cómo engañarte a ti mismo
12-05
Python: Cómo hacer pruebas 5: freshen
12-02
Java Swing: Cerrando un Dialog
11-28
Pasos para crear un proyecto en Django
11-21
Crea tu propio lenguaje de programación con... python
11-14
Python: Cómo hacer pruebas 4: pyDoubles
11-09
Python: Cómo hacer pruebas 3: nose y hamcrest
11-07
jQuery: Usando los estilos
10-31
Scrum para Proyectos Fin de Carrera
10-28
Python en la web
10-03
Python: Cómo hacer pruebas 2: unittest
09-27
Lecciones aprendidas en la XPWeek
09-26
Python: Cómo hacer pruebas 1: doctest
09-25
Python: Asignaciones con valores por defecto.
09-24
Ingeniería de software: el nuevo concepto
09-20
Cutre-framework de pruebas en Ansi C
09-01
Cocina: Tarta de queso
08-25
Ajax, principios básicos
08-22
Django: Test del modelo y Fixtures
08-21
Django: Creación de un sitio básico con Admin
08-20
Resaltado de sintaxis en tu web
08-19
Enumerados Java: no sólo enumerados
08-15
No comentes: ¡Asegura!
08-14
Atheist, No seas crédulo ¡¡Prueba!!
08-13
Artesanía de Software: De qué va todo esto
08-13
Virtualenv: aislando nuestro entorno python
08-11
Migrando el site: lecciones aprendidas
08-11
Buenas prácticas en Ansi C (2)
06-18
Buenas prácticas en Ansi C (1)
06-18
Pruebas con Bases de Datos en memoria: DBUnit + HSQLDB
06-13
Formatos simples: XML, Yaml, Json, Properties e 'Ini'
06-02
Pruebas web: selenium + atheist
05-13
Atheist: Probando módulos C
05-09
Mi gnome3 pone cosas raras en lugar de tildes y eñes
04-29
Apache Derby, tu base de datos relacional
04-23
Charla sobre startups en internet #XGN
04-19
Solucionar el Spam en Drupal
03-22
¡¡Qué viejo soy!!
03-15
Por qué no escribo últimamente
03-10
Historias cortas
03-10
Objetivo de cobertura de código: ¡el 80% y no menos!
02-21
Una ancianita en el portal
02-12
Retrospectiva 2010, Sprint 2011
01-12
2010
Rails: Crear un ToDoList básico en 1 minuto
12-23
Módulo Kohana
12-15
Kohana: Tutorial 1
12-09
Crítica a Drupal
12-07
Patrones de diseño mediante ejemplos
12-02
Pruebas unitarias: Mocks y Stubs
11-17
Pruebas de sistema: Concordion
11-17
Llenar un Select con datos Dinámicos
10-18
Patrones 1: Sistema de log
09-12
Hacer cosas
09-12
Cómo programar mal: La API de Windows (I)
08-21
Netbeans y Templates
07-27
XML vs JSON
07-20
SQL: Elementos con un número indeterminado de columnas
07-08
Centrar una ventana en Java (Swing)
06-14
Drupal: Creando contenido con 'expansors'
06-02
Aplicaciones multilingües, gettext
05-26
Recuperar Grub
05-12
Creación de un módulo Drupal IV
05-11
Creación de un módulo Drupal III
05-11
Creación de un módulo Drupal II
05-11
Creación de un módulo Drupal
05-11
Tarta de manzana
05-10
El secreto de la vida
04-26
Middleware
02-21
Experimentos de química
02-20
Hibernate con Netbeans
02-13
Tablas GTK: realizar una acción al cambiar la selección
01-13
Drupal no me muestra los comentarios
01-11
2009
Derechos fundamentales de Internet
12-27
Tablas en Drupal: Haciendo una tabla perfecta
12-18
Google-Adicción
12-04
Quitar manchas
11-02