3 points par GN⁺ 2024-12-07 | 2 commentaires | Partager sur WhatsApp
  • everyuuid.com est une page simple présentée sous forme de liste, qui affiche côte à côte un index numérique et une chaîne UUID
  • Chaque entrée se compose d’un nombre long avec des zéros de remplissage et de l’index, puis d’un UUID avec tirets sur la ligne suivante
  • La chaîne UUID suit le format UUID V4, dont le troisième groupe commence par 4, avec des valeurs affichées comme 497dcba3-ecbf-4587-a2dd-5eb0665e6880
  • Le contenu ne fournit aucune explication sur le mode de génération, l’usage, l’API ou le code, et se rapproche davantage d’une consultation directe de la liste elle-même
  • La plage vérifiée va de 0 à 49, et l’essentiel des informations de la page se concentre sur le titre et la liste des UUID

Structure affichant côte à côte des nombres et des UUID

  • Le titre est Every UUID V4
  • Le corps de la page est composé d’une liste répétant des éléments numériques et des chaînes UUID
  • La plage résumée va de 0 à 49

Façon dont les éléments sont affichés

  • Chaque élément suit une structure sur deux lignes
    • Première ligne : une longue chaîne de 0 suivie du numéro d’index
    • Deuxième ligne : une chaîne UUID séparée par des tirets
  • Voici les premiers exemples
    • 000000000000000000000000000000000000 0
    • 497dcba3-ecbf-4587-a2dd-5eb0665e6880
  • Le dernier élément fourni est le suivant
    • 00000000000000000000000000000000000 49
    • 08716598-71f7-4e8b-9fff-e36d2c5d21fe

Une page plus proche d’une liste de données que d’une explication

  • Les chaînes UUID utilisent le format d’écriture UUID avec des tirets
  • Aucune explication n’est donnée sur le principe de génération des UUID, le critère de tri, l’étendue complète, la fonction de recherche, la licence ou la méthode d’implémentation
  • Seule une liste de données est fournie, sans explication technique ni guide d’utilisation

2 commentaires

 
nemorize 2024-12-13

La phrase la plus offensante que j’aie pu trouver en leetspeak/hexspeak est celle-ci :
fe11a710-babe-4150-ace5-b19b1accd1cc
(Oui, c’est un UUID valide)
(Je suis vraiment désolé)

oh... 👀

 
GN⁺ 2024-12-07
Commentaires sur Hacker News
  • Le plus impressionnant, c’est que la recherche fonctionne réellement. Comme pour tout grand tour de magie, une fois l’explication donnée, cela paraît presque très simple
    Pour celles et ceux qui sont curieux, voici un billet expliquant le fonctionnement du projet : https://eieio.games/blog/writing-down-every-uuid/
    Au début, je n’ai essayé de chercher que des UUID exacts, puis j’ai été encore plus surpris en découvrant que cela prenait aussi en charge la recherche en texte intégral

    • Ravi que l’astuce ait donné une impression de magie. Quand j’ai compris que c’était possible, j’ai moi aussi été surpris et enthousiaste, sans savoir si d’autres ressentiraient la même chose
      Bien sûr, je suis aussi fier du fait que cela offre autant d’utilité pratique. On peut enfin trouver et utiliser l’UUID qui convient exactement à son besoin
    • C’est un bon exemple de l’observation de Teller : « la magie, c’est parfois simplement quelqu’un qui a passé beaucoup plus de temps sur quelque chose que ce qu’on pourrait raisonnablement attendre »
    • L’explication de la recherche en texte intégral était un peu plus maligne que ce à quoi je m’attendais au départ. Au début, je pensais qu’elle générait des UUID jusqu’à en trouver un qui corresponde à la direction de recherche des boutons suivant/précédent, mais en réalité elle produit plusieurs résultats possibles avant de choisir le meilleur
      J’en ai déduit cela en voyant qu’un résultat différent apparaissait chaque fois qu’on avançait ou reculait dans les résultats ; je me demande combien elle en génère réellement
    • La recherche en texte intégral est un peu déroutante, car au début elle donne l’impression de parcourir les résultats dans l’ordre, alors qu’en réalité ce n’est pas le cas. Si on appuie plusieurs fois sur « next » puis le même nombre de fois sur « prev », on ne revient pas forcément à l’UUID d’origine
      Cela reste quand même une astuce assez géniale
    • La méthode de recherche ressemble beaucoup à une approche classique pour créer un correcteur orthographique naïf. À partir d’une entrée, on génère toutes les correspondances possibles susceptibles de la contenir
      Au lieu de chercher dans un corpus, on utilise l’entrée pour générer l’index du corpus. Ici, c’est la liste des UUID ; pour un correcteur orthographique, ce serait la liste des mots du dictionnaire
  • On dirait qu’un hacker a divulgué tous les UUID
    Je vais devoir vérifier si mon UUID figure dans la fuite

    • La plus grosse attaque depuis la fuite de tous les codes PIN d’ATM : https://pastebin.com/SmJRB8eQ
    • Si je signale ça à l’équipe sécurité, ils vont sûrement se jeter dessus immédiatement
    • J’attends avec impatience le service « havemyuuidsbeenpwned.com »
    • 10b82756-f8b4-4fee-a508-adeadbeef5eb
      Bon, eh bien, il est temps de formater
    • Vu l’état actuel du travail dans mon entreprise, je n’ai absolument pas le temps d’atténuer cette fuite côté sécurité des données personnelles. J’abandonne officiellement
  • Très utile. Si j’oublie un UUID, j’irai le consulter. J’utilise aussi toujours ce site pour me souvenir de mes clés privées Bitcoin : https://privatekeys.pw/keys/bitcoin/1

    • Clé aléatoire : solde à 0
      Vraie clé : solde désormais à 0
    • Je ne savais pas que des gens créaient des clés BTC faibles pour s’amuser. On dirait que certaines servent aussi de pièges pour appâter les bots
    • Il y aura sûrement aussi des gens qui chercheront de vraies clés privées et les divulgueront potentiellement
    • Voir aussi : https://keys.lol/
  • Parfois, quand je génère un UUID et que je ne l’utilise nulle part, je me sens un peu coupable. J’ai l’impression de l’avoir gaspillé

    • Tu n’es pas le seul à ressentir ça : https://wasteaguid.info/
    • Les UUID sont suffisamment nombreux ; en ne les enregistrant nulle part, on préserve en fait une ressource plus rare
    • Et pour les UUID qui ne sont jamais générés et qui n’ont donc même pas la chance de naître, tu te sens coupable à quel point ?
    • Dans les données de clickstream de notre entreprise, il y a une colonne event_uuid, qui combine un UUID, un grand entier, un numéro de compte et une dizaine d’autres identifiants
      C’est très pratique pour faire des jointures quand on ne sait pas sur quelle colonne joindre
    • J’ai déjà utilisé SELECT TOP 1 ... ORDER BY NEWID() pour choisir un seul enregistrement dans une table de plusieurs millions de lignes
      Des millions d’UUID ont donc été générés, et l’un d’eux a été sélectionné par hasard comme la plus petite valeur, ce qui a renvoyé l’enregistrement associé. Quel gaspillage monumental
  • Le passage disant que « le navigateur ne voulait pas rendre une fenêtre plus haute qu’un billion de billions de pixels, donc il a fallu gérer nous-mêmes le défilement et le rendu » est amusant. En pratique, quand on essaie ce genre de chose, c’est assez décevant, et on n’approche même pas le billion de pixels
    Il y a cinq ans, quand je travaillais chez Fastmail, un client utilisant IE avait mis environ 200 000 e-mails dans sa boîte de réception, ce qui cassait la barre de défilement ; voici donc les limites que j’avais vérifiées à l’époque, et j’en ai revérifié quelques-unes à l’instant
    Firefox ignorait autrefois les déclarations interprétées comme supérieures à 17 895 697 pixels. Aujourd’hui, il les borne à ce niveau, mais avec un écart d’environ 3 pixels, donc il n’est pas immédiatement clair de savoir ce qui se passe exactement
    IE ignore les déclarations interprétées comme supérieures à 10 737 418.23 pixels. WebKit borne la valeur aux alentours de 2²⁵, soit environ 33 554 432 pixels
    Lors de mes anciens tests, Chromium se comportait comme WebKit, mais aujourd’hui il borne vers 22 360 882 pixels. J’utilise actuellement un écran avec un facteur d’échelle de 1,5, donc il est possible que 2²⁵ soit lié aux pixels physiques ; toutefois, je crois que j’utilisais un écran à l’échelle 2× lors de mes premiers tests
    J’avais aussi écrit un message plus détaillé avec des liens vers le code source concerné : https://news.ycombinator.com/item?id=34299569

    • Excellent. En écrivant l’article, j’ai essayé de trouver une liste relativement à jour des hauteurs maximales des navigateurs. Je me demandais si cela te dérangerait que je mette un lien vers ce commentaire dans une mise à jour
      Je suis aussi très curieux de savoir comment ces nombres sont déterminés, et ce qui commence à casser si la limite n’existe pas. Les comportements étranges autour de clientHeight en donnent peut-être un indice
    • Il existe une limite similaire pour la largeur des éléments. Je l’ai découvert récemment en essayant de définir une largeur à 45678910px : https://thewisenerd.com/works/45678910px.html
  • J’aimerais annoncer un nouveau package npm appelé get-uuid. En interne, il appelle everyuuid.com, choisit un numéro de ligne aléatoire et renvoie cet UUID

    • Excellente idée. Je vais moi aussi créer un package npm qui utilise ce package et renvoie un GUID après avoir supprimé les - entre les chiffres. Vive la réutilisation du code
    • J’aimerais que la compatibilité API de la bibliothèque ne soit rompue que 5 fois par mois. Au-delà, ce serait vraiment trop
      Et j’attends aussi avec impatience le jour où je me rendrai compte que ton package ne fait pas exactement ce que je veux et où je le forkerai
    • Ce serait encore mieux si une IA pouvait choisir les UUID les plus esthétiques. Je peux envoyer une PR si tu veux
    • Tu pourrais aussi ajouter une fonction pour vérifier si un UUID existe ?
  • Ça me fait penser à https://libraryofbabel.info/. Le site semble hors ligne maintenant, mais on peut essayer l’Archive : https://web.archive.org/web/20241112121646/https://libraryof...
    C’est une implémentation amusante inspirée de la nouvelle https://en.wikipedia.org/wiki/The_Library_of_Babel, et elle prétend « contenir toutes les pages possibles de 3 200 caractères ». En revanche, le jeu de caractères est limité et ne contient pas de tirets, donc on ne peut pas y trouver ces UUID

    • Il existe aussi une variation intitulée A Short Stay in Hell (2009) de Steven L. Peck
      Une lecture à la fois amusante et terrifiante si l’on comprend l’ampleur de très, très grands nombres
  • Je pensais que ce serait une liste de tous les domaines .com correspondant à des UUID valides. Je me demande combien il pourrait réellement y en avoir
    Mise à jour : déjà partagé dans un autre commentaire : https://news.ycombinator.com/item?id=42342653

  • Les techniques de compression ont tellement progressé qu’on peut désormais parcourir une page web de plus de 340 undécillions d’octets
    Nous vivons vraiment une époque extraordinaire

    • C’est presque certainement un nouveau record absolu au score de Weissman
    • Franchement, rien d’impressionnant. Il y a des années déjà, mes boulangeries dans Cookie Clicker produisaient des quantités en undécillions sans le moindre problème
  • Je suis étonné de voir un site web qui contient d’un seul coup plus d’un écran de contenu sans afficher une animation de chargement de plusieurs secondes quand on fait défiler
    Je me demande si les développeurs d’applications web modernes pourraient exploiter cette technologie d’une manière ou d’une autre

    • Tout à fait d’accord. Ma première réaction a aussi été : « Waouh, c’est rapide, fluide et réactif ! »
      Le matériel informatique est 1 000 fois plus rapide qu’en 1995, il y a 30 ans, mais les logiciels ont tellement gonflé qu’ils restent malgré tout plus lents, ce qui est absurde
      Vidéo connexe : « Will Software Stop Getting Slower? » Jonathan Blow
      https://www.youtube.com/watch?v=4ka549NNdDk