Posts by Year
2025
- Jun 30 Automating package version bump with Release Please
- Jun 23 Migrating my blog to Astro
- May 1 Creating custom cards for Home Assistant
- Apr 12 Git publish: Releasing and publishing ephemeral npm packages
- Feb 2 Introduction to an open-source framework to create AI multi-agent workflows: Bee Agent Framework
- Jan 26 Forget about installing yarn, pnpm, etc. Using Corepack
- Jan 6 Input-field concept to improve reusability and consistency in your form-related UI components
2024
- Dec 29 2024 in a Nutshell
- Dec 24 My favourite music covers
- Dec 17 Math.max (and min) 'Maximum call stack size exceeded' with large datasets and how to reimplement it to make it much faster
- Nov 27 Even more features. Lessons I Learned Creating a Table Component (4/4)
- Nov 12 Column related features: Lessons I Learned Creating a Table Component (3/4)
- Nov 4 Query builder to filter data in TypeScript
- Oct 29 Table pagination, sorting, filtering and row selection. Lessons I learned creating a table component (2/4)
- Oct 19 Lessons I learned creating a table component (1/4)
- Oct 7 Branded types in TypeScript
- Aug 25 Are you using semicolons in JS/TS? Maybe is time to remove them
- Aug 19 Detecting circular dependencies in Javascript projects
- Jul 1 Axios interceptors to validate allowed headers
- Jun 23 Monsgeek M5 custom keyboard review
- Jun 16 A real-world "on a meeting" light sign
- May 20 A real case: why hexagonal architecture, decoupling, and Dependency injection can be very useful in the frontend
- Apr 8 UI components library (Chapter II): Components anatomy and interfaces
- Apr 1 Typescript enums: Replacing them with const and union types
- Feb 12 UI components library (Chapter I): Why and to create one? Characteristics of a good UI library
2023
- Dec 29 2023 in a Nutshell
- Dec 4 SPA (Vue / React / Angular) app loader
- Nov 20 The advantage of using cache to decouple the frontend code
- Sep 11 Typescript tips for legacy projects: Type only you need
- Sep 10 Hasta luego pulpoCon
- Sep 4 Find a item in lists in js: Performance of Set vs Array
- Jul 10 elgato Stream Deck on Linux
- Jun 29 Generative AI Models: Boosting Merchandising Analytics User Experience
- May 7 Front-End: Cache Strategies You Should Know
- Apr 30 Withdraw your library because there is another one better: It's something nice!
- Mar 5 CSS variables scoping to create and theme flexible ui components
- Jan 29 Typescript enums, const enums and readonly maps
2022
- Dec 31 2022 in a Nutshell
- Dec 28 Frontend team roles and skills, breaking the borders
- Dec 12 Typescript typing challenges and type utilities
- Nov 22 Using charts in the frontend: Echarts with examples
- Nov 15 Typescript type narrowing, type guards and type predicates ([var] is [type])
- Nov 8 Giving (Negative) Feedback From Engineers to Managers
- Sep 8 Las arquitecturas limpias como necesidad
- Feb 28 Generics in Golang 1.18
2021
- Dec 28 Running workflows in you k8s cluster: Argo Workflows
- Nov 22 Dealing with infinite pagination
- Nov 9 Integration tests in Golang with dockertest
- Nov 2 Vue Composition API: How to split and reuse code
- Oct 25 Database migrations in Golang.
- Oct 18 Creating custom events in JS
- Oct 12 How to create a table with a fixed header
- Aug 9 Soy casi un boomer y consumo Twitch: Mis streams favoritos
- Jun 14 How to run GitHub Actions in local with Act
- May 10 Simplifying the use of custom a Vue v-model
- Apr 25 Tips using Typescript and Vue
- Apr 19 Understanding d3.js - A simple line chart
- Apr 1 Custom SVG icon set management with Vue
- Jan 20 Deploying a static website in Azure Static Web Apps
2020
- Dec 30 2020 in a nutshell
- Nov 2 Webkit (Safari) memory leak using SVG filters
- Oct 19 Talk: Creating your own Vue UI components library: From scratch to NPM
- Sep 22 Automate the startup of your projects with yarn create and SAOjs
- Sep 8 How Vue's reactivity works (I): Object.defineProperty
- Aug 31 Is know how to search on Google a skill?
- Aug 22 What is VuePress and why you should use it to document your project?
- Jul 22 Export and import Vuex state
- Jul 17 Sharing variables between SCSS and Typescript
- Jul 15 Why I write a blog
- Jun 21 Improving your Vue (and JS) coding quality and workflow
- Jun 2 My favorite YouTube Channels 2020
- May 18 Creating a simple donut progress chart
- May 9 Javascript unary operators: Taking advantage using them
- Apr 27 Understanding Javascript's event loop: Macrotasks and microtasks
- Apr 5 Slimbook ProX 15: First Impressions
- Feb 27 Start using Typescript in Vue. The easy way.
- Feb 26 Using same avatar in different accounts and avoid confusion
- Feb 22 (Deep) Cloning objects in Javascript
2019
- Dec 29 Vue Router lazy loading and chunking
- Dec 23 Instagram RGB Project
- Dec 11 Simracing: Muy real y mucho real
- Dec 5 Tu propio v-model en un componente Vue (The right way)
- Dec 3 Programación funcional en PHP: Un poco de teoría y Lambdish/phunctional
- Nov 1 PHP Reflection: Anotaciones, PHPDoc y mucho más
- Oct 26 Composition API: Las novedades de Vue 3 en Vue 2.x
- Oct 6 Mi entorno de trabajo: Hardware & Software
- Oct 2 Simplificando la gestión del router de Vue
- Sep 26 Mi edificante experiencia ayudando a organizar la PulpoCon19
- Sep 9 Desacoplando la interacción con una API en Vue: vue.$api
- Sep 2 Unificando la información de eventos de una comunidad: vigotech.json
- Aug 26 Sireno Grid: Un sistema ligero de Grid CSS, basado en Grid Layout
- Aug 18 Juegos Sandbox: Minecraft y 7 Days to Die (7D2D)
- Jun 30 Mapas interactivos SVG con Vue
- May 25 Impresiones tras un mes de uso de un teclado mecánico
- May 12 Mi histórico de teléfonos móviles
- Apr 27 Haciendo café: simple análisis de costes
- Apr 20 No todo es trabajar: Jugando con trenes
- Apr 7 Accediendo al Sergas y a eSaude desde linux
- Mar 31 Mis proyectos Open Source
- Mar 1 Mis charlas
- Feb 4 "Domotizar" una lámpara de escritorio por 10€
- Jan 28 Mi experiencia con el trato médico-paciente
2018
- Dec 29 Una prueba radiológica (PET-CT), un friki (Yo) y un contador Geiger
- Dec 20 Como es uno de mis "ciclos" de quimioterapia
- Dec 8 Cosas que he aprendido de un cáncer
- Nov 29 Mis canales favoritos de YouTube
- Jan 22 Generación de números de cancelación de factura para Drupal Commerce
- Jan 5 He dejado de usar Facebook. ¿Y ahora qué?
2017
- Nov 27 Abstraer los datos de su representación en un CMS = WIN
- Oct 23 Crear plantillas de email con nuxt.js
- Jun 13 ¿Por qué el directorio home en linux se representa con ~ (tilde)?
- Jun 8 Usar un 'field widget' en un formulario convencional en Drupal 7
- May 18 Recibir notificaciones de acceso SSH desde una IP desconocida
- May 4 Vigo hace piña
- Apr 18 Usando Vue.js + electron.js para crear aplicaciones de escritorio
- Apr 6 Vuex el Redux de Vue.js (II)
- Apr 3 Vuex el Redux de Vue.js (I)
- Mar 15 Introducción a Vue.js
- Mar 7 Entidad con propietario en Laravel 5.4
- Mar 3 Algo se mueve en Vigo
2016
2015
2013
2012
- Nov 29 Bigdump: Importa grandes ficheros mysql sin problemas
- May 24 ¿Cuentas tuteladas para menores en las redes sociales?
- May 9 ¿Qué estabas haciendo hace un año? Las redes sociales te lo recuerdan
- Apr 17 Como descargar un sitio web completo a tu equipo con wget
- Apr 10 Disconect.me: Navega de forma privada
- Feb 22 Cookies en un IFRAME en Internet Explorer: p3p policy
- Feb 15 CCK Blocks: Separa los campos de un nodo
2011
- Dec 13 Backup incremental sobre FTP con rsync + curlftpfs
- Sep 22 Reuniones presenciales vs reuniones online
- Aug 29 Convertir tablas InnoDB en MyISAM
- Aug 12 Moviendo tu blog wordpress de dominio
- Aug 8 Nueva rama de desarrollo en Node.js y nueva imagen de marca
- Aug 3 Ocultar código comentado en plantillas PHP
- Jul 14 Google Plus, ¿la nueva red social?
- Jul 12 Chat en tu navegador con node.js y Faye
- Jul 11 Mejorando node.js: Faye
- Jun 27 3D sin plugins en tu navegador con javascript: three.js
- Apr 29 Websites para móviles
- Apr 7 Spam Social