2 puan yazan GN⁺ 2024-10-25 | 1 yorum | WhatsApp'ta paylaş
  • San Francisco'da yaşarken toplu taşımayı sık kullanıyorum, ancak birçok uygulama varış bildirimlerini yalnızca tüm rota için sunuyor
  • Yalnızca mevcut konuma yakın varış bildirimlerini Kindle'da gösterecek şekilde yaparak çıkmadan önce kontrol etmeyi mümkün kıldı
  • Kindle jailbreak yapılarak USBNet etkinleştirildi ve SSH üzerinden erişilebilecek şekilde ayarlandı.
  • Böylece ekranı güncelleyen bir cron işi ayarlanabildi.
  • Kindle'da görüntü göstermenin ilk adımı olarak, BART'ın gerçek zamanlı kalkış sayfasından bir ekran görüntüsü alınıp Kindle'a gönderildi.
  • İlk denemede görüntü ciddi biçimde bozulmuş olarak gösterildi.
  • Görüntünün boyutu ve renk derinliği ayarlanarak sorun çözüldü.

Kullanışlı bir görsel sunmak

  • Puppeteer kullanan bir Node.js sunucusu kurularak BART sayfasının ekran görüntüsü alındı, Kindle'a uygun boyut ve renklere göre ayarlanıp bir HTTP endpoint'i üzerinden döndürüldü.
  • Sunucu Raspberry Pi'ye kuruldu ve cron kullanılarak görüntünün her dakika alınması sağlandı.

Baştan başlamak - mimari

  • Rust ve Axum kullanılarak yeni bir HTTP sunucusu kuruldu.
  • 511.org API'si kullanılarak Bay Area'daki tüm durakların varış zamanları alındı.
  • PNG görüntülerini doğrudan render etmek için Skia grafik kütüphanesi kullanıldı.

Veriyi almak

  • 511.org API'si kullanılarak SF MUNI'nin varış zamanları alındı.
  • JSON yanıtı parse edilerek yalnızca gerekli durakların varış zamanları filtrelendi.
  • Varış zamanları sıralanarak her yön için gösterildi.

GN⁺ Özeti

  • Bu proje, eski bir Kindle'ı kullanarak gerçek zamanlı toplu taşıma bilgisi gösteren bir sistem kurma sürecini ele alıyor.
  • Rust ve Skia kullanılarak verimli ve güvenilir bir sistem kuruldu.
  • Toplu taşıma bilgisini gerçek zamanlı sunarak kullanıcıya faydalı bilgi sağlanabiliyor.
  • Benzer işlevlere sahip projeler arasında Raspberry Pi tabanlı akıllı ekran projeleri öneriliyor.

1 yorum

 
GN⁺ 2024-10-25
Hacker News görüşleri
  • OneBusAway, birçok kişinin her gün otobüs, tren, tramvay ve teleferiklerin konumunu ve varış saatlerini kontrol etmek için kullandığı açık kaynaklı bir proje

    • OneBusAway sunucusunun bulunduğu şehirlerde yeni SDK kullanılarak özel uygulamalar geliştirilebilir
    • Sunucusu olmayan şehirlerde Docker imajı ve OpenTofu yapılandırmasıyla GTFS ve GTFS-RT akışları REST API'ye dönüştürülebilir
    • ABD'deki tüm ulaşım kurumları, yeni federal kurallar uyarınca en azından statik tarifeli verileri GTFS olarak yayımlamak zorunda
    • Yazılım geliştirmeyle ilgilenen geliştiricilere her zaman ihtiyaç var ve her seviyeden, her dilden geliştirici memnuniyetle karşılanıyor
    • Özellikle, günlük 250.000 kullanıcının ihtiyaç duyduğu iyileştirmeleri sağlamak için iOS geliştiricilerine ihtiyaç var
  • Başka bir kullanıcı, OneBusAway'e benzer işlevler sunan Öffi adlı bir uygulamadan bahsediyor

  • BART ve MUNI, General Transit Feed Specification'ı destekliyor ve verilere standart bir yolla erişilebiliyor

  • Boston'da arabasız yaşayan bir kullanıcı, farklı rotalar üzerinden varış noktasına ulaşmanın yollarını bulduğunu ve "sonraki kalkış" görünümünün faydalı olduğunu belirtiyor

  • Birleşik Krallık'ta, istasyon kalkış panolarını taklit eden kalkış panoları satın alınabiliyor

  • Washington, DC'de otobüslerle çalışıyor ama trenlerle çalışmıyor; tren uyumluluğu için yardıma ihtiyaç var

  • Kindle'ı jailbreak yapmadan da web tarayıcısı kullanarak hava durumu, ulaşım ve haber ekranları kolayca hazırlanabiliyor

  • SF'de yaşayan bir kullanıcı, yakındaki durakların kalkış saatlerini gösteren ve ulaşımı daha öngörülebilir ve keşfedilebilir hale getiren "A Better Ride" adlı iOS uygulamasını geliştirdiğini söylüyor

  • Kullanıcılar, Google Maps gibi alternatifler istiyor ve tren bozulduğunda ya da hat kapandığında alternatif rotalar sunulmasını arzuluyor

    • Örneğin, Tokyo'da Shibuya'dan Azabujuban'a gitmenin farklı yolları ile her rotanın artı ve eksilerini anlatıyor
  • Bir kullanıcı, Lenovo ThinkSmart View tablet kullanarak yerel ulaşım kurumu entegrasyonu sayesinde çeşitli özellikler sunan bir sistem kurduğunu anlatıyor