Les données que nous avons cessé de collecter
Ce service enregistrait autrefois la résolution d'écran. Le script du navigateur lisait window.screen et l'envoyait sous la forme res=1920x1080, et la page de statistiques avait un encadré pour cela.
Ce n'est plus le cas. La table qui la contenait a zéro ligne aujourd'hui, et l'encadré affiche son état vide. La ligne du script où la lecture avait lieu est désormais un commentaire disant ce qui s'y trouvait.
Pourquoi elle est partie
La résolution d'écran est un bon signal d'identification — pas à elle seule, mais combinée au reste de ce que porte une requête. Ce service essaie de conserver le moins possible sur un visiteur, et un nombre décrivant son matériel ne s'amortissait pas. Personne n'avait jamais rien fait de cet encadré.
C'est la moitié facile de la décision. La moitié difficile était de la rendre vraie.
La couper dans le navigateur ne suffisait pas
Retirer la ligne du script empêche les nouvelles copies du script de l'envoyer. Cela ne change rien aux copies déjà dehors, et il y en a de deux sortes :
- Les navigateurs gardent le script sept jours. Pendant une semaine après tout changement, une part des visiteurs exécute la version précédente.
- Certaines pages de clients ne chargent pas du tout le script d'ici — elles intègrent une copie prise il y a des années, collée dans un gabarit et jamais retouchée depuis.
La seconde sorte n'a pas de date de péremption. Ces pages auraient continué d'envoyer res= indéfiniment, et le serveur aurait continué de le ranger, et le changement se serait lu comme achevé tout en étant faux précisément pour les visiteurs que personne ne regarde.
Alors le serveur a cessé de l'accepter aussi. Ça arrive, c'est ignoré, rien n'est écrit. C'est la moitié du changement qui tient vraiment.
La forme de l'erreur que cela évite
« Nous avons supprimé la collecte » est une affirmation sur du code. « Nous ne conservons plus cela » est une affirmation sur des données. Ce sont deux affirmations différentes, et sur le web la première n'entraîne pas la seconde, car votre code client tourne sur des machines que vous ne contrôlez pas, dans des versions que vous n'avez pas choisies, aussi longtemps que le cache ou le copier-coller de quelqu'un le maintient en vie.
Ce que vous coupez côté client, coupez-le aussi côté serveur. Le changement côté client empêche l'envoi. Le changement côté serveur rend l'affirmation vraie.
Les anciennes lignes sont encore là, en diminution, supprimées par lots par un petit outil écrit exactement pour cela. Quand il aura fini, l'encadré sera toujours vide, et ce sera enfin toute l'histoire plutôt que l'essentiel de celle-ci.