Skip to content(if available)orjump to list(if available)

Never Missing the Train Again

Never Missing the Train Again

98 comments

·October 23, 2024

aaronbrethorst

n.b. I'm the executive director of the non-profit behind OneBusAway, which is an open source project used by millions of people every day to find out where their buses, trains, trams, and funiculars are, and when they'll be arriving.

If you live in a city that already has a OneBusAway server[1], you can use one of our brand new SDKs to build your own custom app experience: https://github.com/onebusAway/?q=sdk&type=all&language=&sort...

If you live in a city that DOES NOT have a OneBusAway server, we've spent a ton of time and energy this year building Docker images and OpenTofu configurations[2], which will allow you to take GTFS and GTFS-RT feeds and turn them into an easy to use REST API.

I know that BART provides GTFS and GTFS-RT feeds: https://mobilitydatabase.org/feeds/mdb-53. Similarly, every other transit agency in the United States should now be publicly sharing at least their static schedule data as GTFS due to a newish federal rule.

Also, if you're interested in hacking on software like what I described above, or on our end user-focused software, we always need more developers to pitch in—all skill levels and essentially any language.

In particular, we desperately need an iOS developer to help our 250,000 daily users get some much needed improvements.

My email address is aaron@onebusaway.org. Reach out!

----

[1] New York, Seattle, Washington, D.C., San Diego, Alexandria, Victoria, Adelaide, Buenos Aires, etc.

[2] Docker: https://github.com/OneBusAway/onebusaway-docker and OpenTofu: https://github.com/OneBusAway/onebusaway-deployment

jgrahamc

If you live in a city that already has a OneBusAway server

How do you find a list of places it's deployed. I tried Googling "onebusaway cities" which got me this page https://onebusaway.org/onebusaway-deployments/ but that doesn't list cities like Adelaide that you mention.

fx1994

had to install app to check, only USA and only few places... so basically useless

null

[deleted]

avhception

I'm kind of surprised that no one in here seems to have mentioned https://oeffi.schildbach.de/index.html so far. It does exactly what seems to be wanted here.

Animats

BART and MUNI both support the General Transit Feed Specification.[1] There's a standard way to obtain this data.

[1] https://gtfs.org/documentation/overview/#gtfs-realtime

culopatin

Do you know how reliable is the realtime info? I find that Google maps very often says “bus coming in 4 min” as im watching the bus drive away. Or “delayed by 5 min” and it’s early by 2, etc.

sameoldtune

The app is very clear when a time is based on gps vs the schedule. You can even watch the gps like you can on Uber.

No one can predict the traffic but in my daily experience it is reliable to the minute

jessekv

Cool! I made something like this on an old netbook in university.

I plotted bus locations in matplotlib, which was what I knew at the time.

The busses would clump up where I lived, so it was helpful to know if I should rush breakfast to catch a burst of busses or just wait for the next wave.

kfarber

I really enjoyed this read. I've been wanting to tackle a side project that uses old hardware and this has been inspiring!

I also didn't know that skia had rust bindings and it seemed pretty easy to setup.

It's been a nightmare to try setup in c++.

fatnoah

I love this. As a formerly car-free resident of Boston, I cobbled together something far cruder to handle the cases of there being many ways for me to get from point A to point B, but the "best" way depended on time and any stops I'd make along the way.

For example, I walked my son to school before heading to work, and sometimes I got breakfast after dropoff. Having the "next departure" view let me have a more fluid experience that handled the non-deterministic nature of walking with a 4 year old in a very interesting place, or deciding whether to hustle to get the train because missing it hit a schedule gap, etc.

philipwhiuk

If you're in the UK you can buy a depature board that mimics a station departure board:

https://ukdepartureboards.co.uk/store/product/desktop-depart...

lostlogin

This is great - rather hard to justify as an impulse buy though, it’s pricey.

ace32229

You can build it yourself very easily for 1/3 of the price:

https://departureboard.jonathanfoot.com/

rjh29

There's also https://departureboards.mobi/departures/BTH which mimics the departure boards used in some stations.

imp0cat

> Note: Please review product dimensions before purchase to avoid any surprises

LOL, this must happen quite a lot to them.

nox101

Maybe I'm not understanding the use case. I don't want to "take the train". I want to get from A to B. If the train is broken, the workers are on strike, the route is blocked between 1pm and 4pm, or it's outside of operating hours then I want an alternative. So for me, I actually want what Google Maps gives me (or tries to give me). I do not just want to know about trains. Maybe I want to get from the Ferry Building to Oakland and maybe the Bart is broken so i'd be better to take the ferry. Maybe it's late so my only option is a taxi/uber.

Alternatives are especially important in other cities. In Tokyo if I want to go from Shibuya to Azabujuban I can take

* Ginza Line->Namboku line - advantages, (1) Ginza line starts at Shibuya so guaranteed a seat if I wait for the next train - though only for 4 stops where I have to switch (2) both lines are same train company so $1 cheaper

* Hanzomon Line->Oedo line - advantages, fastest

* Yamanoto line->Namboku line

* #6 bus - advantages: no changes, disadvantage, slowest

* taxi - advantage: fastest if there's no line for taxis or if I'm confident I can find one quickly

Extra considerations. Each line's station and the bus stop are 3 to 8 minutes walk from each other so if I'm closest to one that would weigh on my choice. Speed matters too, if I'm late. If I have large or heavy packages I'd be more likely to take the cab. Etc....

inejge

> Maybe I'm not understanding the use case. I don't want to "take the train".

The use case is routine. A lot of people, most of the time, do indeed want to "take the train". Heroic feats of real-time planning have their place, and it's great to have tools that help you with that, but routine can be covered with much simpler tools just as well.

Even in the Tokyo scenario you gave (which is fascinating -- thank you!) Google gives 30-40 min. for most public transit options, so for rough planning they're all equivalent. Taxi is faster, and bicycle is almost at par.

nox101

never met that person. as someone that has long lived in cities with amazing transportation (sf is not one of those with good transportation) there are too many options and people always want whatever is best now, not routine.

you're out drinking - which mode is last. you're on the east side of X, which route is closest. you're tired, does any route guauntee a seat. etc....

Berlin, London, Paris, Tokyo, Singapore, Kyoto, Osaka. All this way . there is no "one train"

numpad0

Experiences with public transit in central Tokyo is don't generalize to the world. It's as pointless as talking in-store shopping or dining experience based solely on that inside a Disneyland. Just tapping Suica takes couple times less than what takes you elsewhere, if at all supported.

bongodongobob

The use case is when you need or want to take a train ya ding dong.

nox101

without more info you can't know that. further. I want to go to one app. If I want to go to Geary and 24th, there is no train. I don't want to have to take the extra step of thinking about where I want to go and then having to choose the appropriate app. one app will do

crazygringo

You don't have to jailbreak your Kindle, or render images.

You can just point its web browser at any webpage you design, and disable the Kindle's "screensaver" (its ads or sleep screen) with debug commands [1, 2].

You'll be stuck with a browser bar along some edge of the Kindle (you can rotate the device orientation to put it at the bottom or right edge), but it's a small price to pay for being able to write your weather/transit/news screen in easy HTML/CSS/JS and whatever backend language you want, and run it on a cheap DigitalOcean $4 instance or whatever.

[1] https://blog.notfaqs.com/2018/06/kindle-e-reader-disable-scr...

[2] https://www.mobileread.com/forums/showthread.php?t=198334

cptcobalt

It would be even cooler if Amazon also encouraged and built a "Kiosk mode" browser view of the kindle for this sort of display hacking.

FrecklySunbeam

(author here) I've also been thinking about this - I've since built out a Rust library (https://github.com/lily-mara/kindling) for scaffolding the server piece of this and I've been considering creating a Kindle client app that integrates with it. This is possible but would require using the Kindle Java SDK, which does not fill me with excitement.

stavros

That would be fantastic, although even just the way you've done this here is great. I've got a few old Kindles that would be good to convert to displays, and if I could just install a server and a client, it would take a lot of the work out of it.

crazygringo

They really ought to, it's a fantastic reuse mechanism.

Like I totally understand why they wouldn't for new Kindles, since I assume part of their ebook sales help subsidize the hardware, but if they enabled it once a device hit 5 years old or something, I don't see what they'd have to lose.

colanderman

I did this with an inkBOOK, which just runs Android. Loaded on a Chrome APK and pointed it at a webpage I made. `document.documentElement.requestFullscreen()` enters true fullscreen, no status bars. And my local transit service's API is accessible directly from web pages, no backend needed.

DannyPage

I looked into this with my 4th generation Kindle; it seems like it won't be able to use any HTTPS website due to invalid certificate. However, setting it up to talk to a server on my local network would be the way to go. Thanks for the idea!

philips

I am almost certain disable screensaver was removed for later Kindles.

crazygringo

I didn't seem to be last I checked -- the older Kindles require the sequence:

  ;debugOn
  ~disableScreensaver
  ;debugOff
while newer ones only require:

  ~ds
I know that for some ad-supported Kindles it doesn't work unless you pay to remove the ads (for obvious reasons), but if you pay then it will.

But last I checked was a couple of years ago. I'd be very curious if anyone can report it not working. (Also note the command doesn't survive reboot, you have to re-disable after rebooting.)

laserlight

Unfortunately, ~ds was disabled by a firmware update a few years ago.

edfungus

I also live in SF and made an iOS app (A Better Ride) to solve this exact problem. Just shows you departure times of transit for stops around you. The goal is to make transit less stressful by making it predictable and explorable. It’s just a passion project I work on in my free time with zero monetization

jrhizor

That's really great! So many nice touches, like how it shows the side of the street and the overall direction of transit!

brendannee

This app is fantastic - nice job! It is unique among transit apps in that it shows you only the routes near you and where they go. This lets you explore all the places you could travel to without dealing with transfers.

mattegan

Your app is stunning! Love the real-time map!

I'm working on some hardware in this space (I've been up to my eyeballs in GTFS lately) and I can tell just how much went into parsing and presenting the transit data.

If you're willing, I would love to chat about some of the UX decisions you made - specifically in summarizing and grouping the trips available at each stop, and your backend!

sofixa

Nice. I have something similar with a repurposed Lenovo ThinkSmart View tablet/conference room device, with Home Assistant and its integration to my local transit authority. The advantage is that it's much more out of the box (okay, I did have to flash a custom Android ROM on the Lenovo, but still), it can show whatever I want, and I can also use it to control stuff like my lights or robot vacuum.

nvader

I want to mention this beautiful physical led sign of the BART map: https://www.designrules.co/