3 Punkte von GN⁺ 2024-12-07 | 2 Kommentare | Auf WhatsApp teilen
  • everyuuid.com ist eine einfache Listen-Seite, die numerische Indizes und UUID-Strings nebeneinander anzeigt
  • Jeder Eintrag besteht aus einer langen mit 0 aufgefüllten Zahl und einem Index sowie in der nächsten Zeile einer UUID mit Bindestrichen
  • Die UUID-Strings folgen dem V4-UUID-Format, bei dem die dritte Gruppe mit 4 beginnt; angezeigt werden Werte wie 497dcba3-ecbf-4587-a2dd-5eb0665e6880
  • Im Hauptteil gibt es keine Erklärung zu Erzeugungsmethode, Verwendung, API oder Code; die Seite ähnelt eher dem Durchblättern der Liste selbst
  • Der bestätigte Bereich reicht von 0 bis 49; die wesentlichen Informationen der Seite konzentrieren sich auf den Titel und die UUID-Liste

Aufbau mit Zahlen und UUIDs nebeneinander

  • Der Titel lautet Every UUID V4
  • Der Hauptteil besteht aus einer sich wiederholenden Liste aus Zahleneinträgen und UUID-Strings
  • Der zusammengefasste Bereich reicht von 0 bis 49

So werden die Einträge dargestellt

  • Jeder Eintrag hat eine Struktur aus zwei Zeilen
    • Erste Zeile: eine lange Zeichenfolge aus 0, an die die Indexzahl angehängt ist
    • Zweite Zeile: ein UUID-String, getrennt durch Bindestriche
  • Ein Beispiel vom Anfang sieht so aus
    • 000000000000000000000000000000000000 0
    • 497dcba3-ecbf-4587-a2dd-5eb0665e6880
  • Der zuletzt bereitgestellte Eintrag ist folgender
    • 00000000000000000000000000000000000 49
    • 08716598-71f7-4e8b-9fff-e36d2c5d21fe

Eine Seite, die eher eine Datenliste als eine Erklärung ist

  • Die UUID-Strings verwenden das UUID-Schreibformat mit Bindestrichen
  • Es gibt keine Erklärung zum Erzeugungsprinzip, Sortierkriterium, Gesamtbereich, zur Suchfunktion, Lizenz oder Implementierung
  • Es wird nur eine Datenliste ohne technische Erläuterung oder Nutzungshinweise bereitgestellt

2 Kommentare

 
nemorize 2024-12-13

Der anstößigste Satz, den ich mir mit Leetspeak/Hexspeak ausdenken konnte, ist dieser hier:
fe11a710-babe-4150-ace5-b19b1accd1cc
(Ja, das ist eine gültige UUID)
(Es tut mir so leid)

oh... 👀

 
GN⁺ 2024-12-07
Hacker-News-Kommentare
  • Am beeindruckendsten ist, dass die Suche tatsächlich funktioniert. Wie bei guter Magie wirkt es, nachdem man die Erklärung gehört hat, auch ganz simpel.
    Ein Artikel, der die Funktionsweise des Projekts für Interessierte erklärt: https://eieio.games/blog/writing-down-every-uuid/
    Anfangs habe ich nur nach exakten UUIDs gesucht, aber noch überraschter war ich, als ich merkte, dass sogar Volltextsuche unterstützt wird.

    • Es freut mich wirklich, dass sich der Trick wie Magie angefühlt hat. Als ich begriff, dass das möglich ist, war ich selbst überrascht und begeistert, war mir aber nicht sicher, ob andere dasselbe empfinden würden.
      Natürlich bin ich auch stolz darauf, dass es so viel praktischen Nutzen bietet. Endlich kann man genau die UUID finden und verwenden, die man braucht.
    • Ein gutes Beispiel für Tellers Beobachtung: „Magie ist manchmal einfach nur, dass jemand für etwas viel mehr Zeit aufwendet, als man vernünftigerweise erwarten würde.“
    • Die Erklärung der Volltextsuche war etwas cleverer, als ich zunächst erwartet hatte. Ich dachte zuerst, es würden so lange UUIDs erzeugt, bis eine auftaucht, die zur Suchrichtung des Next-/Previous-Buttons passt; tatsächlich werden aber mehrere mögliche Ergebnisse erzeugt und daraus das beste ausgewählt.
      Darauf kam ich, weil beim Vor- und Zurückgehen durch die Suchergebnisse jedes Mal andere Resultate erscheinen; ich frage mich, wie viele tatsächlich generiert werden.
    • Die Volltextsuche wirkt zunächst, als würde sie der Reihe nach suchen, tut das aber tatsächlich nicht, was etwas verwirrend ist. Wenn man ein paarmal auf „next“ klickt und dann genauso oft auf „prev“, landet man nicht unbedingt wieder bei der ursprünglichen UUID.
      Trotzdem wirkt es wie ein ziemlich cooler Trick.
    • Die Suchmethode ähnelt sehr einem gängigen Ansatz zum Bau einer naiven Rechtschreibprüfung: Für eine gegebene Eingabe werden alle möglichen Treffer erzeugt, in denen diese Eingabe vorkommen könnte.
      Man sucht also nicht in einem Korpus, sondern erzeugt mit der Eingabe einen Index des Korpus. Hier ist das die UUID-Liste, bei einer Rechtschreibprüfung die Wortliste des Wörterbuchs.
  • Sieht so aus, als hätte irgendein Hacker alle UUIDs geleakt.
    Ich sollte prüfen, ob meine UUID in der Leak-Liste enthalten ist.

    • Der größte Hack seit dem Leak aller Geldautomaten-PINs: https://pastebin.com/SmJRB8eQ
    • Wenn man das der Security-Abteilung meldet, stürzen die sich bestimmt sofort darauf.
    • Ich freue mich schon auf den Dienst „havemyuuidsbeenpwned.com“.
    • 10b82756-f8b4-4fee-a508-adeadbeef5eb
      Hilft nichts, jetzt ist Zeit zum Formatieren.
    • Bei der Arbeit in meinem Unternehmen sieht es gerade so aus, dass ich absolut keine Zeit habe, diesen Leak für die Sicherheit personenbezogener Daten abzumildern. Ich gebe offiziell auf.
  • Sehr nützlich. Wenn ich eine UUID vergesse, werde ich dort nachschlagen. Diese Seite nutze ich auch ständig, wenn ich mir meinen Bitcoin-Private-Key merken will: https://privatekeys.pw/keys/bitcoin/1

    • Zufälliger Key: Kontostand 0
      Echter Key: Kontostand jetzt 0
    • Ich wusste nicht, dass Leute zum Spaß schwache BTC-Keys erstellen. Einige davon dürften auch als Köder für Bots dienen.
    • Es wird sicher auch Leute geben, die ihren echten Private Key suchen und ihn damit potenziell leaken.
    • Siehe auch: https://keys.lol/
  • Manchmal erzeuge ich eine UUID und verwende sie nirgends, und dann fühle ich mich irgendwie schuldig. Als hätte ich sie verschwendet.

    • Damit bist du nicht allein: https://wasteaguid.info/
    • Es gibt genug UUIDs; indem man sie nirgends aufschreibt, spart man im Grunde sogar eine knappere Ressource.
    • Wie schuldig fühlst du dich wegen der UUIDs, die nie geboren wurden, weil du sie gar nicht erst erzeugt hast?
    • In den Clickstream-Daten unserer Firma gibt es eine Spalte event_uuid, die aus einer UUID, einer großen Ganzzahl, einer Kontonummer und etwa zehn weiteren Identifikatoren zusammengesetzt ist.
      Wenn man nicht weiß, über welche Spalte man joinen soll, macht das Joins sehr bequem.
    • Ich habe früher einmal SELECT TOP 1 ... ORDER BY NEWID() verwendet, um einen einzelnen Datensatz aus einer Tabelle mit Millionen Einträgen auszuwählen.
      Dabei wurden Millionen UUIDs erzeugt, und eine davon hatte zufällig den niedrigsten Wert, sodass der zugehörige Datensatz zurückgegeben wurde. Was für eine enorme Verschwendung.
  • Der Teil „Browser wollen kein Fenster rendern, das höher als eine Billion mal eine Billion Pixel ist, also musste ich Scrollen und Rendering selbst übernehmen“ ist lustig. Wenn man so etwas tatsächlich ausprobiert, ist es ziemlich enttäuschend; man kommt nicht einmal annähernd in die Nähe von einer Billion Pixeln.
    Als ich vor fünf Jahren bei Fastmail arbeitete, hatte ein IE-Nutzer etwa 200.000 E-Mails in seinem Postfach, wodurch die Scrollbar kaputtging; die damals ermittelten Grenzen waren folgende, und ein paar davon habe ich gerade noch einmal überprüft.
    Firefox ignorierte früher Deklarationen, die als Werte größer als 17.895.697 Pixel interpretiert wurden. Heute clampen sie an diesem Punkt, aber es gibt eine Abweichung von etwa 3 Pixeln, sodass nicht sofort klar ist, was genau passiert.
    IE ignoriert Deklarationen, die als mindestens 10.737.418,23 Pixel interpretiert werden. WebKit clampen Werte ungefähr bei 2²⁵, also nahe 33.554.432 Pixeln.
    Chromium war bei meinem früheren Test genauso wie WebKit, clampen aber heute ungefähr bei 22.360.882 Pixeln. Mein aktuelles Display hat eine 1,5-fache Skalierung, daher könnte 2²⁵ mit Gerätepixeln zusammenhängen; beim ersten Test hatte ich aber, glaube ich, ein Display mit 2-facher Skalierung.
    Ich habe auch einen ausführlicheren Beitrag mit Links zum entsprechenden Source Code geschrieben: https://news.ycombinator.com/item?id=34299569

    • Das gefällt mir. Beim Schreiben des Artikels habe ich versucht, eine halbwegs aktuelle Liste der maximalen Browser-Höhen zu finden. Ich frage mich, ob ich diesen Kommentar in einem Update verlinken darf.
      Außerdem interessiert mich sehr, wie diese Zahlen festgelegt wurden und was ohne Begrenzung zu brechen beginnt. Die merkwürdigen Verhaltensweisen rund um clientHeight könnten ein Hinweis darauf sein.
    • Für die Breite von Elementen gibt es ähnliche Grenzen. Das habe ich kürzlich herausgefunden, als ich die Breite auf 45678910px setzen wollte: https://thewisenerd.com/works/45678910px.html
  • Ich möchte ein neues npm-Paket namens get-uuid veröffentlichen. Intern ruft es everyuuid.com auf, wählt eine zufällige Zeilennummer aus und gibt diese UUID zurück.

    • Großartige Idee. Ich werde auch ein npm-Paket bauen, das dieses Paket verwendet und eine GUID zurückgibt, bei der die - zwischen den Zahlen entfernt wurden. Hoch lebe Code-Wiederverwendung.
    • Es wäre schön, wenn die API-Kompatibilität der Bibliothek höchstens 5-mal im Monat gebrochen würde. Mehr wäre zu viel.
      Und freu dich schon auf den Tag, an dem ich merke, dass dein Paket nicht genau das tut, was ich will, und es forke.
    • Noch besser wäre es, wenn eine KI ästhetisch ansprechende UUIDs auswählt. Wenn du willst, kann ich einen PR schicken.
    • Kannst du auch eine Funktion hinzufügen, die prüft, ob eine UUID existiert?
  • Erinnert mich an https://libraryofbabel.info/. Sie scheint derzeit offline zu sein, also kann man es im Archive versuchen: https://web.archive.org/web/20241112121646/https://libraryof...
    Eine unterhaltsame Umsetzung, inspiriert von der Kurzgeschichte https://en.wikipedia.org/wiki/The_Library_of_Babel, die „alle derzeit möglichen Seiten mit 3200 Zeichen enthält“. Der Zeichensatz ist allerdings eingeschränkt und enthält keine Bindestriche, daher lassen sich diese UUIDs dort nicht finden.

    • Es gibt auch eine Variante von Steven L. Peck namens A Short Stay in Hell (2009).
      Wenn man sehr, sehr große Zahlen begreift, ist das eine unterhaltsame und beängstigende Lektüre.
  • Ich dachte, es wäre eine Liste aller .com-Domains, die gültige UUIDs sind. Jetzt frage ich mich, wie viele solche Domains es tatsächlich gibt.
    Update: In einem anderen Kommentar wurde das bereits geteilt: https://news.ycombinator.com/item?id=42342653

  • Kompressionstechniken sind so weit fortgeschritten, dass man jetzt eine Webseite mit mehr als 340 Undezillionen Byte durchsuchen kann.
    Wir leben wirklich in erstaunlichen Zeiten.

    • Das hat mit ziemlicher Sicherheit einen neuen Rekord beim Weissman Score aufgestellt.
    • Nicht der Rede wert. Vor ein paar Jahren haben meine Bäckereien in Cookie Clicker problemlos in Undezillionen-Größenordnungen produziert.
  • Erstaunlich: Eine Website, die mehr als eine Bildschirmseite Inhalt auf einmal enthält und beim Scrollen trotzdem keine mehrsekündige Ladeanimation zeigt.
    Ich frage mich, ob moderne Web-App-Entwickler diese Technik irgendwie nutzen können.

    • Stimme voll zu. Ich dachte auch sofort: „Wow, schnell, flüssig und reaktionsschnell!“
      Computerhardware ist 1000-mal schneller als 1995, also vor 30 Jahren, aber Software ist so aufgebläht geworden, dass sie immer noch langsamer ist. Das ist absurd.
      Zugehöriges Video: “Will Software Stop Getting Slower?” Jonathan Blow
      https://www.youtube.com/watch?v=4ka549NNdDk