2 điểm bởi GN⁺ 2024-10-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • Sống ở San Francisco và thường xuyên sử dụng phương tiện công cộng, nhưng nhiều ứng dụng chỉ cung cấp thông báo giờ đến cho toàn bộ lộ trình
  • Đã tạo để chỉ hiển thị trên Kindle những thông báo giờ đến gần vị trí hiện tại, nhờ đó có thể kiểm tra trước khi ra ngoài
  • Đã jailbreak Kindle, kích hoạt USBNet và cấu hình để có thể truy cập qua SSH.
  • Nhờ vậy có thể thiết lập tác vụ cron để cập nhật màn hình hiển thị.
  • Bước đầu tiên để hiển thị hình ảnh trên Kindle là chụp ảnh màn hình trang khởi hành thời gian thực của BART và gửi sang Kindle.
  • Ở lần thử ban đầu, hình ảnh hiển thị bị méo nghiêm trọng.
  • Đã giải quyết vấn đề bằng cách điều chỉnh kích thước ảnh và độ sâu màu.

Cung cấp hình ảnh hữu ích

  • Xây dựng máy chủ Node.js, dùng Puppeteer để chụp ảnh màn hình trang BART, điều chỉnh về kích thước và màu sắc phù hợp với Kindle rồi trả về qua một HTTP endpoint.
  • Cài máy chủ trên Raspberry Pi và dùng cron để lấy ảnh mỗi phút.

Bắt đầu lại từ đầu - Kiến trúc

  • Xây dựng một HTTP server mới bằng Rust và Axum.
  • Sử dụng API của 511.org để lấy thời gian đến của tất cả các điểm dừng trong Bay Area.
  • Dùng thư viện đồ họa Skia để render trực tiếp ảnh PNG.

Lấy dữ liệu

  • Sử dụng API của 511.org để lấy thời gian đến của SF MUNI.
  • Parse phản hồi JSON và chỉ lọc ra thời gian đến của những điểm dừng cần thiết.
  • Sắp xếp thời gian đến và hiển thị theo từng hướng.

Tóm tắt của GN⁺

  • Dự án này nói về quá trình xây dựng một hệ thống tận dụng Kindle cũ để hiển thị thông tin giao thông công cộng theo thời gian thực.
  • Sử dụng Rust và Skia để xây dựng một hệ thống hiệu quả và đáng tin cậy.
  • Bằng cách cung cấp thông tin giao thông công cộng theo thời gian thực, hệ thống có thể mang lại thông tin hữu ích cho người dùng.
  • Một dự án có chức năng tương tự được khuyến nghị là dự án màn hình thông minh dựa trên Raspberry Pi.

1 bình luận

 
GN⁺ 2024-10-25
Ý kiến trên Hacker News
  • OneBusAway là một dự án mã nguồn mở, được nhiều người sử dụng hằng ngày để kiểm tra vị trí và thời gian đến của xe buýt, tàu, xe điện và cáp treo

    • Ở các thành phố có máy chủ OneBusAway, có thể phát triển ứng dụng tùy chỉnh bằng SDK mới
    • Ở các thành phố chưa có máy chủ, có thể dùng image Docker và cấu hình OpenTofu để chuyển đổi feed GTFS và GTFS-RT thành REST API
    • Tất cả cơ quan giao thông tại Mỹ đều phải công khai ít nhất dữ liệu lịch trình tĩnh dưới dạng GTFS theo quy định liên bang mới
    • Dự án luôn cần các lập trình viên quan tâm đến phát triển phần mềm, chào đón nhà phát triển ở mọi trình độ và mọi ngôn ngữ
    • Đặc biệt cần lập trình viên iOS để mang lại các cải tiến cần thiết cho 250.000 người dùng hằng ngày
  • Một người dùng khác nhắc đến ứng dụng Öffi, cung cấp các tính năng tương tự OneBusAway

  • BART và MUNI hỗ trợ General Transit Feed Specification, nên có thể lấy dữ liệu theo cách tiêu chuẩn

  • Một người dùng từng sống ở Boston mà không có ô tô cho biết họ đã tìm ra cách đến đích qua nhiều lộ trình khác nhau, và chế độ xem "chuyến khởi hành tiếp theo" rất hữu ích

  • Ở Anh, có thể mua bảng giờ khởi hành mô phỏng bảng thông báo khởi hành tại nhà ga

  • Tại Washington, DC, hệ thống hoạt động với xe buýt nhưng không hoạt động với tàu, và cần hỗ trợ để tương thích với tàu

  • Có thể dễ dàng tạo màn hình hiển thị thời tiết, giao thông và tin tức bằng trình duyệt web mà không cần jailbreak Kindle

  • Một người dùng sống ở SF đã phát triển ứng dụng iOS "A Better Ride" để hiển thị giờ khởi hành tại các điểm dừng gần đó, giúp giao thông trở nên dễ dự đoán và dễ khám phá hơn

  • Người dùng muốn có phương án thay thế như Google Maps, và muốn được cung cấp lộ trình thay thế khi tàu bị hỏng hoặc tuyến bị chặn

    • Ví dụ, họ mô tả nhiều lộ trình khác nhau để đi từ Shibuya đến Azabujuban ở Tokyo cùng ưu và nhược điểm của từng lộ trình
  • Một người dùng đã xây dựng hệ thống dùng máy tính bảng Lenovo ThinkSmart View, tích hợp với cơ quan giao thông địa phương để cung cấp nhiều tính năng khác nhau