2 Punkte von GN⁺ 2024-11-17 | 1 Kommentare | Auf WhatsApp teilen
  • Die öffentlichen Daten von Bluesky sind inzwischen auf 15 Millionen Nutzer angewachsen, und mit Jetstream kann man alle Netzwerkereignisse in Echtzeit empfangen und damit experimentieren
  • Da es sich um eine Firehose in Form eines WebSocket-JSON-Feeds handelt, kann man sich auch im Browser verbinden; einfache Experimente mit Echtzeitdaten lassen sich kostenlos starten
  • Die Beispiel-App erkennt delete-Ereignisse und zeigt den Text gerade gelöschter Posts ein letztes Mal anonymisiert in einem verschwindenden Feed an
  • Die Produktionsumgebung besteht aus einer shared-cpu-1x 256MB RAM-Machine bei Fly.io und einem persistenten 2-GB-Volume; die Kosten betragen 1,94 $ bzw. 0,30 $ pro Monat
  • Es lässt sich nicht garantieren, dass alle Firehose-Apps so klein laufen, aber manche Echtzeit-Konsumenten-Apps können schon mit einer Minimalinstanz ausreichend betrieben werden

Die Bluesky-Firehose mit Jetstream empfangen

  • Bluesky-Daten sind sehr öffentlich; derzeit gibt es öffentliche Daten im Umfang von 15 Millionen Nutzern
  • Mit Jetstream kann man alles, was im Netzwerk passiert, als WebSocket-JSON-Feed in Echtzeit empfangen
  • Es ist auch möglich, sich direkt im Browser mit der Firehose zu verbinden und einfache Experimente durchzuführen, etwa zufällige Wörter aus aktuell veröffentlichten Beiträgen zu ziehen

Eine kleine App, die Löschereignisse zeigt

  • Die Experimentier-App deletions.bsky.bad-example.com lauscht auf alle delete-Ereignisse aus der Firehose und zeigt gerade gelöschte Texte anonymisiert in einem verschwindenden Feed an
  • Die App wurde erstellt, als das Bluesky-Netzwerk noch viel kleiner war; inzwischen ist die Netzwerkgeschwindigkeit deutlich höher und wirkt chaotischer
  • Sie läuft auf der kleinsten Instanz von Fly.io
    • Fly machine, shared-cpu-1x, 256MB RAM: 1,94 $ pro Monat
    • 2GB Persistent volume: 0,30 $ pro Monat
  • Der Ablauf besteht aus einem einfachen Cache und dem Abgleich von Löschereignissen
    • Sie empfängt alle neuen create-post-Ereignisse der Collection app.bsky.feed.post
    • Sie filtert leere Posts heraus und wendet auf Erwähnungen und Links eine Redaction an
    • Der bereinigte Text wird mit did+rkey als Schlüssel in pebbledb gespeichert
    • Alle paar Sekunden werden gespeicherte Texte, die älter als 48 Stunden sind, per Range Delete gelöscht
    • Wenn ein delete-post-Ereignis eintrifft, sucht sie den Text im Cache und sendet ihn, falls vorhanden, an die aktuellen Beobachter
  • Der Funktionsumfang ist klein, aber die App läuft stabil auf der Minimalinstanz von Fly.io; einige interessantere Apps könnten in ähnlicher Größenordnung betrieben werden

1 Kommentare

 
GN⁺ 2024-11-17
Hacker-News-Kommentare
  • Es gibt zwei Gründe, warum BlueSky großartig ist: Man kann den Benutzernamen als Domain der eigenen Website verwenden, also etwa @bradgessler.com, und auf iOS funktioniert das Kopieren und Einfügen von Bildern in Nachrichten gut.
    Bei X/Twitter war das schon seit Langem kaputt. Es gibt noch viele weitere Vorteile, aber diese beiden stechen für mich besonders hervor. Falls jemand einen Einstieg sucht: Ich habe auch ein Starter Pack für Ruby-Hacker erstellt: https://go.bsky.app/HXB2cPh
    Es gibt außerdem sehr viele andere Starter Packs und Communities

    • Wichtiger ist, dass man verifizieren muss, dass man die Domain besitzt. Mit google.com kann man sich also nicht anmelden
    • Dieselbe Logik gilt auch für X. Bei BlueSky wird die Domain-Verifizierung per DNS auf einen did:plc-Bezeichner gemappt, und die AppViews (bsky.app, die BlueSky-Smartphone-App usw.) fragen nur plc.directory ab, also die „Datenbank“ von BlueSky.
      Damit der Benutzername tatsächlich ein echter Domainname wäre, müsste BlueSky Identifikatoren vom Typ did:web unterstützen, was derzeit nicht der Fall ist. Letztlich ist es also genauso wie bei X, insofern der Benutzername auf eine interne Datenbank gemappt wird. BlueSky fühlt sich eher wie Twitter an, bevor Geld an Investoren zurückfließen musste, und ich würde darauf wetten, dass in zehn Jahren noch mehr Funktionen kaputtgehen, weil man sich dann auf die Rendite für Investoren konzentriert. Ich bin zwar etwas in Richtung ActivityPub voreingenommen, erkenne aber an, dass die Architektur von BlueSky besser ist
    • Wegen der Möglichkeit, eine Domain als Benutzernamen zu verwenden, habe ich mich anfangs auf die BlueSky-Warteliste setzen lassen.
      Vor 11 Jahren habe ich einen Social-Media-Aggregator gebaut, bei dem man sich nur mit einer verifizierten Domain anmelden konnte; die Domain diente als Benutzername und authentifizierte darüber das Social-Media-Profil. Damals Show HN: https://news.ycombinator.com/item?id=6529523
      Das klingt vielleicht albern, aber am Ende habe ich BlueSky nicht genutzt, weil Emoji-Domains nicht unterstützt werden
    • Ich denke, es wird wie Threads und Mastodon laufen. Das Ergebnis wird bestenfalls lauwarm sein, aber schön, dass du Spaß daran hast
  • Der bsky firehose macht wirklich Spaß und hat so eine nostalgische Stimmung, als wäre man wieder im Jahr 2005.
    Ich habe letztes Wochenende damit etwas sehr Kleines und Albernes gebaut: https://bigmood.blue/

    • Ziemlich cool, gefällt mir. Statt des schwarzen Bildschirms und der wiederholten Bilder wäre vielleicht etwas wie eine Queue mit exponentiellem Backoff sauberer.
      Wenn es ein Problem der Darstellung ist, wirkt es so, als würden sich dieselben eindeutigen Bilder in kurzer Zeit stark wiederholen. Wenn die Queue beim Leerlaufen immer langsamer geleert würde (z. B. 0,5s/numInQueue, und beim letzten Element mindestens 0,5 Sekunden warten und auf das nächste Element in der Queue warten), wäre der Fluss vermutlich gleichmäßiger und es gäbe weniger leere Bildschirme und Wiederholungen. Es wäre auch gut, wenn Bilder ihr ursprüngliches Seitenverhältnis behalten würden
    • Die Idee ist gut, aber das Flackern ist zu schnell. Vielleicht wäre es besser, nicht direkt den Firehose anzuzeigen, sondern jede Sekunde zufällig ein Bild auszuwählen
    • Gibt es eine Möglichkeit, das Flackern zu reduzieren? Ich habe keine Epilepsie, und danke für die Warnung vorher, aber nach etwa zwei Sekunden ist es trotzdem ziemlich unangenehm.
      Wenn man es etwas länger ansehen könnte, wäre es ein tolles Experiment
    • Es gibt den perfekten Soundtrack dazu (Warnung vor blinkendem Licht): https://www.youtube.com/watch?v=wNtxgxYY7sI&t=66s
    • Statt einer „nostalgischen Stimmung, als wäre man wieder im Jahr 2005“ wirkt es eher wie der Versuch, Leute in die Plattform investieren zu lassen, sie einzusperren und später zur Kasse zu bitten
  • Es fühlt sich an wie die guten alten Zeiten von Twitter. Damals konnte man etwas gegen die API bauen und damit experimentieren.
    Ich habe früher sogar mal einen Bot gebaut, der einen Wettbewerb gewonnen hat: https://theexceptioncatcher.com/blog/2015/11/how-i-got-my-bo...

  • Das ist ein cooles Feature und selbst ohne politische Haltung ein starker Grund, BlueSky gegenüber X zu unterstützen.
    Ich frage mich auch, ob BlueSky oder Dritte verschiedene Arten von Dumps als ZIP-Dateien anbieten. Das wäre für die Serverlast vielleicht besser

  • Früher hat es Spaß gemacht, mit dem Firehose von Twitter zu spielen, als normale Entwickler noch Zugriff darauf hatten. Es freut mich, diese Idee zurückkommen zu sehen

  • Das ist cool. Ein krasser Kontrast zu den abgeriegelten neuen API-Regeln von Twitter seit Elon

  • Ich bin immer noch wütend darüber, dass Twitter meine ganze Automatisierung kaputtgemacht und dann 100 Dollar im Monat verlangt hat. Inzwischen sind es, glaube ich, 200 Dollar.
    Das ist ungefähr auf dem Niveau meiner Autokreditrate. Für eine normale Privatperson ist das nicht zu rechtfertigen

  • Ich habe das Gefühl, dass diese Daten in naher Zukunft irgendein Trainingsdatensatz für AI/LLMs werden

    • Am Ende gibt es nur zwei Möglichkeiten: Entweder alle haben Zugriff, oder nur ein paar Großkonzerne. Ideal ist keines von beidem, aber Ersteres ist deutlich besser
    • Es ist besser, wenn der Datenzugang für alle offen ist, als wenn nur ein paar große Unternehmen Zugriff haben
    • Fairerweise muss man sagen, dass man wahrscheinlich schon Trainingsdaten für irgendeine AI liefert, wenn man einfach nur eine Straße mit CCTV-Kameras entlanggeht
    • Forschende werden vermutlich ältere Daten wollen, die nicht mit LLM-Erbrochenem kontaminiert sind
  • Die Demo mit dem einwortigen Firehose ist großartig. Kreative Leute werden damit wahrscheinlich viele wirklich coole Dinge bauen

  • Ich habe einen wichtigen Account auf Twitter und poste dort manuell Beiträge, Gedanken, Links und Ankündigungen.
    Ich habe nach einer Möglichkeit gesucht, automatisch auf Threads und Bluesky querzuposten, aber nichts gefunden. Kann jemand eine Methode empfehlen?

    • Ich denke, das ist ein weiteres Problem. Es gibt keinen praktikablen Weg, Social-Media-Daten zu übertragen, und falls es ihn gäbe, würde er meist missbraucht werden
    • Es gibt Apps wie OpenVibe und Yup, mit denen man an mehrere Orte posten kann