Recent routes now stand out a little better thanks to @sdaro.bsky.social! #mbta
ttimes.boston
Recent routes now stand out a little better thanks to @sdaro.bsky.social! #mbta
ttimes.boston
The status of a vehicle that is accepting passengers but hasn't yet departed is now rendered in a clearer way – "bus is preparing to depart".
Previously, it would render as "bus is X stops away", which sounded like it was in motion.
ttimes.boston #mbta 👈 🚌
Ok... the routes refresh button works similarly. There is still some occasional flickering in the status line to debug.
There are still some kinks to work out – the code is a little nasty (trying to avoid JavaScript is hard) – but enjoy! 😎
Next up: a similar small overhaul of the main (all nearby routes) update behavior.
I've overhauled the update logic for an individual trip page a little bit.
Now,
• Trip info refreshes every 5 seconds, not 20, before the vehicle arrives at your stop
• There's a manual override for when your position is older than 10 seconds (see pic)
ttimes.boston 👈 🚍 #mbta
I'm on the /r/mbta subreddit again! (Well, I put myself there, but it's still exciting).
www.reddit.com/r/mbta/comme...
Please drop by to leave feedback if you have it. #MBTA
ttimes.boston 👈 🚌
Feature in the oven: a larger search area for "nearby routes".
A small part of the work involves building a simple geospatial index for identifying all nearby stops.
Behold: the entire area serviced by the #MBTA, divided into sections of approximately equal numbers of stops. 🤷♂️
ttimes.boston 👈 🚌
That's clever, I like it!
One small issue: any logo that is intentionally evocative of the MBTA's logo would probably have to go through a trademark attorney and/or get explicit permission from the MBTA.
Totally worth it though! Can you turn your idea into an SVG?
The great city of Malden is now officially represented in my database of polygons. That means if you're in Malden, you'll see "Routes near you in Malden" rather than the fallback "Routes near you". HUGE.
ttimes.boston 👍🚍 #mbta
In the trip details view, we show connecting routes for context.
But did you know (no, you didn't) that they're divided into two categories?
1. Routes that go through that stop (not inside parens).
2. Routes that go through a very nearby stop (inside parens).
Now you know! (But you'll forget.)
A privacy policy is a great idea. 👌
Will do 🙂
The city of Cambridge has officially-designated neighborhoods such as "Cambridgeport", which is why you see "Routes near you in Cambridgeport, Cambridge". The location you provided is resolved via a geospatial index to the enclosing neighborhood and city.
When you manually provide latitude and longitude, the behavior is identical to allowing geolocation permission (that is, that exact location is passed along to the MBTA API in order to fetch nearby predictions).
Hi, I'm sorry, I think you've misunderstood. I'm referring to my own comments, not yours, about how the app is open source and can be verified to match what's deployed, which only amount to "theoretical" appeals to your privacy.
Or am I the one who's misunderstood you? 🤔
And second, I agree there are some use cases that involve entering an address. For now, you can manually provide latitude and longitude query params, like this: ttimes.boston?latitude=42....
A fuller version of this feature may come, but that's what's there for now 👍
Those are theoretical appeals to your privacy. I understand that realistically, for an app so new and small, no one has bothered to comb through the source code looking for misuses of their data. But they could.
All of my source code is online (share.unison-lang.org/@mitchellwro...). Furthermore, because it's written in Unison, it's possible for you (yes you!) to verify that the deployed version is exactly the same. 😎
Ah ha!
First, I hope to earn your trust, and I'll note it should be easier than any app you've ever used.
Noted! Tell me more – do you use other transit apps (Google Maps, MBTA Go, etc) without allowing geolocation permission?
Thank you @eactuary.bsky.social for your kind donation! 🙏🚎
Everything is open source, and I'm happy to go into further details, but that's the gist! 👍🚍
• What does the queue contain, exactly, though? It's... ok, simplifying a little bit... route+stop pairs. So when you hop on route X at stop Y, we push X+Y to the queue. This allows us to effectively capture different sets of recent routes at different parts of the world.
• The data structure backing the recent trips is a simple queue. Whenever you click into a trip, its route gets bumped to the front. In particular, this design explicitly avoids trying to intelligently incorporate route frequency into the ranking. Goal: user should understand why a route is there.
Here's a breakdown of how this feature works and the rationale behind the design:
• We consider a route "taken" whenever you click into an actual trip's details view. While it won't capture every bus or train you ever hop on, it allows us to avoid having any new interaction (e.g. a button).
T Times now tracks your recent routes and pushes them to the top of the main screen!
ttimes.boston 👈 #mbta
Check it out 😎
The routes are now separated into two sections: nearby (0–10 minute walk to the nearest stop), and not as nearby (11+ minute walk to the stop).
I plan on expanding this to three sections: 0–10 minutes, 11–20 minutes, and 21–30 minutes.
Let me know what you think! 😎
/u/VibrantGlimmer63 and /u/hemidemi on Reddit both requested the routes be sorted by proximity.
I don't think that's a slam-dunk win, because it's easier to scan routes that are sorted alphabetically. But I do see the utility.
So I've implemented a middle ground!
ttimes.boston 👈 #mbta
The idea here is that when you check the app, you are likely ready to leave, but might need a few minutes.
So, it's useful to see e.g. "Arlington Center 5 34" (if 5 minutes is too tight), but not useful to see e.g. "Davis 37 55" (because 37 minutes is plenty).
What do you think? 👍👎
Seeking feedback for ttimes.boston! #mbta
/u/hemidemi on Reddit requested more than one upcoming trip on the home screen.
Here's a proposal: show all upcoming trips up to and including one that's more than 5 minutes out.