Por Año
2026
- 22 junConsejos y trucos para mejores prompts y generación de imágenes consistente
- 16 junLas SKILLs de agentes como problema de seguridad
- 8 jun¿Estás exponiendo props de clase o estilos en tus componentes de UI? ¡Deja de hacerlo!
- 4 junAlgunas ideas erróneas sobre los botones y enlaces en las SPA
- 26 mayAI Harness: Del vibecoding a la ingeniería agéntica con Learnship
- 14 mayLa AI, el humano y el simil de los robots 🤖 en una cadena de fabricación
- 8 mayLa Tik-Tok-ización del desarrollo con AI
- 26 abrContexto de IA en profundidad
- 11 abrOrganizando tus archivos SKILL.md en carpetas
- 10 abrAI Kiddies
- 4 abrEl valor del conocimiento en la "era de la IA"
- 1 abrEjecuta y controla múltiples agentes en tu Raspberry Pi: Spacebot + Home Assistant
- 13 marUn pequeño paso, un gran significado
- 8 marCreando un agente entrenador de gimnasio con IA (o cualquier otro agente) fácilmente con OpenCode
- 23 febUsar un Mac como un PC "normal"
- 15 febCómo se hizo "De Chatbot a Compañero de Trabajo": Cómo usé la IA para escribir un post sobre IA
- 15 febDe Chatbot a Compañero de Trabajo: Desmitificando el AI Engineering Stack para Desarrolladores Junior/Mid-Level
- 15 febSireno: Your AI Assistant for Forms - Write, Translate & Correct Anywhere
- 14 febEl proyecto que me hizo recuperar la ilusión por construir: Sireno Assistant: Un asistente con IA (como no) para formularios
- 13 febSireno: Tu asistente de IA para formularios - Escribe, traduce y corrige en cualquier lugar
- 8 febSobre el miedo a hacer visible el "fracaso"
- 30 eneCómo saber qué versión de tu frontend está desplegada
- 21 eneAutomatizando mi diario de trabajo con IA
- 18 eneOrganizar cadenas de i18n para la escalabilidad
- 12 eneAcelera 10 veces (o más) el formateo y linting de código con oxfmt y oxlint
- 6 enePatrones de sistemas de diseño: consistencia en la UX
2025
- 28 dic2025 en pocas palabras
- 21 dicUna herramienta para obtener los elementos exportados de archivos TypeScript
- 14 dicComponentes Controlados y No Controlados en React: Hook useControllable
- 16 novDiseñando objetos físicos con LLMs (IA)
- 10 novPoka-yokes (ポカヨケ) en el desarrollo de software
- 25 ago15 años de posts
- 11 agoSobre el equipo de design system: Objetivos, dolores y éxitos
- 13 julComponente Await en React 18: Esperar una promesa en la UI
- 6 julSelección en datos fragmentados (chunked)
- 30 junAutomatizando el incremento de versión de paquetes con Release Please
- 23 junMigrando mi blog a Astro
- 1 mayCreación de tarjetas personalizadas para Home Assistant
- 12 abrGit publish: Lanzamiento y publicación de paquetes npm efímeros
- 2 febIntroducción a un framework de código abierto para crear flujos de trabajo multi-agente de IA: Bee Agent Framework
- 26 eneOlvídate de instalar yarn, pnpm, etc. Usando Corepack
- 6 eneConcepto de input-field para mejorar la reutilización y consistencia en tus componentes de UI relacionados con formularios
2024
- 29 dic2024 en pocas palabras
- 24 dicMis covers favoritos
- 17 dicMath.max (y min) 'Maximum call stack size exceeded' con grandes conjuntos de datos y cómo reimplementarlo para que sea mucho más rápido
- 27 novAún más funcionalidades. Lecciones que aprendí creando un componente de tabla (4/4)
- 12 novFuncionalidades relacionadas con las columnas: Lecciones que aprendí creando un componente de tabla (3/4)
- 4 novGenerador de consultas para filtrar datos en TypeScript
- 29 octPaginación, ordenación, filtrado y selección de filas en tablas. Lecciones que aprendí creando un componente de tabla (2/4)
- 19 octLecciones que aprendí creando un componente de tabla (1/4)
- 7 octBranded types en TypeScript
- 25 ago¿Estás usando puntos y coma en JS/TS? Quizás es hora de eliminarlos
- 19 agoDetectando dependencias circulares en proyectos Javascript
- 1 julInterceptores de Axios para validar headers permitidos
- 23 junMonsgeek M5 custom keyboard review
- 16 junUn letrero luminoso de "en una reunión" para el mundo real
- 20 mayUn caso real: por qué hexagonal architecture, decoupling y Dependency injection pueden ser muy útiles en el frontend
- 8 abrLibrería de componentes de UI (Capítulo II): Anatomía e interfaces de los componentes
- 1 abrEnums de TypeScript: Reemplazándolos con const y union types
- 12 febLibrería de componentes de UI (Capítulo I): ¿Por qué y cómo crear una? Características de una buena librería de UI
2023
- 29 dic2023 en pocas palabras
- 4 dicCargador de aplicaciones SPA (Vue / React / Angular)
- 20 novLa ventaja de usar caché para desacoplar el código frontend
- 11 septConsejos de TypeScript para proyectos legacy: Tipa solo lo que necesites
- 10 septHasta luego pulpoCon
- 4 septBuscar un elemento en listas en JS: Rendimiento de Set vs Array
- 10 julelgato Stream Deck en Linux
- 29 junModelos de IA Generativa: Impulsando la experiencia de usuario en analítica de merchandising
- 7 mayFront-End: Estrategias de caché que deberías conocer
- 30 abrRetirar tu librería porque hay otra mejor: ¡Es algo bueno!
- 5 marEl alcance de las variables CSS para crear y tematizar componentes de UI flexibles
- 29 eneEnums de TypeScript, const enums y readonly maps
2022
- 31 dic2022 en pocas palabras
- 28 dicRoles y habilidades del equipo de frontend, rompiendo las fronteras
- 12 dicDesafíos de tipado en TypeScript y utilidades de tipos
- 22 novUso de gráficos en el frontend: Echarts con ejemplos
- 15 novEstrechamiento de tipos (type narrowing), protectores de tipos (type guards) y predicados de tipos (type predicates) en TypeScript ([var] is [type])
- 8 novDar feedback (negativo) de ingenieros a managers
- 8 septLas arquitecturas limpias como necesidad
- 28 febGenéricos en Golang 1.18
2021
- 28 dicEjecución de workflows en tu clúster k8s: Argo Workflows
- 22 novManejando la paginación infinita
- 9 novPruebas de integración en Golang con dockertest
- 2 novVue Composition API: Cómo dividir y reutilizar código
- 25 octMigraciones de bases de datos en Golang.
- 18 octCreando eventos personalizados en JS
- 12 octCómo crear una tabla con un encabezado fijo
- 9 agoSoy casi un boomer y consumo Twitch: Mis streams favoritos
- 14 junCómo ejecutar GitHub Actions localmente con Act
- 10 maySimplificando el uso de un v-model personalizado en Vue
- 25 abrConsejos para usar TypeScript y Vue
- 19 abrEntendiendo d3.js - Un gráfico de líneas sencillo
- 1 abrGestión de un conjunto de iconos SVG personalizados con Vue
- 20 eneDesplegando un sitio web estático en Azure Static Web Apps
2020
- 30 dic2020 en pocas palabras
- 2 novFuga de memoria en Webkit (Safari) al usar filtros SVG
- 19 octCharla: Creando tu propia librería de componentes UI de Vue: Desde cero hasta NPM
- 22 septAutomatiza el inicio de tus proyectos con yarn create y SAOjs
- 8 septCómo funciona la reactividad de Vue (I): Object.defineProperty
- 31 ago¿Es saber buscar en Google una habilidad?
- 22 ago¿Qué es VuePress y por qué deberías usarlo para documentar tu proyecto?
- 22 julExportar e importar el estado de Vuex
- 17 julCompartir variables entre SCSS y Typescript
- 15 julPor qué escribo un blog
- 21 junMejorando tu calidad de código y flujo de trabajo en Vue (y JS)
- 2 junMy favorite YouTube Channels 2020
- 18 mayCreando un gráfico de progreso de tipo donut sencillo
- 9 mayOperadores unarios en Javascript: Cómo sacarles provecho
- 27 abrComprendiendo el event loop de Javascript: Macrotasks y microtasks
- 5 abrSlimbook ProX 15: Primeras impresiones
- 27 febEmpieza a usar TypeScript en Vue. De la forma fácil.
- 26 febUsar el mismo avatar en diferentes cuentas y evitar confusiones
- 22 febClonación (profunda) de objetos en Javascript
2019
- 29 dicLazy loading y chunking en Vue Router
- 23 dicProyecto Instagram RGB
- 11 dicSimracing: Muy real y mucho real
- 5 dicTu propio v-model en un componente Vue (The right way)
- 3 dicProgramación funcional en PHP: Un poco de teoría y Lambdish/phunctional
- 1 novPHP Reflection: Anotaciones, PHPDoc y mucho más
- 26 octComposition API: Las novedades de Vue 3 en Vue 2.x
- 6 octMi entorno de trabajo: Hardware & Software
- 2 octSimplificando la gestión del router de Vue
- 26 septMi edificante experiencia ayudando a organizar la PulpoCon19
- 9 septDesacoplando la interacción con una API en Vue: vue.$api
- 2 septUnificando la información de eventos de una comunidad: vigotech.json
- 26 agoSireno Grid: Un sistema ligero de Grid CSS, basado en Grid Layout
- 18 agoJuegos Sandbox: Minecraft y 7 Days to Die (7D2D)
- 30 junMapas interactivos SVG con Vue
- 25 mayImpresiones tras un mes de uso de un teclado mecánico
- 12 mayMi histórico de teléfonos móviles
- 27 abrHaciendo café: simple análisis de costes
- 20 abrNo todo es trabajar: Jugando con trenes
- 7 abrAccediendo al Sergas y a eSaude desde linux
- 31 marMis proyectos Open Source
- 1 marMis charlas
- 4 feb"Domotizar" una lámpara de escritorio por 10€
- 28 eneMi experiencia con el trato médico-paciente
2018
- 29 dicUna prueba radiológica (PET-CT), un friki (Yo) y un contador Geiger
- 20 dicComo es uno de mis "ciclos" de quimioterapia
- 8 dicCosas que he aprendido de un cáncer
- 29 novMis canales favoritos de YouTube
- 22 eneGeneración de números de cancelación de factura para Drupal Commerce
- 5 eneHe dejado de usar Facebook. ¿Y ahora qué?
2017
- 27 novAbstraer los datos de su representación en un CMS = WIN
- 23 octCrear plantillas de email con nuxt.js
- 13 jun¿Por qué el directorio home en linux se representa con ~ (tilde)?
- 8 junUsar un 'field widget' en un formulario convencional en Drupal 7
- 18 mayRecibir notificaciones de acceso SSH desde una IP desconocida
- 4 mayVigo hace piña
- 18 abrUsando Vue.js + electron.js para crear aplicaciones de escritorio
- 6 abrVuex el Redux de Vue.js (II)
- 3 abrVuex el Redux de Vue.js (I)
- 15 marIntroducción a Vue.js
- 7 marEntidad con propietario en Laravel 5.4
- 3 marAlgo se mueve en Vigo
2016
2015
2013
2012
- 29 novBigdump: Importa grandes ficheros mysql sin problemas
- 24 may¿Cuentas tuteladas para menores en las redes sociales?
- 9 may¿Qué estabas haciendo hace un año? Las redes sociales te lo recuerdan
- 17 abrComo descargar un sitio web completo a tu equipo con wget
- 10 abrDisconect.me: Navega de forma privada
- 22 febCookies en un IFRAME en Internet Explorer: p3p policy
- 15 febCCK Blocks: Separa los campos de un nodo
2011
- 13 dicBackup incremental sobre FTP con rsync + curlftpfs
- 22 septReuniones presenciales vs reuniones online
- 29 agoConvertir tablas InnoDB en MyISAM
- 12 agoMoviendo tu blog wordpress de dominio
- 8 agoNueva rama de desarrollo en Node.js y nueva imagen de marca
- 3 agoOcultar código comentado en plantillas PHP
- 14 julGoogle Plus, ¿la nueva red social?
- 12 julChat en tu navegador con node.js y Faye
- 11 julMejorando node.js: Faye
- 27 jun3D sin plugins en tu navegador con javascript: three.js
- 29 abrWebsites para móviles
- 7 abrSpam Social
Sergio Carracedo