2 poin oleh GN⁺ 2024-11-17 | 1 komentar | Bagikan ke WhatsApp
  • Data publik Bluesky telah berkembang hingga skala 15 juta pengguna, dan dengan Jetstream, Anda bisa menerima seluruh event jaringan secara real-time untuk bereksperimen
  • Karena firehose ini berbentuk feed JSON WebSocket, Anda bisa terhubung bahkan dari browser, dan eksperimen sederhana dengan data real-time dapat dimulai secara gratis
  • Aplikasi contoh mendeteksi event delete dan menampilkan untuk terakhir kalinya teks postingan yang baru saja dihapus di feed menghilang yang dianonimkan
  • Lingkungan operasionalnya adalah mesin shared-cpu-1x 256MB RAM di Fly.io dengan volume persisten 2GB; biayanya masing-masing $1,94 dan $0,30 per bulan
  • Tidak ada jaminan bahwa semua aplikasi firehose dapat berjalan sekecil ini, tetapi beberapa aplikasi konsumsi real-time bisa dioperasikan cukup dengan instans minimal

Menerima firehose Bluesky dengan Jetstream

  • Data Bluesky sangat publik, dan saat ini ada data publik berskala 15 juta pengguna
  • Dengan Jetstream, Anda bisa menerima semua hal yang terjadi di jaringan sebagai feed JSON WebSocket real-time
  • Anda juga bisa langsung terhubung ke firehose dari browser dan melakukan eksperimen sederhana seperti mengambil kata acak dari tulisan yang sedang diposting

Aplikasi kecil yang menampilkan event penghapusan

  • Aplikasi eksperimen deletions.bsky.bad-example.com mendengarkan semua event delete dari firehose dan menampilkan teks yang baru saja dihapus di feed menghilang yang dianonimkan
  • Aplikasi ini dibuat ketika jaringan Bluesky masih jauh lebih kecil, dan kini kecepatan jaringan sudah menjadi jauh lebih cepat hingga terasa lebih kacau
  • Berjalan di instans terkecil Fly.io
    • Fly machine, shared-cpu-1x, 256MB RAM: $1,94 per bulan
    • 2GB Persistent volume: $0,30 per bulan
  • Alur kerjanya terdiri dari cache sederhana dan pencocokan event penghapusan
    • Menerima semua event create-post baru dari koleksi app.bsky.feed.post
    • Menyaring postingan kosong, lalu menerapkan redaction pada mention dan tautan
    • Menyimpan teks yang telah dibersihkan ke pebbledb dengan kunci did+rkey
    • Setiap beberapa detik, menghapus secara rentang teks tersimpan yang lebih lama dari 48 jam
    • Ketika event delete-post datang, mencari teks di cache dan, jika ada, menyiarkannya ke para pengamat saat ini
  • Cakupan fiturnya kecil, tetapi berjalan stabil di instans minimal Fly.io, dan beberapa aplikasi yang lebih menarik juga bisa dioperasikan pada skala serupa

1 komentar

 
GN⁺ 2024-11-17
Komentar di Hacker News
  • Ada dua alasan mengapa BlueSky bagus: nama pengguna bisa memakai domain situs web saya, jadi bisa seperti @bradgessler.com, dan fitur menyalin lalu menempel gambar ke pesan di iOS berfungsi dengan baik
    Di X/Twitter, ini sudah rusak sejak lama. Ada lebih banyak kelebihan, tetapi dua hal ini terasa sangat bagus. Kalau butuh jalur untuk mulai, saya juga sudah membuat starter pack untuk peretas Ruby: https://go.bsky.app/HXB2cPh
    Ada banyak sekali starter pack dan komunitas lain juga

    • Yang lebih penting, Anda harus melakukan verifikasi bahwa Anda memiliki domain tersebut. Anda tidak bisa mendaftar sebagai google.com
    • Logika itu juga berlaku untuk X. Di BlueSky, verifikasi domain dipetakan melalui DNS ke identifier did:plc, dan AppView (bsky.app, aplikasi ponsel BlueSky, dll.) hanya melihat plc.directory, “database” milik BlueSky
      Agar nama pengguna benar-benar menjadi nama domain, BlueSky harus mendukung identifier jenis did:web, tetapi saat ini belum begitu. Pada akhirnya, dalam hal nama pengguna dipetakan ke database internal, ini sama saja dengan X. BlueSky lebih mirip Twitter sebelum harus mengembalikan uang kepada investor, dan saya berani bertaruh bahwa 10 tahun lagi lebih banyak fiturnya akan rusak karena mereka fokus mengejar pengembalian investasi. Saya memang agak condong ke ActivityPub, tetapi saya akui arsitektur BlueSky lebih baik
    • Fitur memakai domain sebagai nama pengguna adalah alasan saya masuk daftar tunggu BlueSky sejak awal
      11 tahun lalu, saya membuat agregator media sosial yang mengharuskan pengguna punya domain terverifikasi untuk mendaftar; caranya memakai domain sebagai nama pengguna dan mengautentikasi profil media sosial dengan domain itu. Show HN waktu itu: https://news.ycombinator.com/item?id=6529523
      Ini mungkin terdengar konyol, tetapi alasan saya akhirnya tidak memakai BlueSky adalah karena mereka tidak mendukung domain emoji
    • Sepertinya akan berjalan seperti Threads dan Mastodon. Hasilnya paling-paling suam-suam kuku, tetapi senang kalau Anda menikmatinya
  • bsky firehose benar-benar menarik, dan ada rasa nostalgia seperti kembali ke tahun 2005
    Akhir pekan lalu saya memakai ini untuk membuat hal kecil yang sangat silly: https://bigmood.blue/

    • Cukup keren dan saya suka. Sepertinya akan lebih rapi kalau ada sesuatu seperti antrean exponential backoff alih-alih layar hitam dan gambar berulang
      Dengan asumsi ini masalah cara tampilan, terlihat seperti gambar unik yang sama berulang berkali-kali dalam waktu singkat. Kalau antrean dikosongkan makin lambat saat hampir habis (misalnya 0.5s/numInQueue, elemen terakhir menunggu minimal 0,5 detik dan menunggu elemen berikutnya masuk antrean), alurnya akan lebih stabil, dan layar kosong maupun pengulangan akan berkurang. Akan bagus juga kalau gambar mempertahankan rasio aspek aslinya
    • Idenya bagus, tetapi kedipannya terlalu cepat. Mungkin lebih baik memilih satu secara acak setiap 1 detik daripada langsung menampilkan firehose
    • Adakah cara untuk mengurangi kedipan? Saya tidak punya epilepsi dan saya menghargai peringatan yang ditampilkan lebih dulu, tetapi setelah sekitar 2 detik tetap terasa cukup tidak nyaman
      Kalau bisa dilihat sedikit lebih lama, ini akan jadi eksperimen yang keren
    • Ada soundtrack yang pas (peringatan cahaya berkedip): https://www.youtube.com/watch?v=wNtxgxYY7sI&t=66s
    • Alih-alih “rasa nostalgia seperti kembali ke tahun 2005”, ini terasa seperti pola membuat orang berinvestasi di platform, mengikat mereka, lalu menagih biaya
  • Rasanya seperti kembali ke masa-masa indah Twitter dulu. Saat itu kita bisa membuat sesuatu dan bereksperimen dengan API
    Dulu saya bahkan pernah membuat bot yang menang kompetisi: https://theexceptioncatcher.com/blog/2015/11/how-i-got-my-bo...

  • Ini fitur yang keren, dan bahkan terlepas dari posisi politik, ini menjadi alasan besar untuk mendukung BlueSky dibanding X
    Saya juga penasaran apakah BlueSky atau pihak ketiga menyediakan berbagai jenis dump sebagai file zip. Sepertinya itu akan lebih baik untuk mengurangi beban server

  • Dulu menyenangkan bermain-main dengan firehose Twitter ketika developer biasa masih bisa mengaksesnya. Senang melihat ide itu kembali

  • Ini keren. Kontras sekali dengan aturan API baru yang terkunci dari Twitter setelah Elon

  • Saya masih kesal karena Twitter merusak semua otomasi saya lalu meminta 100 dolar per bulan. Sekarang sepertinya sudah naik sampai 200 dolar
    Itu sudah setara cicilan mobil saya. Bukan jumlah yang bisa dibenarkan oleh orang biasa

  • Saya merasa dalam waktu dekat data ini akan menjadi semacam data pelatihan AI/LLM

    • Hasilnya hanya ada dua: semua orang bisa mengaksesnya, atau hanya beberapa perusahaan besar yang bisa mengaksesnya. Meski tidak ideal, yang pertama jauh lebih baik
    • Lebih baik akses data dibuka untuk semua orang daripada hanya dimiliki beberapa perusahaan besar
    • Agar adil, hanya dengan berjalan di jalan yang ada kamera CCTV saja kemungkinan besar Anda sudah menjadi data pelatihan untuk suatu AI
    • Para peneliti sepertinya akan menginginkan data lama yang belum tercemar muntahan LLM
  • Demo firehose satu kata itu luar biasa. Saya rasa orang-orang kreatif bisa membuat banyak hal yang benar-benar keren dengan ini

  • Saya punya akun penting di Twitter, dan saya secara manual memposting tulisan, pemikiran, tautan, pengumuman, dan sebagainya di sana
    Saya sudah mencoba mencari cara untuk melakukan cross-post otomatis ke Threads dan Bluesky, tetapi belum menemukannya. Ada rekomendasi?

    • Saya melihat itu sebagai masalah lain. Tidak ada cara praktis untuk memindahkan data media sosial, karena kalau itu menjadi mungkin, sebagian besar akan disalahgunakan
    • Ada aplikasi yang memungkinkan memposting ke beberapa tempat, yaitu OpenVibe dan Yup