ใช้ Bluesky firehose ในราคาต่ำกว่า $2.50 ต่อเดือน
(bsky.bad-example.com)- ข้อมูลสาธารณะของ Bluesky เติบโตจนมีขนาด 15 ล้านผู้ใช้ แล้ว และเมื่อใช้ Jetstream ก็สามารถรับอีเวนต์ทั้งหมดของเครือข่ายแบบเรียลไทม์เพื่อทดลองได้
- เนื่องจากเป็น firehose ในรูปแบบ WebSocket JSON feed จึงเชื่อมต่อได้แม้จากเบราว์เซอร์ และสามารถเริ่มทดลองข้อมูลเรียลไทม์แบบง่าย ๆ ได้ฟรี
- แอปตัวอย่างตรวจจับอีเวนต์
deleteแล้วแสดงข้อความของโพสต์ที่เพิ่งถูกลบเป็นครั้งสุดท้ายในฟีดชั่วคราวแบบไม่ระบุตัวตน - สภาพแวดล้อมสำหรับใช้งานจริงคือเครื่อง shared-cpu-1x 256MB RAM ของ Fly.io พร้อม persistent volume 2GB โดยมีค่าใช้จ่ายเดือนละ $1.94 และ $0.30 ตามลำดับ
- ไม่สามารถรับประกันได้ว่าแอป firehose ทุกตัวจะรันได้เล็กขนาดนี้ แต่แอปบางประเภทที่ consume ข้อมูลเรียลไทม์สามารถให้บริการได้เพียงพอด้วยอินสแตนซ์ขั้นต่ำ
รับ Bluesky firehose ด้วย Jetstream
- ข้อมูลของ Bluesky เปิดเผยต่อสาธารณะอย่างมาก และปัจจุบันมีข้อมูลสาธารณะในระดับ 15 ล้านผู้ใช้
- เมื่อใช้ Jetstream จะสามารถรับทุกสิ่งที่เกิดขึ้นบนเครือข่ายเป็น WebSocket JSON feed แบบเรียลไทม์ได้
- สามารถเชื่อมต่อกับ firehose ได้โดยตรงจากเบราว์เซอร์ และทำการทดลองง่าย ๆ เช่นสุ่มดึงคำจากโพสต์ที่กำลังถูกโพสต์อยู่ในขณะนั้นได้
แอปขนาดเล็กที่แสดงอีเวนต์การลบ
- แอปทดลอง deletions.bsky.bad-example.com ฟังอีเวนต์
deleteทั้งหมดจาก firehose และแสดงข้อความที่เพิ่งถูกลบในฟีดชั่วคราวแบบไม่ระบุตัวตน - แอปนี้ถูกสร้างขึ้นตอนที่เครือข่าย Bluesky ยังเล็กกว่าปัจจุบันมาก และตอนนี้ความเร็วของเครือข่ายก็เพิ่มขึ้นจนดูสับสนวุ่นวายยิ่งกว่าเดิม
- ทำงานบนอินสแตนซ์ที่เล็กที่สุดของ Fly.io
- Fly machine, shared-cpu-1x, 256MB RAM: เดือนละ $1.94
- 2GB Persistent volume: เดือนละ $0.30
- ลำดับการทำงานประกอบด้วยแคชแบบเรียบง่ายและการจับคู่กับอีเวนต์การลบ
- รับอีเวนต์
create-postใหม่ทั้งหมดในคอลเลกชันapp.bsky.feed.post - กรองโพสต์ว่างออก และใช้ การปกปิดข้อมูล (redaction) กับ mention และลิงก์
- บันทึกข้อความที่จัดระเบียบแล้วลงใน pebbledb โดยใช้คีย์
did+rkey - ทุก ๆ ไม่กี่วินาที จะลบช่วงข้อมูลของข้อความที่เก็บไว้นานกว่า 48 ชั่วโมง
- เมื่อมีอีเวนต์
delete-postเข้ามา จะค้นหาข้อความจากแคช และถ้ามี ก็ broadcast ไปยังผู้สังเกตการณ์ปัจจุบัน
- รับอีเวนต์
- แม้ขอบเขตฟีเจอร์จะเล็ก แต่ก็ทำงานได้เสถียรบนอินสแตนซ์ขั้นต่ำของ Fly.io และแอปที่น่าสนใจกว่านี้บางตัวก็อาจให้บริการได้ในระดับขนาดใกล้เคียงกัน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีสองเหตุผลที่ทำให้ BlueSky ดีมาก: สามารถใช้ชื่อผู้ใช้เป็นโดเมนเว็บไซต์ของตัวเอง ได้ เลยเป็นแบบ @bradgessler.com ได้ และบน iOS ฟังก์ชันคัดลอกแล้ววางรูปภาพลงในข้อความก็ทำงานได้ดี
บน X/Twitter สิ่งนี้พังมานานแล้ว ยังมีข้อดีอีกมาก แต่สองข้อนี้ทำให้รู้สึกชอบเป็นพิเศษ ถ้าต้องการเส้นทางเริ่มต้น ก็มี starter pack สำหรับ Ruby hacker ที่ทำไว้แล้ว: https://go.bsky.app/HXB2cPh
และยังมี starter pack กับคอมมูนิตี้อื่น ๆ อีกเยอะมาก
did:plcและAppViewต่าง ๆ (เช่น bsky.app, แอปสมาร์ตโฟนของ BlueSky ฯลฯ) ก็แค่ไปดูที่ plc.directory ซึ่งเป็น “ฐานข้อมูล” ที่ BlueSky เป็นเจ้าของถ้าจะให้ชื่อผู้ใช้เป็นชื่อโดเมนจริง ๆ BlueSky ต้องรองรับตัวระบุประเภท
did:webแต่ตอนนี้ยังไม่รองรับ สุดท้ายแล้วในแง่ที่ชื่อผู้ใช้ถูกแมปเข้ากับฐานข้อมูลภายใน มันก็เหมือน X นั่นแหละ BlueSky ใกล้เคียงกับ Twitter ในยุคก่อนต้องหาเงินคืนให้นักลงทุน และก็พอจะเดิมพันได้ว่าอีก 10 ปีข้างหน้า ฟีเจอร์จะพังเพิ่มขึ้นอีกเพราะต้องโฟกัสกับการถอนทุนคืน ผมอาจเอนเอียงไปทาง ActivityPub นิดหน่อย แต่ก็ยอมรับว่าสถาปัตยกรรมของ BlueSky ดีกว่าเมื่อ 11 ปีก่อน ผมเคยทำตัวรวมโซเชียลมีเดียที่ให้สมัครได้เฉพาะผู้ใช้ที่มีโดเมนที่ยืนยันแล้ว โดยใช้โดเมนเป็นชื่อผู้ใช้และใช้โดเมนนั้นยืนยันโปรไฟล์โซเชียลมีเดีย ตอนนั้นเคยลง Show HN ไว้: https://news.ycombinator.com/item?id=6529523
อาจฟังดูตลก แต่สุดท้ายเหตุผลที่ไม่ได้ใช้ BlueSky คือมันไม่รองรับ โดเมนอีโมจิ
bsky firehose สนุกมากจริง ๆ และให้ความรู้สึกโหยหาอดีตเหมือนย้อนกลับไปปี 2005
สุดสัปดาห์ที่แล้วผมเอามันมาทำของเล็ก ๆ แบบงี่เง่าแต่น่าขำชิ้นหนึ่ง: https://bigmood.blue/
ถ้ามองว่าเป็นปัญหาเรื่องการแสดงผล มันจะดูเหมือนภาพที่ไม่ซ้ำกันภาพเดิมถูกแสดงซ้ำหลายครั้งในช่วงเวลาสั้น ๆ ถ้าเป็นการระบายคิวให้ช้าลงเมื่อคิวใกล้ว่าง (เช่น 0.5s/numInQueue โดยชิ้นสุดท้ายรออย่างน้อย 0.5 วินาทีและรอให้ชิ้นถัดไปเข้าคิว) น่าจะทำให้จังหวะการไหลดูสม่ำเสมอขึ้น และลดทั้งจอว่างกับภาพซ้ำได้ นอกจากนี้ก็น่าจะดีถ้ารักษาอัตราส่วนภาพเดิมไว้
ถ้าดูได้นานกว่านี้น่าจะเป็นการทดลองที่เจ๋งมาก
มันให้ความรู้สึกเหมือนได้กลับไปยังช่วงเวลาดี ๆ ของ Twitter สมัยก่อน ตอนนั้นยังสร้างอะไรและทดลองอะไรกับ API ได้
ผมเคยทำบอตที่ชนะการแข่งขันด้วย: https://theexceptioncatcher.com/blog/2015/11/how-i-got-my-bo...
นี่เป็นฟีเจอร์ที่ยอดเยี่ยม และแม้ไม่นับเรื่องจุดยืนทางการเมือง ก็เป็น เหตุผลใหญ่ที่อยากเชียร์ BlueSky มากกว่า X
ผมก็สงสัยว่า BlueSky หรือบุคคลที่สามมีการปล่อยดัมป์หลายรูปแบบเป็นไฟล์ zip หรือเปล่า น่าจะช่วยลดภาระเซิร์ฟเวอร์ได้ดีกว่า
สมัยก่อนตอนที่นักพัฒนาทั่วไปยังเข้าถึงได้ การได้เล่นกับ firehose ของ Twitter สนุกมาก ดีใจที่เห็นไอเดียนี้กลับมาอีก
นี่มันเจ๋งมาก ตรงข้ามอย่างชัดเจนกับ กฎ API แบบปิดตายของ Twitter หลังยุค Elon
ผมยังหงุดหงิดไม่หายที่ Twitter ทำระบบอัตโนมัติทั้งหมดของผมพัง แล้วบอกให้จ่ายเดือนละ 100 ดอลลาร์ ตอนนี้เหมือนจะขึ้นไปถึง 200 ดอลลาร์แล้ว
ราคาแค่นั้นพอ ๆ กับค่างวดรถของผมเลย ไม่ใช่จำนวนเงินที่คนธรรมดาจะหาเหตุผลมาจ่ายได้
รู้สึกว่าในอนาคตอันใกล้ ข้อมูลนี้น่าจะกลายเป็น ข้อมูลฝึก AI/LLM แบบหนึ่งแน่ ๆ
เดโม firehose แบบคำเดียวทำได้ยอดเยี่ยมมาก ดูแล้วรู้สึกว่าคนสร้างสรรค์น่าจะเอาสิ่งนี้ไปทำของเจ๋ง ๆ ได้อีกมาก
ผมมีบัญชีสำคัญบน Twitter และยังโพสต์ข้อความ ความคิด ลิงก์ และประกาศต่าง ๆ ลงที่นั่นด้วยตัวเอง
ผมพยายามหาวิธีโพสต์ข้ามไป Threads กับ Bluesky แบบอัตโนมัติ แต่ยังหาไม่เจอ มีวิธีไหนที่แนะนำไหม?