1 puntos por GN⁺ 2025-05-30 | Aún no hay comentarios. | Compartir por WhatsApp
  • Compiler Explorer ha ido cambiando su forma de almacenamiento desde 2012 para que los enlaces compartidos sigan funcionando durante mucho tiempo, pero el cierre de goo.gl hace urgente preservar los antiguos enlaces godbolt.org/g/abc123
  • Al principio guardaba todo el estado del compilador dentro de la URL; en 2014 añadió el servicio de acortamiento de URL de Google y, en 2016, tras la prohibición de URL acortadas en Stack Overflow, creó enlaces puente como godbolt.org/g/abc123
  • Desde 2018, cuando los límites de longitud de las URL se volvieron un problema mayor, pasó a guardar el estado como documentos JSON en S3 y a gestionar el mapeo entre hashes cortos y rutas completas con DynamoDB
  • Cuando Google desactive los enlaces de goo.gl en agosto de 2025, será difícil resolver los enlaces antiguos basados en goo.gl, así que están reuniendo en su propia base de datos unos 12,000 enlaces g encontrados en la web pública y en registros
  • Si alguien que tiene enlaces viejos de Compiler Explorer los visita ahora, es posible que entren en la lista de preservación; el conocimiento compartido que debe durar mucho tiempo es más seguro cuando se posee directamente la infraestructura clave

Cambios en la forma de guardar enlaces en Compiler Explorer

  • En 2012, Compiler Explorer guardaba todo su estado dentro de la URL
  • Codificar todo el estado del compilador en la URL hacía que esta se volviera muy larga y difícil de manejar, así que en marzo de 2014 se añadió soporte para las URL cortas de goo.gl
  • En ese momento, los enlaces cortos tenían la forma goo.gl/abc123 y, al hacer clic, redirigían a la URL completa de Compiler Explorer, donde luego se decodificaba el estado contenido en la URL

Enlaces puente tras la prohibición de Stack Overflow

  • En 2016, Stack Overflow prohibió los servicios de acortamiento de enlaces porque podían ocultar el destino real
  • Esta medida también afectó a los enlaces de Compiler Explorer, y en ese momento no había intención de almacenar directamente los datos de los usuarios
  • La solución alternativa fue seguir usando goo.gl, pero mostrar a los usuarios enlaces con formato godbolt.org/g/abc123
    • abc123 era el ID único de goo.gl
    • Al entrar a /g/abc123, se redirigía a goo.gl/abc123
    • Luego goo.gl volvía a redirigir a la URL completa de godbolt.org que contenía el estado
  • Más adelante se empezó a usar la API de Google para evitar esas cadenas de redirección de varios pasos

Cambio al almacenamiento propio en 2018

  • En 2018, el límite de longitud de las URL se convirtió en un problema aún mayor, y además ya se estaban comprimiendo los datos dentro de la URL
  • Compiler Explorer cambió a una estructura donde guarda el estado directamente
    • Hace hash de la entrada
    • Guarda el estado como documentos JSON en S3
    • Ofrece una forma corta del hash en URLs como godbolt.org/z/hashbit
    • Usa DynamoDB para guardar el mapeo entre el hash corto y la ruta completa
  • También revisa si el hash corto del enlace contiene palabras ofensivas
    • Si aparece una palabra ofensiva, añade información adicional al documento de forma intencional para generar un hash distinto
    • Ese comportamiento terminó derivando en el bug #1297

El problema de preservación causado por el cierre de goo.gl

  • Compiler Explorer todavía soporta enlaces godbolt.org/g/abc123
  • Google dijo que los enlaces existentes seguirían redirigiendo a su destino previsto, pero goo.gl pasó a ser de solo lectura hace años y su cierre definitivo está previsto para agosto de 2025
  • Después de ese cierre, ya no será posible resolver enlaces basados en goo.gl
  • Los enlaces goo.gl propiamente dichos no pueden resolverse del lado de Compiler Explorer, pero los enlaces godbolt.org/g/abc123 sí pueden preservarse en una base de datos propia

Recolección de enlaces existentes y base de datos propia

  • Durante los últimos días han estado reuniendo enlaces existentes y sus URL de destino desde varias fuentes públicas
  • Hasta ahora han encontrado alrededor de 12,000 enlaces
    • API de búsqueda web de Google
    • API de GitHub
    • Registros web propios
    • Volcado de datos de Stack Overflow en archive.org
    • Listado de páginas web archivadas por Archive.org
  • Internamente ya hicieron un cambio para priorizar su propia base de datos por encima de goo.gl
  • También están vigilando nuevos enlaces g que aún no están en la base de datos
  • En local usan una base de datos sqlite, y en producción usan Dynamo

Cómo pueden ayudar los usuarios

  • Si tienes guardados enlaces antiguos godbolt.org/g/abc123, ayuda visitarlos ahora
  • Al visitar un enlace, queda registrado en los logs web y luego podría añadirse a la base de datos
  • Si no se hace, ese enlace podría dejar de funcionar después de agosto de 2025
  • Este caso muestra el riesgo de depender de servicios de terceros para infraestructura importante
  • Para cumplir la promesa de una “URL que dure para siempre”, hace falta ser dueño de todo el stack

Aún no hay comentarios.

Aún no hay comentarios.