* notes / all writing

Notes, rants, receipts.

Frontend, animation, the occasional war story. Long-form when it earns it; one-liners when it doesn't.

  1. Jun 15, 2025

    the stack behind this site

    A tour of the choices that make akzu.dev what it is — Next.js 16, Bun, SQLite + Redis on Dokploy, and a riso-print aesthetic that fights the AI-slop look.
    #meta2 min
  2. May 20, 2026

    Splines y easings: la matemática del cursor con cola

    El cursor con cola dasheada de este sitio termina apoyado en una spline de Catmull-Rom convertida a Béziers cúbicas y un easing con rebote. Tres ecuaciones que llevaba años queriendo entender.
    #matemáticas10 min
  3. May 16, 2026

    IPC y XPC en Swift: cómo construí un MCP para mi editor de vídeo

    Comunicación entre procesos en macOS: del NSXPCConnection a un servidor MCP que expone acciones de edición de vídeo a Claude.
    #swift6 min
  4. Feb 25, 2026

    Dokploy: cómo alojar múltiples proyectos en un mismo servidor

    Cómo pasé mis proyectos de DigitalOcean a un VPS con Dokploy: Docker Swarm por debajo, Traefik enrutando todo, y lo que aprendí para que un solo servidor aguante varias aplicaciones.
    #devops7 min
  5. Feb 15, 2026

    De web a Electron

    Cómo empaqueté una aplicación web madura en Electron sin reescribirla: arquitectura de procesos, IPC seguro vía contextBridge, firma y notarización en macOS y el inevitable shock del tamaño del bundle.
    #electron8 min
  6. Feb 10, 2026

    Anthropic SDK

    Recorrido práctico por el SDK de Anthropic en TypeScript: Messages API, streaming, tool use y prompt caching como ciudadano de primera clase.
    #anthropic7 min
  7. Jan 8, 2026

    WebAssembly: para qué sirve realmente (y para qué no)

    Un repaso honesto a WASM tras varios experimentos: cuándo compensa, cuándo es puro fetichismo y por qué la frontera JS-WASM cuesta más cara de lo que parece.
    #webassembly5 min
  8. Nov 20, 2025

    Arduino y el compilador tipo C

    Un fin de semana con el ATmega32u4 de un Arduino Leonardo: del LDR al PWM, del PWM al MOSFET, y oír un relé chasquear porque un puñado de bytes lo ordenaron.
    #arduino7 min
  9. Nov 4, 2025

    Cómo Zig fue bifurcado por Bun y por qué importa

    Bun no usa Zig upstream: mantiene su propio fork del compilador. Investigué qué cambios introduce, por qué la inestabilidad pre-1.0 de Zig lo hace casi inevitable y qué paralelismos guarda con el ecosistema de JavaScriptCore.
    #bun7 min
  10. Oct 16, 2025

    Un solo archivo para configurar mi Mac

    Cómo reduje el ritual de estrenar un MacBook a un solo comando: Homebrew, Brewfile, defaults write, mas-cli, oh-my-zsh y stow orquestados desde un script idempotente.
    #dotfiles6 min
  11. Oct 14, 2025

    An isometric shooter in HTML: math, canvas and tile maps

    Construí un shooter isométrico en HTML5 Canvas: proyección, conversión de coordenadas, mapa de tiles, ordenación por profundidad y disparos pooled. Lo que aprendí cuando las matemáticas encajaron.
    #canvas6 min
  12. Oct 6, 2025

    Git: trucos y atajos que mejoran tu día (incluido `rarara`)

    Comandos, alias y patrones de git que uso a diario: add -p, commit --fixup, rarara, worktree, reflog y los errores que solo se aprenden al perder un commit y recuperarlo.
    #git8 min
  13. Sep 29, 2025

    Git rebase vs merge

    Una explicación honesta de qué hace cada comando a nivel de grafo de commits, cuándo conviene cada estrategia, la regla de oro que casi nadie respeta y la conversación de equipo que acabó decidiendo nuestra política.
    #git8 min
  14. Sep 9, 2025

    GNU Stow 🤫

    Cómo migré mi configuración personal a GNU Stow, qué pierdo, qué gano y por qué los enlaces simbólicos siguen siendo la mejor abstracción para los dotfiles.
    #dotfiles6 min
  15. Aug 18, 2025

    Manejo de errores real en Express: una jerarquía de clases que funciona

    Cómo limpié años de try/catch desperdigados en mis controladores con una jerarquía de clases de error, un middleware central y la disciplina de distinguir errores operativos de errores de programación.
    #express9 min
  16. Aug 10, 2025

    Afinando mi Nuphy: el viaje con los switches morados

    Lubricado de estabilizadores, films, espuma y un keymap propio en QMK: lo que aprendí afinando un Nuphy Air75 con switches tactiles morados hasta dejarlo a mi gusto.
    #teclado6 min
  17. Jun 18, 2025

    CloudFront y las cookies: por qué necesitas una lista explícita

    Una investigación a fondo sobre por qué CloudFront descarta cookies por defecto, cómo configurar listas blancas con Cache Policy y Origin Request Policy, y la trampa de cacheabilidad que aprendí a la mala.
    #aws6 min
  18. Apr 9, 2025

    React Native en producción

    Lo que descubrí al llevar una app de React Native al App Store y a Play: Expo o bare, JSI, FlatList, OTA y los pequeños desencantos que nadie cuenta.
    #react-native6 min
  19. Apr 7, 2025

    Detectar lengua de señas con Python

    Detección de lengua de señas con MediaPipe: vectores de landmarks, normalización al origen de la muñeca, modelado temporal y una mirada honesta a los límites de un dataset pequeño.
    #python8 min
  20. Mar 27, 2025

    Microservicios con Docker para un blog: auth, posts y autores por separado

    Desmonté un blog en tres servicios independientes orquestados con docker-compose. Funciona; ahora cuento si valió la pena partir algo que cabía en un monolito.
    #microservicios6 min
  21. Mar 18, 2025

    De ESLint a Ultracite con Biome

    Del tándem ESLint + Prettier a Biome configurado con la receta opinada de Ultracite, midiendo tiempos y dolores en un monorepo Next.js.
    #biome7 min
  22. Feb 23, 2025

    AWS Rekognition + S3

    Una arquitectura serverless para identificar asistentes en un evento: S3 como almacenamiento, Rekognition como motor biométrico y un puñado de lecciones sobre umbrales de confianza y privacidad.
    #aws7 min
  23. Jan 25, 2025

    JWT, permisos y Redis: cómo gestionar revocación a escala

    Una arquitectura híbrida que conserva la apatridia del JWT sin renunciar a revocar sesiones en milisegundos: denylist en Redis, caché de permisos por usuario y refresh tokens con rotación.
    #jwt7 min
  24. Jan 14, 2025

    Domain-Driven Design: lo que de verdad cambia cuando lo aplicas

    Un balance honesto tras varios años aplicando DDD: el proyecto donde fue puro sobre-diseño, el que salvó al equipo, y los conceptos (agregados, lenguaje ubicuo, capas) que de verdad mueven la aguja.
    #ddd10 min
  25. Jan 4, 2025

    Cómo me inventé un lenguaje en Rust: JS con sintaxis más ligera

    Un experimento en construcción de lenguajes: lexer con logos, parser Pratt hecho a mano, AST tipado y un intérprete tree-walking que ejecuta una variante de JavaScript donde 'fun' sustituye a 'function'.
    #rust9 min
  26. Nov 25, 2024

    Next.js App Router: sitemaps y el caso del <Head> que rompía la hidratación

    Generación dinámica de sitemaps con app/sitemap.ts y la migración de next/head a la Metadata API, con un error de hidratación real como guía.
    #next.js6 min
  27. Sep 16, 2024

    Love2D y Lua: un ping-pong desde cero

    Mi primer juego completo en LÖVE: bucle principal, física con delta-time, colisiones AABB y la elegancia desconcertante de Lua.
    #love2d7 min
  28. Jul 13, 2024

    Anillos de protección en el procesador: el origen del kernel mode

    Los anillos de privilegio en x86: cómo funciona un syscall, por qué el hipervisor es ring -1 y qué es el System Management Mode (ring -2).
    #sistemas-operativos7 min
  29. Feb 7, 2024

    El LSP de TypeScript: cómo tu editor entiende el código

    Un viaje técnico por el Language Server Protocol aplicado a TypeScript: tsserver, JSON-RPC sobre stdio, sincronización incremental y las trampas que descubrí configurándolo en Neovim desde cero.
    #typescript8 min
  30. Jan 5, 2024

    Aprender Vim con dolor de muñeca: expectativas realistas

    Empecé con Vim por dolor de muñeca y curiosidad. Cuento sin adornos la curva de aprendizaje, lo que ayuda y lo que no, y por qué Vim solo no resuelve la ergonomía.
    #vim8 min
  31. Nov 1, 2023

    Contribuir a Video.js: mi código en el reproductor de medio internet

    Mis pull requests en Video.js como alexrqs: la arquitectura de componentes, el sistema de plugins, la etiqueta del open source y la emoción de ver tu código en un reproductor que usa medio mundo.
    #open-source7 min
  32. Sep 15, 2023

    Socket.IO: salas y sincronización de movimiento para un videojuego

    Cómo orquesté un multijugador en tiempo real con Socket.IO: salas, frecuencia de tick, interpolación cliente y la trampa del broadcast por evento.
    #socket.io8 min
  33. Sep 12, 2023

    BullMQ y las colas: cuando un trabajo no debe vivir en tu request handler

    Reflexión técnica sobre el diseño de sistemas asíncronos con BullMQ: ciclo de vida de los trabajos, reintentos exponenciales, scheduling, observabilidad y un episodio doloroso de concurrencia descontrolada.
    #bullmq7 min