Por Año
2026
- 23 feb Usar un Mac como un PC "normal"
- 15 feb Cómo se hizo "De Chatbot a Compañero de Trabajo": Cómo usé la IA para escribir un post sobre IA
- 15 feb De Chatbot a Compañero de Trabajo: Desmitificando el AI Engineering Stack para Desarrolladores Junior/Mid-Level
- 13 feb Sireno: Tu asistente de IA para formularios - Escribe, traduce y corrige en cualquier lugar
- 30 ene Cómo saber qué versión de tu frontend está desplegada
- 21 ene Automatizando mi diario de trabajo con IA
- 18 ene Organizar cadenas de i18n para la escalabilidad
- 12 ene Acelera 10 veces (o más) el formateo y linting de código con oxfmt y oxlint
- 6 ene Patrones de sistemas de diseño: consistencia en la UX
2025
- 28 dic 2025 en pocas palabras
- 21 dic Una herramienta para obtener los elementos exportados de archivos TypeScript
- 14 dic Componentes Controlados y No Controlados en React: Hook useControllable
- 16 nov Diseñando objetos físicos con LLMs (IA)
- 10 nov Poka-yokes (ポカヨケ) en el desarrollo de software
- 25 ago 15 años de posts
- 11 ago Sobre el equipo de design system: Objetivos, dolores y éxitos
- 13 jul Componente Await en React 18: Esperar una promesa en la UI
- 6 jul Selección en datos fragmentados (chunked)
- 30 jun Automatizando el incremento de versión de paquetes con Release Please
- 23 jun Migrando mi blog a Astro
- 1 may Creación de tarjetas personalizadas para Home Assistant
- 12 abr Git publish: Lanzamiento y publicación de paquetes npm efímeros
- 2 feb Introducción a un framework de código abierto para crear flujos de trabajo multi-agente de IA: Bee Agent Framework
- 26 ene Olvídate de instalar yarn, pnpm, etc. Usando Corepack
- 6 ene Concepto de input-field para mejorar la reutilización y consistencia en tus componentes de UI relacionados con formularios
2024
- 29 dic 2024 en pocas palabras
- 24 dic Mis covers favoritos
- 17 dic Math.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 nov Aún más funcionalidades. Lecciones que aprendí creando un componente de tabla (4/4)
- 12 nov Funcionalidades relacionadas con las columnas: Lecciones que aprendí creando un componente de tabla (3/4)
- 4 nov Generador de consultas para filtrar datos en TypeScript
- 29 oct Paginación, ordenación, filtrado y selección de filas en tablas. Lecciones que aprendí creando un componente de tabla (2/4)
- 19 oct Lecciones que aprendí creando un componente de tabla (1/4)
- 7 oct Branded types en TypeScript
- 25 ago ¿Estás usando puntos y coma en JS/TS? Quizás es hora de eliminarlos
- 19 ago Detectando dependencias circulares en proyectos Javascript
- 1 jul Interceptores de Axios para validar headers permitidos
- 23 jun Monsgeek M5 custom keyboard review
- 16 jun Un letrero luminoso de "en una reunión" para el mundo real
- 20 may Un caso real: por qué hexagonal architecture, decoupling y Dependency injection pueden ser muy útiles en el frontend
- 8 abr Librería de componentes de UI (Capítulo II): Anatomía e interfaces de los componentes
- 1 abr Enums de TypeScript: Reemplazándolos con const y union types
- 12 feb Librerí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 dic 2023 en pocas palabras
- 4 dic Cargador de aplicaciones SPA (Vue / React / Angular)
- 20 nov La ventaja de usar caché para desacoplar el código frontend
- 11 sept Consejos de TypeScript para proyectos legacy: Tipa solo lo que necesites
- 10 sept Hasta luego pulpoCon
- 4 sept Buscar un elemento en listas en JS: Rendimiento de Set vs Array
- 10 jul elgato Stream Deck en Linux
- 29 jun Modelos de IA Generativa: Impulsando la experiencia de usuario en analítica de merchandising
- 7 may Front-End: Estrategias de caché que deberías conocer
- 30 abr Retirar tu librería porque hay otra mejor: ¡Es algo bueno!
- 5 mar El alcance de las variables CSS para crear y tematizar componentes de UI flexibles
- 29 ene Enums de TypeScript, const enums y readonly maps
2022
- 31 dic 2022 en pocas palabras
- 28 dic Roles y habilidades del equipo de frontend, rompiendo las fronteras
- 12 dic Desafíos de tipado en TypeScript y utilidades de tipos
- 22 nov Uso de gráficos en el frontend: Echarts con ejemplos
- 15 nov Estrechamiento de tipos (type narrowing), protectores de tipos (type guards) y predicados de tipos (type predicates) en TypeScript ([var] is [type])
- 8 nov Dar feedback (negativo) de ingenieros a managers
- 8 sept Las arquitecturas limpias como necesidad
- 28 feb Genéricos en Golang 1.18
2021
- 28 dic Ejecución de workflows en tu clúster k8s: Argo Workflows
- 22 nov Manejando la paginación infinita
- 9 nov Pruebas de integración en Golang con dockertest
- 2 nov Vue Composition API: Cómo dividir y reutilizar código
- 25 oct Migraciones de bases de datos en Golang.
- 18 oct Creando eventos personalizados en JS
- 12 oct Cómo crear una tabla con un encabezado fijo
- 9 ago Soy casi un boomer y consumo Twitch: Mis streams favoritos
- 14 jun Cómo ejecutar GitHub Actions localmente con Act
- 10 may Simplificando el uso de un v-model personalizado en Vue
- 25 abr Consejos para usar TypeScript y Vue
- 19 abr Entendiendo d3.js - Un gráfico de líneas sencillo
- 1 abr Gestión de un conjunto de iconos SVG personalizados con Vue
- 20 ene Desplegando un sitio web estático en Azure Static Web Apps
2020
- 30 dic 2020 en pocas palabras
- 2 nov Fuga de memoria en Webkit (Safari) al usar filtros SVG
- 19 oct Charla: Creando tu propia librería de componentes UI de Vue: Desde cero hasta NPM
- 22 sept Automatiza el inicio de tus proyectos con yarn create y SAOjs
- 8 sept Có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 jul Exportar e importar el estado de Vuex
- 17 jul Compartir variables entre SCSS y Typescript
- 15 jul Por qué escribo un blog
- 21 jun Mejorando tu calidad de código y flujo de trabajo en Vue (y JS)
- 2 jun My favorite YouTube Channels 2020
- 18 may Creando un gráfico de progreso de tipo donut sencillo
- 9 may Operadores unarios en Javascript: Cómo sacarles provecho
- 27 abr Comprendiendo el event loop de Javascript: Macrotasks y microtasks
- 5 abr Slimbook ProX 15: Primeras impresiones
- 27 feb Empieza a usar TypeScript en Vue. De la forma fácil.
- 26 feb Usar el mismo avatar en diferentes cuentas y evitar confusiones
- 22 feb Clonación (profunda) de objetos en Javascript
2019
- 29 dic Lazy loading y chunking en Vue Router
- 23 dic Proyecto Instagram RGB
- 11 dic Simracing: Muy real y mucho real
- 5 dic Tu propio v-model en un componente Vue (The right way)
- 3 dic Programación funcional en PHP: Un poco de teoría y Lambdish/phunctional
- 1 nov PHP Reflection: Anotaciones, PHPDoc y mucho más
- 26 oct Composition API: Las novedades de Vue 3 en Vue 2.x
- 6 oct Mi entorno de trabajo: Hardware & Software
- 2 oct Simplificando la gestión del router de Vue
- 26 sept Mi edificante experiencia ayudando a organizar la PulpoCon19
- 9 sept Desacoplando la interacción con una API en Vue: vue.$api
- 2 sept Unificando la información de eventos de una comunidad: vigotech.json
- 26 ago Sireno Grid: Un sistema ligero de Grid CSS, basado en Grid Layout
- 18 ago Juegos Sandbox: Minecraft y 7 Days to Die (7D2D)
- 30 jun Mapas interactivos SVG con Vue
- 25 may Impresiones tras un mes de uso de un teclado mecánico
- 12 may Mi histórico de teléfonos móviles
- 27 abr Haciendo café: simple análisis de costes
- 20 abr No todo es trabajar: Jugando con trenes
- 7 abr Accediendo al Sergas y a eSaude desde linux
- 31 mar Mis proyectos Open Source
- 1 mar Mis charlas
- 4 feb "Domotizar" una lámpara de escritorio por 10€
- 28 ene Mi experiencia con el trato médico-paciente
2018
- 29 dic Una prueba radiológica (PET-CT), un friki (Yo) y un contador Geiger
- 20 dic Como es uno de mis "ciclos" de quimioterapia
- 8 dic Cosas que he aprendido de un cáncer
- 29 nov Mis canales favoritos de YouTube
- 22 ene Generación de números de cancelación de factura para Drupal Commerce
- 5 ene He dejado de usar Facebook. ¿Y ahora qué?
2017
- 27 nov Abstraer los datos de su representación en un CMS = WIN
- 23 oct Crear plantillas de email con nuxt.js
- 13 jun ¿Por qué el directorio home en linux se representa con ~ (tilde)?
- 8 jun Usar un 'field widget' en un formulario convencional en Drupal 7
- 18 may Recibir notificaciones de acceso SSH desde una IP desconocida
- 4 may Vigo hace piña
- 18 abr Usando Vue.js + electron.js para crear aplicaciones de escritorio
- 6 abr Vuex el Redux de Vue.js (II)
- 3 abr Vuex el Redux de Vue.js (I)
- 15 mar Introducción a Vue.js
- 7 mar Entidad con propietario en Laravel 5.4
- 3 mar Algo se mueve en Vigo
2016
2015
2013
2012
- 29 nov Bigdump: 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 abr Como descargar un sitio web completo a tu equipo con wget
- 10 abr Disconect.me: Navega de forma privada
- 22 feb Cookies en un IFRAME en Internet Explorer: p3p policy
- 15 feb CCK Blocks: Separa los campos de un nodo
2011
- 13 dic Backup incremental sobre FTP con rsync + curlftpfs
- 22 sept Reuniones presenciales vs reuniones online
- 29 ago Convertir tablas InnoDB en MyISAM
- 12 ago Moviendo tu blog wordpress de dominio
- 8 ago Nueva rama de desarrollo en Node.js y nueva imagen de marca
- 3 ago Ocultar código comentado en plantillas PHP
- 14 jul Google Plus, ¿la nueva red social?
- 12 jul Chat en tu navegador con node.js y Faye
- 11 jul Mejorando node.js: Faye
- 27 jun 3D sin plugins en tu navegador con javascript: three.js
- 29 abr Websites para móviles
- 7 abr Spam Social
Sergio Carracedo