Ir al contenido

Blog ·

Cuando el título no puede ser el encabezado

Una regla que iguala el título de un artículo con su encabezado choca con un límite de sesenta caracteres. Cinco idiomas necesitaron el patrón que ya existía.

Por Provibr

Uno de nuestros artículos lleva en el título una palabra que importa: vulnerabilidad. Es un texto sobre un escáner que envía cero bytes, y sin esa palabra el título describe otra cosa.

En cinco de los nueve idiomas la palabra había desaparecido. No del cuerpo, sino del título y por tanto de la pestaña del navegador, del resultado de búsqueda y de la vista previa en redes. La tarea era devolverla en los nueve.

Resultó ser imposible en la forma en que estaba escrita, y la parte interesante es por qué.

Dos reglas que no pueden cumplirse a la vez

La instrucción era: el título, el título social y el encabezado son una sola cadena. Decir lo mismo en los tres sitios. Es una buena regla y es la regla que dejamos por escrito después de que un lector encontrara un enlace que prometía una cosa y una página que afirmaba otra.

La otra regla es una banda de longitud. El título de página renderizado tiene que quedar entre veinte y sesenta caracteres, sufijo incluido, porque eso es lo que cabe antes de que un resultado de búsqueda lo corte. Esa banda no es una preferencia: el corpus entero de 850 ficheros generados quedaba dentro de ella, sin nada fuera.

Al devolver la palabra que faltaba, el encabezado completo queda en 68 caracteres en neerlandés e italiano, 70 en portugués, 71 en español y francés, y 75 en rumano. El inglés y el alemán caen en exactamente 60, que es una coincidencia digna de notarse: los dos idiomas en los que el encabezado honesto resulta caber son también los dos en los que la regla parece funcionar.

Así que una de las dos reglas tenía que ceder, y ninguna es opcional. El encabezado tiene que nombrar el asunto y el título tiene que caber.

El patrón ya estaba en la casa

La solución no se inventó para esto. De los 850 artículos generados, 197 ya tenían un título distinto del encabezado. Es algo normal en un artículo: el encabezado es una frase y el título es una etiqueta.

El francés ya lo hacía en este mismo artículo. Su título se lee como una etiqueta con dos puntos, y su encabezado como una pregunta que el cuerpo responde. Nadie lo había anotado como decisión: era sencillamente lo que alguien escribió cuando la frase no cabía.

Así que el arreglo es que cinco títulos adoptan la forma que casi un cuarto del corpus y uno de los nueve idiomas ya usaban, y los encabezados cargan con la frase completa. La palabra está presente en el título, en el título social y en el encabezado, y no tiene por qué ser la misma cadena en los tres para ser la misma afirmación.

La regla sobrevive, pero hay que reformularla: lo que tiene que cumplirse es que quien llega desde un enlace reconozca la página. La igualdad byte a byte era una manera cómoda de imponer eso en los idiomas en los que resultaba posible.

Por qué la guarda existente no podía haber encontrado esto

Acabábamos de construir una guarda exactamente para esta familia de problemas: un texto de enlace que nombra un artículo de forma distinta al título del propio artículo. Aquí estaba en verde, y estaba en verde por una razón estructural y no por suerte.

Esto es un defecto de título. Los títulos habían perdido una palabra, y los textos de enlace que apuntaban a ellos se habían acortado para coincidir durante la ronda que construyó la guarda. Los dos lados estaban de acuerdo. Una comparación entre dos cosas que se cambiaron juntas no puede ver que las dos están mal.

Lo que sí lo encontró fue el control de versiones. El commit que reparó los textos de enlace mostraba que tres de ellos se habían acortado, en neerlandés, italiano y portugués. El informe solo mencionaba dos. Leer una diferencia en lugar de un resumen es lo que convirtió una tarea de dos elementos en la forma real del problema.

Una guarda que limpió detrás de nosotros

Al final de todo esto hay una secuencia pequeña que merece dejarse por escrito, porque es la guarda comportándose mejor que las personas que la usan.

Después de cambiar los títulos, la guarda de nombres de enlace se disparó una vez, sobre un enlace neerlandés a otro artículo. Aquello parecía daño colateral y se anotó una excepción para él, con su motivo.

Después los títulos se ajustaron de nuevo para meterlos dentro de la banda de longitud, y el hallazgo desapareció. La excepción estaba ahora muerta: una línea de una lista de permitidos que no coincide con nada.

En esa guarda hay una prueba cuyo único trabajo es fallar cuando una excepción no se alcanza nunca. Falló, y la línea salió. La diferencia final contra el directorio de la guarda está vacía, que es la afirmación más fuerte disponible: la reparación no exigió cambio alguno en las reglas.

Una lista de permitidos que solo crece es un documento de todo aquello en lo que alguien se rindió alguna vez. Una lista de permitidos que retira sus propias entradas muertas es una lista que todavía se puede leer dentro de un año.

Cosas pequeñas aprendidas de pasada

Los dos puntos en un título son una forma, no una decisión que se midiera. Se leen como una etiqueta y no como una frase, acortan bien, y el francés ya los había elegido. Eso queda por escrito como una elección hecha sobre la forma, porque fingir que salió de una medición sería deshonesto acerca de qué partes de esto se midieron y cuáles fueron gusto.

Una banda de longitud es una restricción por idioma aunque parezca global. La misma frase es ocho caracteres más larga en un idioma y quince en otro, y cualquier regla enunciada como «la misma cadena en todas partes» se romperá primero en el idioma que sea más extenso. Aquí ese idioma suele ser el rumano.

Y una tarea escrita como una instrucción de dos líneas puede contener un conflicto que solo aparece al intentar satisfacer las dos mitades. La respuesta correcta no es satisfacer la mitad que es más fácil de comprobar.

Lo que dejaríamos por escrito

  1. Cuando dos reglas chocan, ninguna de las dos está equivocada. Averigüe cuál es la garantía y cuál era la manera cómoda de imponerla.
  2. La igualdad byte a byte es un sustituto de la reconocibilidad. Enuncie lo que de verdad se quiere.
  3. Busque el patrón en el corpus antes de inventar uno. El nuestro ya estaba en 197 de 850 ficheros.
  4. Que un idioma ya lo haga es evidencia, aunque nadie lo dejara por escrito como decisión.
  5. Una guarda no puede ver un defecto donde los dos lados se cambiaron juntos. El acuerdo no es corrección.
  6. Lea el commit, no el resumen. La diferencia tenía tres entradas donde el informe tenía dos.
  7. Una prueba que falla ante una entrada muerta de la lista de permitidos limpia detrás de uno. La nuestra retiró una excepción que acabábamos de añadir.
  8. Una diferencia vacía contra sus reglas es el resultado más fuerte de una reparación. Significa que las reglas eran correctas.
  9. Los límites de longitud son por idioma. La misma frase es quince caracteres más larga en algún sitio.
  10. Diga qué decisiones se midieron y cuáles fueron de forma. Mezclarlas les cuesta la credibilidad a las que sí se midieron.

Para que quede claro qué es esto: la construcción de contenido produjo 850 artículos sin ningún aviso donde antes producía cinco, la comprobación de contenido dio 851 de 851 ficheros generados idénticos byte a byte, el conjunto de pruebas web 4594 en verde, la comprobación de tipos limpia, el analizador de estilo sin errores, el barrido de bytes sobre los 25 ficheros tocados sin cambios en ningún recuento, la diferencia en exactamente 174 líneas dentro y 174 fuera, el barrido de disposición 27 de 27 a 390 píxeles sobre el artículo en nueve idiomas, el índice del blog 54 de 54 y seis artículos ucranianos 18 de 18 contra una construcción de producción. Sin demostrar: sigue habiendo un lector por idioma, y la elección de la forma con dos puntos es una decisión sobre la forma y no una medición.

Del trabajo de plataforma en Provibr. De dónde salió la regla sobre títulos y enlaces está en tres fallos que ningún script podía ver, y cómo la guarda que la impone distingue un acortamiento de una sustitución está en dos nombres para el mismo artículo.

Empiece con un host y un agente

Cree una cuenta, instale el agente con un solo comando y conecte su primer host de Proxmox. El periodo de prueba dura 14 días y no pide ningún dato de pago.