2 puntos por GN⁺ 2024-10-25 | 1 comentarios | Compartir por WhatsApp
  • Al vivir en San Francisco y usar mucho el transporte público, notó que muchas apps solo ofrecen alertas de llegada para rutas completas
  • Lo hizo para mostrar en el Kindle solo las alertas de llegada cercanas a su ubicación actual, de modo que pudiera revisarlas antes de salir
  • Le hizo jailbreak al Kindle, activó USBNet y lo configuró para poder acceder por SSH
  • Gracias a eso, pudo configurar una tarea de cron para actualizar la pantalla
  • Como primer paso para mostrar imágenes en el Kindle, tomó una captura de pantalla de la página de salidas en tiempo real de BART y la envió al Kindle
  • En el intento inicial, la imagen se mostraba muy distorsionada
  • Resolvíó el problema ajustando el tamaño de la imagen y la profundidad de color

Proveer una imagen útil

  • Montó un servidor en Node.js que usa Puppeteer para tomar capturas de la página de BART, ajustarlas al tamaño y color adecuados para el Kindle y devolverlas mediante un endpoint HTTP
  • Instaló el servidor en una Raspberry Pi y configuró cron para obtener la imagen cada minuto

Empezar de nuevo desde cero - Arquitectura

  • Construyó un nuevo servidor HTTP usando Rust y Axum
  • Usó la API de 511.org para obtener los horarios de llegada de todas las paradas del Bay Area
  • Usó la biblioteca gráfica Skia para renderizar directamente imágenes PNG

Obtener los datos

  • Usó la API de 511.org para obtener los horarios de llegada de SF MUNI
  • Parseó la respuesta JSON y filtró solo los horarios de llegada de las paradas necesarias
  • Ordenó los horarios de llegada para mostrarlos por cada dirección

Resumen de GN⁺

  • Este proyecto trata sobre cómo construir un sistema que aprovecha un Kindle antiguo para mostrar información de transporte público en tiempo real
  • Usa Rust y Skia para construir un sistema eficiente y confiable
  • Al ofrecer información de transporte público en tiempo real, puede brindar datos útiles al usuario
  • Como proyecto con una función similar, se recomienda un smart display basado en Raspberry Pi

1 comentarios

 
GN⁺ 2024-10-25
Comentarios de Hacker News
  • OneBusAway es un proyecto de código abierto que mucha gente usa todos los días para revisar la ubicación y los horarios de llegada de autobuses, trenes, tranvías y teleféricos

    • En ciudades donde hay un servidor de OneBusAway, se pueden desarrollar apps personalizadas usando el nuevo SDK
    • En ciudades donde no hay servidor, se pueden convertir feeds GTFS y GTFS-RT en una API REST mediante una imagen de Docker y configuración de OpenTofu
    • Todas las agencias de transporte de EE. UU. deben publicar al menos datos estáticos de horarios en GTFS según las nuevas reglas federales
    • Siempre necesitan desarrolladores interesados en el desarrollo de software y le dan la bienvenida a desarrolladores de todos los niveles y lenguajes
    • En particular, necesitan desarrolladores iOS para ofrecer mejoras necesarias para 250,000 usuarios diarios
  • Otro usuario mencionó una app llamada Öffi que ofrece funciones similares a OneBusAway

  • BART y MUNI son compatibles con General Transit Feed Specification, por lo que se pueden obtener datos de forma estándar

  • Un usuario que vivió en Boston sin auto comentó que encontraba formas de llegar a su destino por distintas rutas y que la vista de "siguiente salida" le resultó útil

  • En el Reino Unido se pueden comprar tableros de salidas que imitan los paneles de salidas de las estaciones

  • En Washington, DC funciona con los autobuses, pero no con los trenes, y se necesita ayuda para la compatibilidad con trenes

  • Sin necesidad de hacer jailbreak a un Kindle, se pueden crear fácilmente pantallas de clima, transporte y noticias usando el navegador web

  • Un usuario que vive en SF desarrolló la app de iOS "A Better Ride", que muestra horarios de salida de paradas cercanas y hace que el transporte sea más predecible y fácil de explorar

  • El usuario quiere alternativas como Google Maps y le gustaría recibir rutas alternativas cuando un tren se avería o una línea queda bloqueada

    • Por ejemplo, explica varias rutas para ir de Shibuya a Azabu-juban en Tokio y las ventajas y desventajas de cada una
  • Un usuario construyó un sistema usando una tablet Lenovo ThinkSmart View que ofrece varias funciones mediante integración con la agencia de transporte local