Never Missing the Train Again
146 comments
·October 23, 2024aaronbrethorst
mafro
Currently there's only 9 cities supported worldwide, and of those 2 are in beta. If this software had broader reach, it may be easier to get open source support.
Having said that, I'd add my city if it were straightforward. It looks like you've spent a lot of engineering time in library and SDK support lately - I suggest investing in the DX happy path to encourage new folks to invest their time.
For example, this document is rather complicated https://github.com/OneBusAway/onebusaway/wiki/Multi-Region
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
Hnrobert42
See the footnote in GP's comment.
jgrahamc
This one?
[1] New York, Seattle, Washington, D.C., San Diego, Alexandria, Victoria, Adelaide, Buenos Aires, etc.
I was trying to figure out what "etc." meant.
wanderingmind
As an aside, being opensource is there a reason you only publish in Play store and not F-Droid?
dgemm
I'd be curious if you have any insight on why the tracking apps for buses are so inaccurate - OneBusAway but also Google maps and the others. The estimates are often off in one way or another and sometimes a bus just doesn't show up at all. I assume the problem is with the source data but I'd be curious if you have insight into just what causes it to be so unreliable. I'm in Seattle FWIW
null
Animats
BART and MUNI both support the General Transit Feed Specification.[1] There's a standard way to obtain this data.
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.
rsynnott
IME Google's realtime data in many places isn't very good; even where it _claims_ to have realtime data (there's a little radio symbol beside the bus), it sometimes disagrees with both the local operator's own realtime data, and, well, consensus reality.
> Or “delayed by 5 min” and it’s early by 2, etc.
This, in particular, you can never really trust, especially for buses, no matter who's telling you it. If a bus is delayed 5 minutes, and has the opportunity to make up the time, it will. If a bus is delayed by five minutes, but there's no-one at the next five stops and no-one wants to get off there, it may well be on time by the time it gets to the next stop. In many bus systems, buses will sometimes just stop to avoid getting too far _ahead_ of schedule, though.
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
crazygringo
It depends on the specific transit system.
In my experience in NYC, the subway data is extremely accurate in terms of the minimum time until the next train. The subway virtually never arrives "early".
Buses seem to have a problem where their location transmission sometimes fails for a few minutes. The system always assumes the bus is still stuck at its last reported location rather than moving. That's why you get a bus arriving when the feed says it's 4 minutes away.
A good rule of thumb is that if you see the minutes away change, e.g. from 7 to 6 minutes, it's accurate. If it's not changing (e.g. just sits at 7), it might be because it's genuinely stuck in traffic, or because it's stopped transmitting. (Which explains the "delayed by" situation you describe.)
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.
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.
rsynnott
There are a bunch of things that do broadly this, though largely not on a kindle on a wall, of course :)
Moru
Wow, I had no idea something like that would work out in the deep forests of north sweden, With live updating times! Thankyou!
So much better than the official app, it directly shows exactly what is most needed, closest bus-stop with live times for next busses.
null
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...
rjh29
There's also https://departureboards.mobi/departures/BTH which mimics the departure boards used in some stations.
itohihiyt
Is there a bus version? This is excellent.
dspillett
You could make your own if you are sufficiently crafty: the data needed in the UK is available from public sources, https://www.bus-data.dft.gov.uk/ being the main one (I discovered this when checking the data sources of bustimes.org, which they helpfully list on an easy to find page: https://bustimes.org/data).
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:
pstadler
There's a Swiss equivalent of it mimicking tram boards:
imp0cat
> Note: Please review product dimensions before purchase to avoid any surprises
LOL, this must happen quite a lot to them.
withinboredom
Let me tell you about the time my wife ordered some cheap furniture on Amazon once ... it was all doll-house furniture. The photos and title did make it seem life-size, and it was super high-quality furniture at that. Just the wrong size...
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
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!
jrhizor
That's really great! So many nice touches, like how it shows the side of the street and the overall direction of transit!
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.
robocat
> I don't see what they'd have to lose.
If there is a cost or liability, then most businesses will avoid doing it.
There usually has to be a clear financial benefit: businesses should make profits - they are not social services or hobbies.
Fortunately businesses contain people and people often do altruistic things for non-financial reasons.
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.
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....
rsynnott
> So for me, I actually want what Google Maps gives me (or tries to give me).
One thing I find is that Google Maps really, really assumes that walking is very very bad and no-one wants to do it. So for instance, if I'm going to a particular place I will get a 39 bus and then walk 15 minutes. If I ask Google how to get there, I'll get a route with two transfers; if the stars align it'll take about as long as one-bus plus walk. So if I want Google to tell me when the 39 bus is coming, I'll have to lie about where I'm going.
(Also, at least where I am Google's realtime data is questionable, with the data from the operator and some other third parties being more reliable.)
creer
> Google Maps really, really assumes
Indeed, they assume all kinds of things - with no option to customize. For example, they assume that a 1 or 2 minute transfer will happen. Which you might want to override, but can't. You have your reasons to want to route through Caltrain instead of BART... and you can't. This is a characteristic of the brand really: Google people know what's good for you. I mean, them.
16mb
I had the same problems with Google Maps. I ended up using Apple Maps in Japan and it gave much more realistic routes
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"
michaelt
> never met that person.
Hello! Now you have.
In many cities certain parts of the transit network follow a star / hub-and-spoke layout. The station nearest to my house is on a spoke, and has trains going south and those going north. So for me, an in-home train display only really needs to show the next train in each direction.
And a lot of transit decisions are conditional on things the planning app doesn't know. Am I comfortable riding a hire bike, appropriately dressed, and carrying a helmet? Do I already have a return ticket for the light rail making it the obvious choice? Am I the kind of person who enjoys a brisk 20 minute walk?
Combine that with the fact that the multimodal transit apps don't understand fares, and I find it's simpler to just start the taxi app if you need a taxi.
reportgunner
I feel like the OP is overcomplicating the solution, I don't own a car and all commuting is basically either:
- bus/train/tram crosses my stop 5 times a day - its trivial to learn the 5 times
- bus/train/tram crosses my stop more than 5 times a day - i just show up at the stop and wait
Perhaps my point of view is like this because I'm in Europe, I can't tell really.
Fargren
I would find this slightly useful, I live in Madrid. For most of my trips I take the metro; I have two lines nearby, and they are frequent enough that I just show up. But there are a few parts of town that are just not well connected to my place by metro. If I want to go to Atocha, Cibeles or Piramides, the bus is better. But I have three buses that take me to each of those places, and they show up every 25 minutes. If I'm going there, I want to know which stop will have a bus soonest.
crazygringo
For your daily commute, you really do just want to "take the train".
If the train is broken or the workers are on strike, that will be reflected in the unexpected absence of live trains listed.
I pull up Google Maps and plug in my destination when I'm running around the city. I don't pull it up when I'm leaving my home to go somewhere I've been 500 times before.
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.
mjlee
You might like https://citymapper.com
Lots of features but I'm not sure how many are available in Tokyo to be fair. In London I can ask it to take me home and get presented with a list of methods that optimise for cost, walking distance, speed, changes, accessibility, etc.
bongodongobob
[flagged]
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
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/
mmoustafa
If you want a transportation app built for locals I highly recommend Transit. When you open the app it shows you the transit options closest to you, where they’re heading, and when the next one arrives. Never have to put in a destination.
julesallen
Android here. Have you looked at the amount of data this shares with third parties? No ads but holy hell. No thanks.
pkulak
Super cool. I did the same kind of thing with my tidbyt display:
https://github.com/pkulak/tidbyt
My local transit agency (Trimet) is _really_ good with their api. It's public, and a single HTTP GET to get the ETA on every bus that serves a given stop, so it wasn't event that much work.
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