5 Punkte von GN⁺ 2025-05-02 | 1 Kommentare | Auf WhatsApp teilen
  • Der Autor hat alle Daten von Hacker News heruntergeladen und mit DuckDB analysiert
  • Alle Items im Umfang von 20 GB (Stories + Kommentare) wurden als JSON-Dateien gespeichert, so dass auch künftige Updates möglich sind
  • Mit DuckDB wurde eine wöchentliche Zeitreihenanalyse des Erwähnungsanteils von Begriffen wie „Python“, „JavaScript“, „Ruby“ und „Rust“ durchgeführt
  • Für das Schreiben von SQL wurde ein LLM genutzt, sodass auch Einsteiger komplexe Analysen leicht durchführen konnten
  • Das Projekt ist auf der öffentlichen Website hn.unlurker.com einsehbar, und jeder kann diese Daten als Grundlage für eigene Analysen weiterverwenden

Die kompletten Hacker-News-Daten abgreifen

  • Beim Erstellen von hn.unlurker.com entwickelte der Autor einen eigenen HN-API-Client in Go; begonnen hat es als persönliches Projekt mit modernen Go-Funktionen und Linter
  • Ein scan-Befehl wurde implementiert, um alle Hacker-News-Items (Stories und Kommentare aus der HN API) ab 0 der Reihe nach vollständig herunterzuladen
  • Der Download wurde zwar mehrfach unterbrochen, doch dank einer wiederaufnehmbaren Struktur konnten in wenigen Stunden rund 20 GiB JSON-Dateien gesichert werden

Text-Zeitreihenanalyse mit DuckDB

  • Während zunächst mit grep einfache Muster durchsucht wurden, wurde anschließend DuckDB als Analyse-Tool ausprobiert, eine schnelle Datenbank, die für kleine Analysen mit einzelnen Dateien optimiert ist
  • Die JSON-Dateien wurden als Tabellen eingelesen, und der Anteil der in den Item-Texten erwähnten Sprachen wurde wochenweise berechnet
  • Es wurde SQL geschrieben, um die Anteile mit Python-, JavaScript-, Java-, Ruby- und Rust-Schlüsselwörtern als 12-Wochen-Gleitdurchschnitt zu visualisieren
  • Dank der neuen UI von DuckDB war die Nutzung einfach, und mit Hilfe eines LLM ließ sich auch SQL leicht schreiben

Ergebnisse und nächste Pläne

  • DuckDB bietet für Datenanalysen in dieser Größenordnung hervorragende Leistung und Benutzerfreundlichkeit
  • Nach Abschluss der Datensammlung erwähnte der Autor halb im Scherz, halb im Ernst, er werde „Hunderte LLM-basierte Bots trainieren und damit Hacker News ersetzen
  • Das eigentliche Ziel der Datensammlung und Analyse wurde jedoch erreicht, und das Projekt endet hier
  • Für die weitere Analyse sei es nun an anderen, auf Basis dieser Daten neue Erkenntnisse zu gewinnen

Weiterführende Links

1 Kommentare

 
GN⁺ 2025-05-02
Hacker-News-Kommentare
  • Es gibt zwei DBs, die die Hacker-News-Tabellen aktualisieren, sodass man sie ohne Download analysieren kann

    • BigQuery erfordert ein Google-Cloud-Konto, und die Abfragen dürften im kostenlosen Tarif liegen
    • ClickHouse kann direkt im Browser ohne Anmeldung abgefragt werden
  • Ich habe in der Vergangenheit etwas Ähnliches für die Twitter-/Bluesky-Konten von @fesshole gemacht

    • Ich habe das gesamte Archiv heruntergeladen und ein Modell feinabgestimmt, um geistreichere Beichten zu erzeugen
    • Am Ende wurde mir aber klar, dass ich einer unschuldigen Maschine Unangemessenes beigebracht hatte
  • Ich hatte eine 20-GiB-JSON-Datei mit sämtlichen Inhalten von Hacker News

    • Ich war überrascht, dass es trotz der rein textbasierten Website so viel war
    • In 18 Jahren wurden mehr als 20 Milliarden Byte Text gepostet
  • Abfragen nach Java enthalten alle Vorkommen von JavaScript, wodurch Java überrepräsentiert ist

  • Ich frage mich, was die Netiquette beim Herunterladen von Hacker News ist

    • Sollte man Dang fragen, bevor man die Server belastet, oder einfach annehmen, dass große Tech-Unternehmen das ohnehin schon mehrfach getan haben?
  • Es wird vorhergesagt, dass viele APIs künftig eine Option anbieten werden, duckdb-Dateien zurückzugeben

    • Wenn man JSON ohnehin in eine Datenbank lädt, ist es effizienter, gleich die Datenbank als Antwort zu erhalten
  • Ich habe etwas Ähnliches gemacht

    • Ich habe den BigQuery-Datensatz verwendet, die Daten als parquet exportiert, heruntergeladen und dann mit duckdb abgefragt
  • Nachdem man alle Hacker-News-Inhalte lokal heruntergeladen hat, könnte man einen LLM-basierten Bot trainieren und als Mitwirkenden betreiben

    • Das war als Witz gemeint, aber ich fürchte, dass es irgendwann jemand versuchen wird
  • Die Bitte, keine kumulativen Diagramme zu verwenden

    • Sie verzerren mit hoher Wahrscheinlichkeit die Wahrnehmung der Leser
    • Es ist schwer, die Höhe einzelner Datenpunkte zu beurteilen, und sie können Abhängigkeiten suggerieren
  • Ich habe früher einen Hacker-News-Datendump erstellt

    • Da neuere Einträge im Laufe der Zeit stärker aktualisiert werden, wäre es gut, eine Funktion zu haben, durch die kürzlich heruntergeladene Einträge älter wirken als tatsächlich ältere Einträge