Changelog
04:55
Changelog

PC de Adam - Changelog

  • Archivo
  • Editar
  • Ver
  • Insertar
  • Formato
  • Herramientas
  • Tabla
  • Complementos
  • Ayuda
Orgullosamente robado a Pablo Vizcaino, pero modificado
  • Comentar
  • Compartir

Antes de nada, es posible que veas cosas que no se ven o no aparecen. Eso es porque está realizado, pero no publicado. La idea es tener un control de todas las acciones realizadas. Cuando se publiquen las páginas/apps, se actualizará para añadir los enlaces correspondientes.

2026/08/17

  • Iconos de escritorio (y todos los demás):
    • Hemos reescrito toda la parte de iconos para quitar la fuente de Material Icons… Ya me tenía harto…
    • Hemos pasado todo a SVGs, preparado un script para descargar iconos de forma manual y cambiado tooooodos los apartados donde había un icono. Creo que, aunque le meta más peso al DOM, paso de la fuente y de si optimizarla, que si flashes, cargas lentas… ya no sé qué hacer con ella para solo usar un 7% de los iconos o menos… Así que esto es más cómodo y más funcional.
    • Ya no hay bloqueos iniciales, no hay palabras enormes que desaparecen. Ya solo hay iconos funcionales.
    • Quizás haya algún bug porque son muchos iconos cambiados, pero estoy pendiente y revisando poco a poco. Que todo este trabajo nos traiga paz y amor.

2026/08/16

  • General:
    • Añado el peso 600 de Fire Sans para compensar los pesos que estaba usando en el navegador y no quería modificar todos los pesos a 500 o 700.
      • Revisión del CSS para el nuevo peso.
    • Desactivo los preloads de un plugin de optimización porque no son los correctos y ya hacemos nuestra optimización manual.
    • Optimizaciones en el server para ajustar los max-age de algunos ficheros específicos.
    • El gif cuando no hay carátula en discos, canciones, etc…:
      • He revisado que estaba el gif dentro del CSS, pero lo usamos muy poco por el cambio a usar el MP4 más optimizado/reducido.
      • He reescrito la parte del «Now Playing» que es donde se usaba. Pero lo dejamos en ciertos apartados como Estadísticas musicales por años o otros apartados de discos.

2026/08/14

  • Historial de canciones:
    • Hoy fuera IA porque se ha cargado cosas. Hoy full a la antigua y lo he resuelto en dos segundos. Hoy era mi día de brillar.
    • Cuando creamos la ventana de Configuración, usamos también la clase .c-window para mantener la estética. Un código jovencísimo de la web estaba leyendo .c-window__content de esa página en vez de la de la pantalla principal. Esto hacía que el historial ni se actualizase ni se añadieran las fotos de los artistas.
    • Una vez arreglado ese problema, ya cargaban las paginaciones.
  • Artistas más escuchados:
    • Como ya guardamos imágenes de artistas en el WP, hemos eliminado carga y consultas externas.
    • Si tenemos la imagen, la mostramos de aquí directamente. Y, si no, como antes. Búsqueda en un par de sitios externos de confianza.

2026/08/12

  • Mis discos:
    • La app del listado deja de usar GraphQL y pasa a la REST API propia que creamos el otro día.
    • Carga inicial de 25 discos y scroll infinito; los filtros tiran de un endpoint de facets en una sola petición (en lugar de recorrer todo el catálogo por GraphQL).
    • El orden (año, título, artista…) se resuelve en el servidor: al reordenar y seguir bajando ya no “saltan” las filas.
    • Corregidos títulos con entidades HTML raras.
    • Eliminado el stack WPGraphQL del proyecto: era el único sitio donde lo usaba.
  • Escritorio:
    • El preload del fondo se alinea para que cargue la misma versión (en este caso, la versión webp).
    • Parece que tenía duplicado el fondo por defecto. Por lo que cargaba la imagen suelta y como background. Eliminamos esa duplicidad hasta que veamos si fue por una razón específica.
    • El apartado de ‘Now playing’ tenía el vídeo animado cuando no hay carátula y cargaba incluso cuando no estaba mostrando nada. Para intentar optimizar, también lo bloqueo hasta que cargue.
    • Tenía un par de preloads por ahí de las fuentes de Google, pero las quité hace demasiado tiempo. Está todo en modo local. Así que nos quitamos una carga.

2026/08/06

  • Estado de Adam
    • Añadimos Steam para ver si estoy jugando a algo y mostrar los últimos juegos.

2026/07/27

  • REST API:
    • Hace un par de semanas reducimos varios endpoints personalizados sobre los discos a uno solo, pero dando soporte a los antiguos.
    • Como han pasado muchos días y no se ha roto nada por ningún lado, vamos a eliminar también los endpoints antiguos.
    • Ahora revisaremos si todo funciona en estos días y ver si hemos conseguido reducir el código correctamente.
  • Your Best in Spotify:
    • Código mega obsoleto que empecé, pero nunca acabé. Ahora os ha salido ya que si carteles de festivales, tu ticket de la compra, etc… ya la idea ha sido más que explotada. 🙁
    • He guardado la idea mini a algo más extendido como Your real best, pero orientado a canciones. No diré mucho más. Algún día decidiré si haré esa idea.

2026/07/26

  • Estado de Adam:
    • He actualizado un poco el diseño porque me gustaba poco los degradados.

2026/07/23

  • Ficha de personaje:
    • En octubre de 2025, se me ocurrió hacer una «ficha de personaje».
    • La cuestión era un resumen de lo que estaba haciendo para cuando estuve enfermo. Así la gente podía entrar cuando les daba miedo preguntar.
    • Ahora creo una versión beta para ir añadiendo cosas si se me ocurren.
    • He conectado todos los tipos de datos de la web, todas las entradas de los otros proyectos y un poco de info que se me ocurriría.

2026/07/19

  • Logros de conciertos:
    • Corrijo algunas frases que se habían quedado de otros componentes y no las había actualizado.

2026/07/17

  • Logros de conciertos:
    • Al modificar la REST API con los datos de setlist.fm, vamos a ir trabajando más logros porque hay que inundar de logros solo por el cotilleo.
    • Se añade una nueva sección Canciones para añadir los logros de canciones:
      • Se añaden logros de canciones únicas escuchadas en directo.
      • Se añaden logros de canciones en las que han subido artistas invitados.
      • Se añaden logros de canciones que son covers de otros grupos.
  • Estadísticas de conciertos:
    • Se añade en Conciertos un ranking de canciones más escuchadas.
    • Se añade en Artistas un ranking de artistas invitados.
  • Conciertos:
    • Con el apartado de sincronización de setlist.fm, le he añadido un cron job de WordPress para que cada semana se vayan actualizando setlists.
    • Creo una nueva vista privada para ver qué conciertos están marcados como asistidos comparándolos con mi perfil.
      • Así puedo marcarlos manualmente en la web.
      • También he añadido un campo personalizado para ir guardando lo que está ya marcado.
    • Creo una nueva vista privada para ver un resumen completo de todos los conciertos.
      • Sobre todo para poder ayudar a setlist.fm para unirlos y tal.
    • Se empieza a pensar qué vamos a hacer con la vista detalle de concierto para enseñar toda la info nueva y las imágenes.
  • Changelogs:
    • Ahora que ya está metido en un tipo de dato, las actualizaciones de los iconos en el escritorio no se actualizarán nunca.
    • Así que, cuando se actualiza algún post del tipo de dato, se lanza una función para que actualice la página correspondiente. Así, aparecerá la campanita si he actualizado algo en los últimos siete días.
    • Como recordatorio, añadí también llamar a RankMath\Sitemap\Cache::invalidate_storage() para invalidar la caché, ya que parece que no estaba saltando la caché, a pesar de usar las funciones nativas de WordPress por donde debería de pasar…

2026/07/16

  • Iconos de escritorios:
    • ¿Ves esa bonita parte de abajo, hablando de las ventajas y la optimización? Ya lo he quitado…
    • Entre problemas con la ligadura, la reducción y algunos fallos con los subsets provocando que no se vieran todos los iconos y llegando a reducir el tamaño a solo el 90% del original…
    • La idea de eliminar problemas me encanta (aunque hayan durado menos de 24 horas).

2026/07/15

  • Iconos de escritorio:
    • Desde hace tiempo, siempre me cabrea la carga del Material Icons y que se vean los «códigos» de la fuente para cambiarse por los iconos. Ya intenté mejorar la carga, preload, carga desde CDN / local… pero ya no se podía mejorar. Es normal: es una fuente de iconos muy extensa. Son casi 300 KB.
    • Ahora que usamos Vite, podemos hacer cosas mejores para empaquetar estas cosas. Se me ocurrió hacer un subset: la fuente reducida a los iconos que se usan. Es un poco problemático, pero ahorramos cosas.
      • ¿Por qué es problemático? Porque tenemos que estar pendientes que, si usamos otro icono, hay que añadirlo a la lista.
      • ¿Por qué es ventajoso? Porque reducimos el fichero a lo que usamos realmente… si usamos 50 de 250 iconos, es reducir bastante la tipografía.
    • Se ha añadido un nuevo paso para crear este subset a través de un manifest.json.
    • ¿Qué he descubierto? Que si los iconos se incluyen por ligaduras, hay poco que recortar. Por suerte, en nuestro caso solo son cuatro (battery_horiz_075, signal_cellular_3_bar, work_update, youtube_activity). Pero ha hecho que el fichero sea más grande de lo que podría haberse reducido.
    • ¿El resultado de la optimización? 237 KB → 120 KB, ~49 % menos.
    • También se ha añadido medida anti-flash o parpadeos hasta que cargue la fuente via CSS/JS. Le metemos una clase al HTML hasta que carga y, una vez esté lista, le quitamos la clase para que muestre los iconos. Lo prefiero antes de que pegue el parpadeo feo.
  • Conciertos:
    • Después del auge que ha tenido un proyecto vibe-coded en Claude obteniendo info de la API de setlist.fm y montando imágenes chulas, recuperé las notas que tenía del apartado Conciertos hace meses y nunca hice.
    • La verdad es que yo nunca pensé que setlist.fm estaba tan «abierto» al acceso de info ni cómo unirlos. Pero no es más que un Last.fm o Discogs que ya usamos habitualmente aquí.
    • He añadido nuevos campos para guardar la info de los setlists
    • He añadido una nueva herramienta de búsqueda e inclusión de la info de los setlists para hacer búsquedas manuales y reales en vez de asignar de forma automática y tener falsos positivos.
    • Actualizamos la REST API de la info de conciertos:
      • Añadimos el nombre del tour, setlists de canciones, si salieron a tocar con invitados. Además, se deja algunos campos sin añadir para estudiarlos y ver si pueden ser útiles, pero son muy «personalizados».
      • Añadimos estadísticas del concierto como número de canciones, covers, invitados, encores, etc… por si puede sacar info para ciertos logros y/o estadísticas.
    • Además de todo eso, trabajo manual hasta altas horas de la mañan para añadir conciertos en setlist.fm de todos mis setlists físicos (devolviéndole el favor al señor setlist.fm) e ir casando con los registros que ya tenemos en la web. Esto pinta bieeen.

2026/julio/04

  • Changelog:
    • Pues nos hemos pasado el juego un poco. Hasta tal punto que fallaba el juego. Te cuento: el changelog del PC ha llegado a casi 81.000 caracteres, 13.600 palabras y a 72 minutos de lectura. Eso quiere decir que la página ya es tan larga que le cuesta guardar cada vez que añado cuatro cosas.
    • Para mejorar los tiempos, toca pasar todos los datos a un tipo de dato personalizado para los Changelogs.
    • Los changelogs antes estaban separado por páginas, pero ahora los hemos unificado y clasificado en una taxonomía personalizada.
    • Además, seguimos con nuestra Guterberg-rización y hemos creado un bloque conjunto para las listas y poder usarlo en ambas páginas.
      • Este bloque tiene un campo para elegir lo que se mostrará: todas o por tipo de proyecto.
      • Este bloque se puede elegir cuántas entradas (días de cambios) se mostrarán por página.
      • Además, añadiremos paginación para ir mostrando las últimas 20 entradas.
    • Este cambio afecta tanto a Changelog como a Changelog (otros proyectos)

2026/junio/28

  • Logros musicales:
    • Limpieza de console.logs y cosas de debug en producción.
    • Añadir una pantalla de precarga mientras los datos cargan.
    • Encerrar los estilos en el propio componente para que no afecten a otros.

2026/junio/27

  • Logros musicales:
    • Le doy un nuevo cambio visual. Aún no encuentro la forma que, de verdad, quiero mostrarlo y que quede guay.
    • Reviso todos los apartados para que estén funcionando adecuadamente.
    • Añadimos el logro «Ecoplaneta»: cuando se usa el transporte público en 10 ocasiones en un año.
    • Estudiando la forma si podemos tener dos vistas: clasificadas por categorías y listado contínuo ordenado por de logros más reciente a más antiguo, luego los que falten por arreglar.
    • Otro rework de diseño con colores naranjas (que tengo poco).
    • Creo el bloque de Gutenberg para poder añadirlo a la web.
    • ¡A publicar! Que llevo un año haciendo el canelo y hay que subirlo a producción para el feedback y tenerlo pendiente de cosas a mejorar.

2026/mayo/21

  • General:
    • Ventanas:
      • Ahora, cuando la ventana no está maximizada, se puede aumentar o reducir de tamaño desde la esquina inferior derecha (gracias @JoseJARN por la idea)
    • Cajón de aplicaciones (escritorio en móvil):
      • Se le añade un píxel más de altura para que no se vea el fondo.
      • Se añade un poco más de espacio para que las últimas apps se muestren bien el nombre cuando se hace scroll hasta el final.

2026/mayo/14

  • Vista detalle de disco:
    • Se mostraba el tracklist y los créditos de canciones, pero parece que ha cambiado la API de Discogs. Se ha arreglado.
    • Estoy pendiente de unos cambios donde mostrar más info en el apartado del disco. Por rellenar más cositas jejejej.

2026/mayo/13

  • Estadísticas de conciertos:
    • Estoy lanzando React Doctor como un campeón, ahora que ha lanzado su slogan «Tu IA escribe React como el culo. Yo te ayudo.»… Me siento mal porque había poca IA cuando yo hice esto y me dice que mi código es de novato. Nah, es normal. Esto son pruebas y arreglos hasta conseguirlo.
    • Mejoras en la app:
      • Eliminar fetch dentro de useEffect y meterle @tanstack/query para manejar bien las peticiones.
      • Cambiar varias funciones encadenadas por .reduce(), entre otros.
      • Extraer una función que se renderizaba en línea en un componente aparte.
      • Evitar re-renderizados de los useMemo con valores por defecto.
      • Cambiar múltiples useState por useReducer
      • Evitar 4 llamadas de setState en un solo useEffect.
      • Encontramos los errores que aparecían 0 por la cara. Y es que hay veces que, sin querer, uso los comparadores de React y compara, pero imprime cero porque está creado y vacío. Por eso se imprime el cero. Cambiándolo por un ternario o por una comprobación de ‘> 0’, se soluciona.

2026/mayo/12

  • Mis discos:
    • He recapacitado y deshabilitado los filtros hasta que se usen. Así, la app cargará casi instantáneamente. Al menos, los discos iniciales.

2026/mayo/10

  • General:
    • Iconos:
      • Después de añadir que si son nuevas, que si se han editado hace poco… pues algo he programado mal, la verdad.
      • Se hacían más de 111 peticiones en el escritorio para analizar todo. Esto era un problema exponencial según se añadían más iconos.
      • El problema es que solicitaba los iconos y empezaba a construir el HTML. Entre medias, seguía haciendo queries para diferentes opciones del icono.
      • Se ha reducido todo en una sola petición y serializar las opciones. Una vez serializadas, se trabaja desde ahí. Cuando ya está cacheado, ya no tiene que hacer tantas consultas.
      • Con este cambio se han reducido de 111 queries a solo 4 cuando la caché está caliente y solo 25 cuando no.