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