Javier Valencia Javier Valencia

Blog personal de Javier Valencia

Ilustración retrofuturista de estética synthwave: una fila de barras de datos sobre la rejilla con un marco de neón discontinuo que enmarca tres de ellas y una flecha que indica que la ventana se desliza, una flecha circular de recursión a un lado y un sol a rayas a la derecha; en el lateral, un silo marcado con el número III

PostgreSQL desde cero (III): CTEs, window functions y consultas avanzadas

8 de mayo de 2026 · 3 min de lectura · 188 visitas

Tercera entrega de la serie PostgreSQL desde cero a pro. Tiempo de lectura estimado: 13 minutos. Ya sabes instalar PostgreSQL (I) y diseñar un buen esquema con tipos y restricciones (II). Ahora toca la parte divertida: las partes del lenguaje SQL que separan a alguien que "sabe SQL" de alguien que de verdad saca partido a PostgreSQL. Si ya tienes algo de experiencia, partes de este post te sonarán del post PostgreSQL: 10 consultas que todo desarrollador debería conocer. Lo que hago aquí es sistematizar y ampliar. CTEs (Common Table Expressions) Una CTE es una subquery con nombre. La sintaxis...

Ilustración retrofuturista de estética synthwave: una gran lupa de neón sobre una larga cadena de commits, marcada a intervalos por líneas discontinuas, que encuentra un nodo encendido, con un sol a rayas a un lado

Git avanzado II: detective — bisect, blame y reflog

8 de mayo de 2026 · 4 min de lectura · 165 visitas

Segunda entrega de la serie Git avanzado. La anterior fue sobre reescribir la historia con rebase, cherry-pick y amend. Tiempo de lectura estimado: 5 minutos. La parte menos glamurosa pero más salvavidas de git: los comandos para investigar. No los escribes a diario, pero el día que los necesitas, te ahorran horas. Tres: git bisect para cazar el commit que introdujo un bug, git blame para saber quién escribió qué línea y cuándo, y git reflog para recuperar lo que parecía perdido para siempre. git bisect: búsqueda binaria de bugs El escenario: ayer funcionaba, hoy no. Entre ayer y hoy...

Ilustración retrofuturista de estética synthwave: un grafo de commits en el que una rama antigua de trazo discontinuo se traslada con una flecha punteada hasta la punta de la línea principal, donde reaparece con nodos brillantes, delante de un sol a rayas

Git avanzado I: reescribir la historia

7 de mayo de 2026 · 5 min de lectura · 156 visitas

Primera entrega de la serie Git avanzado. Si vienes saltado desde el nivel intermedio o básico, aquí entramos en el terreno donde git deja de ser sistema de control de versiones y empieza a ser editor de historia. Tiempo de lectura estimado: 5 minutos. Los tres comandos de hoy permiten modificar commits que ya existen: combinarlos, reordenarlos, cambiarles el mensaje, sacarlos de una rama y meterlos en otra. Son potentes y razonablemente peligrosos: si la historia que estás reescribiendo ya la han visto otros, les vas a desordenar el mundo. La regla general, antes de empezar: reescribe historia local todo...

Ilustración retrofuturista de estética synthwave: tres tablas de neón con cabecera, filas y un icono de llave, unidas por líneas de relación con terminaciones de pata de gallo, delante de un sol a rayas a la izquierda y con un silo marcado con el número II en el lateral

PostgreSQL desde cero (II): tipos, restricciones y relaciones

6 de mayo de 2026 · 5 min de lectura · 172 visitas

Segunda entrega de la serie PostgreSQL desde cero a pro. Tiempo de lectura estimado: 11 minutos. En la entrega anterior levantamos PostgreSQL, creamos una base de datos y metimos las primeras filas. En este post nos centramos en lo que convierte PostgreSQL en una base de datos seria: tipos ricos y restricciones que garantizan que los datos sean correctos desde la base de datos, no desde la capa de aplicación. El principio subyacente: si puedes hacer que un dato imposible sea imposible de insertar, hazlo. Las validaciones en la aplicación están muy bien; las restricciones en la base de datos...

Ilustración retrofuturista de estética synthwave: una gran etiqueta rotulada v1.0 cuelga de un nodo de una cadena de commits, junto a una pila de cajas guardadas y una flecha discontinua que baja desde el cielo, con un sol a rayas detrás

Git intermedio III: stash, tags y fetch

6 de mayo de 2026 · 4 min de lectura · 204 visitas

Tercera entrega de la serie Git intermedio. Las anteriores: ramas y deshacer con cabeza. Tiempo de lectura estimado: 5 minutos. Para cerrar el nivel intermedio, tres comandos que resuelven situaciones muy concretas pero frecuentes: guardar trabajo en curso cuando algo urgente te interrumpe (git stash), marcar un punto importante de la historia (git tag) y mirar el estado del remoto sin traerte nada (git fetch). No son glamurosos, pero hacen el día a día más tranquilo. git stash: guardar trabajo a medias El escenario: estás en medio de algo, con cambios en el working tree que aún no quieres commitear,...