Tiêu thụ firehose của Bluesky với chi phí dưới 2,50 USD/tháng
(bsky.bad-example.com)- Dữ liệu công khai của Bluesky đã tăng lên quy mô 15 triệu người dùng, và với Jetstream, bạn có thể nhận toàn bộ sự kiện trên mạng theo thời gian thực để thử nghiệm
- Vì đây là firehose dưới dạng WebSocket JSON feed, bạn thậm chí có thể kết nối từ trình duyệt, và có thể bắt đầu các thử nghiệm dữ liệu thời gian thực đơn giản miễn phí
- Ứng dụng ví dụ phát hiện sự kiện
deletevà hiển thị lần cuối văn bản bài đăng vừa bị xóa trên một feed ẩn danh, tự biến mất - Môi trường vận hành là máy shared-cpu-1x 256MB RAM của Fly.io cùng volume bền vững 2GB, với chi phí lần lượt là 1,94 USD/tháng và 0,30 USD/tháng
- Không thể đảm bảo mọi ứng dụng firehose đều chạy nhỏ gọn như vậy, nhưng một số ứng dụng tiêu thụ thời gian thực vẫn có thể vận hành đầy đủ chỉ với instance tối thiểu
Nhận firehose của Bluesky bằng Jetstream
- Dữ liệu của Bluesky có tính công khai rất cao, và hiện đã có dữ liệu công khai ở quy mô 15 triệu người dùng
- Nếu dùng Jetstream, bạn có thể nhận mọi thứ xảy ra trên mạng dưới dạng WebSocket JSON feed theo thời gian thực
- Thậm chí có thể kết nối trực tiếp với firehose từ trình duyệt để làm những thử nghiệm đơn giản như chọn ngẫu nhiên các từ từ những bài viết đang được đăng
Một ứng dụng nhỏ hiển thị sự kiện xóa
- Ứng dụng thử nghiệm deletions.bsky.bad-example.com lắng nghe mọi sự kiện
deletetừ firehose và hiển thị văn bản vừa bị xóa trên một feed ẩn danh, tự biến mất - Ứng dụng này được tạo ra khi mạng Bluesky còn nhỏ hơn rất nhiều so với hiện tại, còn bây giờ tốc độ của mạng đã tăng nhanh đến mức hỗn loạn hơn nhiều
- Ứng dụng chạy trên instance nhỏ nhất của Fly.io
- Fly machine, shared-cpu-1x, 256MB RAM: 1,94 USD/tháng
- 2GB Persistent volume: 0,30 USD/tháng
- Luồng hoạt động gồm cache đơn giản và đối chiếu với sự kiện xóa
- Nhận mọi sự kiện
create-postmới trong collectionapp.bsky.feed.post - Lọc các bài đăng rỗng, rồi áp dụng che giấu (redaction) cho mention và liên kết
- Lưu văn bản đã làm sạch vào pebbledb bằng khóa
did+rkey - Cứ vài giây lại xóa theo phạm vi các văn bản đã lưu cũ hơn 48 giờ
- Khi có sự kiện
delete-post, ứng dụng tìm văn bản trong cache và nếu có thì phát tới những người đang theo dõi
- Nhận mọi sự kiện
- Phạm vi tính năng tuy nhỏ nhưng vẫn chạy ổn định trên instance tối thiểu của Fly.io, và một số ứng dụng thú vị hơn cũng có thể được vận hành ở quy mô tương tự
1 bình luận
Ý kiến trên Hacker News
Có hai lý do khiến BlueSky hay: có thể dùng tên miền website của mình làm tên người dùng, như @bradgessler.com, và tính năng sao chép rồi dán ảnh vào tin nhắn trên iOS hoạt động tốt
Trên X/Twitter, việc này đã hỏng từ lâu. Còn nhiều điểm mạnh khác, nhưng hai điểm này đặc biệt khiến tôi thấy thích. Nếu cần lối vào để bắt đầu, tôi cũng đã tạo một starter pack cho các hacker Ruby: https://go.bsky.app/HXB2cPh
Ngoài ra còn có rất nhiều starter pack và cộng đồng khác
did:plc, và cácAppView(bsky.app, ứng dụng smartphone BlueSky, v.v.) chỉ tra cứu plc.directory, “cơ sở dữ liệu” do BlueSky sở hữuĐể tên người dùng thực sự trở thành tên miền, BlueSky phải hỗ trợ loại định danh
did:web, nhưng hiện tại thì chưa. Rốt cuộc, ở điểm tên người dùng được ánh xạ vào cơ sở dữ liệu nội bộ thì cũng giống X. BlueSky giống Twitter trước thời điểm phải hoàn tiền cho nhà đầu tư hơn, và có thể cược rằng 10 năm nữa họ sẽ làm hỏng thêm nhiều tính năng vì tập trung thu hồi vốn đầu tư. Dù tôi có hơi thiên về ActivityPub, tôi vẫn thừa nhận kiến trúc của BlueSky tốt hơn11 năm trước, tôi từng làm một bộ tổng hợp mạng xã hội chỉ cho phép người dùng có tên miền đã xác minh đăng ký; cách làm là dùng tên miền làm tên người dùng và xác thực các hồ sơ mạng xã hội bằng tên miền đó. Show HN khi đó: https://news.ycombinator.com/item?id=6529523
Nghe có thể buồn cười, nhưng lý do cuối cùng tôi không dùng BlueSky là vì họ không hỗ trợ tên miền emoji
bsky firehose thật sự rất thú vị, có cảm giác hoài niệm như quay về năm 2005
Cuối tuần trước tôi đã dùng nó để làm một thứ nhỏ khá ngớ ngẩn: https://bigmood.blue/
Giả sử đây là vấn đề ở cách hiển thị, thì có vẻ cùng một ảnh duy nhất bị lặp lại nhiều lần trong thời gian ngắn. Nếu hàng đợi được xả chậm dần khi sắp rỗng (ví dụ: 0.5s/numInQueue, phần tử cuối cùng chờ tối thiểu 0,5 giây rồi đợi phần tử tiếp theo vào hàng đợi) thì dòng chảy có thể đều hơn, ít màn hình trống và ít lặp lại hơn. Sẽ tốt nếu ảnh cũng giữ nguyên tỷ lệ khung hình gốc
Nếu có thể xem lâu hơn một chút, đây sẽ là một thử nghiệm thú vị
Cảm giác như quay lại thời kỳ tốt đẹp của Twitter ngày xưa. Khi đó có thể xây dựng và thử nghiệm đủ thứ với API
Trước đây tôi còn từng tạo một bot thắng một cuộc thi: https://theexceptioncatcher.com/blog/2015/11/how-i-got-my-bo...
Đây là một tính năng tuyệt vời, và ngay cả khi bỏ qua lập trường chính trị, nó vẫn là lý do lớn để ủng hộ BlueSky hơn X
Tôi cũng tò mò liệu BlueSky hoặc bên thứ ba có cung cấp nhiều loại dump dưới dạng file zip không. Cách đó có vẻ tốt hơn để giảm tải cho máy chủ
Ngày trước, khi nhà phát triển bình thường cũng có thể truy cập, việc vọc firehose của Twitter rất vui. Thấy ý tưởng đó quay lại khiến tôi háo hức
Cái này hay đấy. Nó tương phản rõ rệt với các quy tắc API mới bị khóa chặt mà Twitter đưa ra sau Elon
Tôi vẫn còn bực vì Twitter đã làm hỏng toàn bộ tự động hóa của tôi rồi đòi 100 đô la mỗi tháng. Giờ hình như đã lên tới 200 đô la
Mức đó ngang tiền vay mua xe của tôi. Đó không phải khoản tiền mà một cá nhân bình thường có thể biện minh được
Tôi có cảm giác trong tương lai gần, dữ liệu này sẽ trở thành dữ liệu huấn luyện AI/LLM nào đó
Demo firehose một từ rất tuyệt. Tôi nghĩ những người sáng tạo có thể làm ra rất nhiều thứ thật hay với cái này
Tôi có một tài khoản quan trọng trên Twitter, nơi tôi đăng thủ công các bài viết, suy nghĩ, liên kết, thông báo, v.v.
Tôi đã tìm cách tự động đăng chéo lên Threads và Bluesky nhưng chưa thấy. Có cách nào đáng giới thiệu không?