Javier Valencia Javier Valencia
Terminal con los comandos git worktree, git submodule y git lfs

Git avanzado III: entornos y repos grandes

9 de mayo de 2026 · 4 min de lectura · 4 visitas

Tercera y última entrega de la serie Git avanzado — y cierre del recorrido completo que empezó con Git básico y pasó por Git intermedio. Tiempo de lectura estimado: 5 minutos. Para cerrar la serie, tres comandos que la mayoría de desarrolladores no tocan hasta que los necesitan, pero que cuando llega el momento resuelven problemas que no tienen otra buena solución. git worktree para tener varias ramas checked out simultáneamente, git submodule para incluir otros repos dentro del tuyo, y git sparse-checkout para trabajar con monorepos sin descargar el mundo entero. git worktree: varias ramas a la vez El...

Leer más →
PostgreSQL desde cero (III): CTEs, window functions y consultas avanzadas

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

8 de mayo de 2026 · 3 min de lectura · 4 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...

Terminal con los comandos git bisect, git blame y git log --graph

Git avanzado II: detective — bisect, blame y reflog

8 de mayo de 2026 · 4 min de lectura · 7 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...

Terminal con los comandos git rebase, git cherry-pick y git commit --amend

Git avanzado I: reescribir la historia

7 de mayo de 2026 · 5 min de lectura · 10 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...

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

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

6 de mayo de 2026 · 5 min de lectura · 7 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...