Top
Best
New

Posted by thimabi 10/23/2024

Never Missing the Train Again(lilymara.xyz)
371 points | 136 commentspage 2
mmoustafa 10/24/2024|
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 10/25/2024|
Android here. Have you looked at the amount of data this shares with third parties? No ads but holy hell. No thanks.
pkulak 10/24/2024||
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.

ramses0 10/24/2024||
R.I.P. Pebble:

https://developer.rebble.io/developer.pebble.com/community/a...

""" Caltrain is a Pebble app that displays upcoming trains at a station, and where those trains will stop along the remainder of each of their routes.

Finally, it uses PebbleKit JS to retrieve your location on launch. If it gets a response before you manually choose a station, it will automatically show the station closest to you. """

...you could literally map that "applet" to long-press on a button, and get the info in like 5 seconds.

For extra "dick tracy" spice, call an uber from your wristwatch with 3-4 clicks (long-press, ok, next, ok => "your uber will arrive in __ minutes"). Actually, reviewing the app docs, it looks like it was only two long-presses to request $LAST_USED_CAR to $CURRENT_LOCATION.

https://www.uber.com/blog/pebble-smartwatch/

https://pebble-help-legacy.rebble.io/help.getpebble.com/cust...

Buttons, people! Buttons!

hiatus 10/24/2024|
We've really taken steps backwards since pebble. We used to be able to respond to messages by talking into our wrists, for ~$100. I switched to Garmin after using rebble for a bit, and that's the feature I miss most.
ramses0 10/24/2024||
I'm the reverse, I never wanted to "input" to the wrist, but really appreciated the notifications, Bluetooth disconnect warnings, "the timeline" interface, and the necessarily limiting interface of 4 buttons (specifically: music control while in the shower... play/pause, next track, pick a station from a list, etc).

Totally understand how some loved the ability to compose/respond to messages, but that never made sense to me.

Garmin, Amazfit, and BangleJS comes close, but #buttons, #battery, and #b&w (well, always on, transflective, sunlight readable)

AStonesThrow 10/25/2024||
When realtime information was first available from my public transit system, it was via an SMS system that was widely advertised at every bus stop and train station, wherein each received a five-digit ID code. So you'd text that code to a special number, and it'd reply with the "NextRide" timings.

Unfortunately, it was wildly inaccurate. Every time I queried it, it said the bus had already left (I'd been standing there 10 minutes) or it didn't take into account active detours, or something. The only thing it was good for was determining the headways between buses (15, 20, 30 minutes?) and then you could at least calculate your longest wait at that stop.

The next iteration involved installing the bespoke and quite buggy app provided by the transit authority themselves. Now this theoretically depended on the same GPS trackers in the coaches as the SMS system had. But I had major troubles with the app, and I didn't like it, and it barely did anything else, and so I uninstalled it. And I did without it for a while longer.

Now the app is improved, and it's got QR pass technology included, so I reinstalled it, and I use it more. But, for tracking the buses, I prefer Google Maps.

Our transit authority graciously shares 100% real-time tracking info with Google, and you can track any bus in Maps, including crowdsourced info, such as "How crowded? Is security aboard?"

It works really well, and really accurate; displays every delay and updates by-the-minute as buses or trains pass each stop. Sometimes I pass the time just sitting there and watching my bus make its way down the street.

benjaminfh 10/25/2024||
I love the premise and I felt that a lot in SF. The transport system is not really a complex enough network that I need to be shown routing options. Just wanted to know when to leave the house and not stand at the stop for 20 minutes :’(

(In a highly networked place like London, seeing all options is helpful)

rgoldfinger 10/25/2024||
I made a (free and ad free) app for BART that tells you if you need to run to catch your train or not. Instantly upon opening the app, without needing to tap anything, it automatically figures out which train you want and helps you hurry, just a little bit, to make the next one rather than wait.

Feedback appreciated!

https://apps.apple.com/us/app/should-i-run/id933717076

javajosh 10/25/2024||
Wow what a cool writeup. Two things stuck out for me (I'm only halfway so forgive me if you address these issues). I have two comments on processing the 511.org data. First, you generally want to use a streaming parser rather than one that allocates memory to the entire response. Second, you should filter out the most data first (in this case, dropping the stops you don't care about) and then filter the least data second (dropping the fields you don't care about). This idea is similar to how, in SQL, you want to order your WHERE clauses such that the most impactful comes first.

This may not be strictly required by your use-case at this scale - 27MB of data is not a lot, after all. And the filter ordering performance is probably trivial given its all in memory (I'd be curious to see a benchmark!) However, a) efficiency is always good, especially on a Pi, and b) if you make the code more efficient it makes it easier to scale later if you want to.

Also, regarding the BOM problem you had, wouldn't it be nice if all APIs had a "developer feedback" mode built into it? That is, you can send feedback to the ppl who own the API endpoint by...posting to the endpoint. In this case you could send "Please remove the BOM. k thanks."

Aeolun 10/24/2024||
I love how they blamed the flake on node and Javascript, then switched to Rust and also changed the whole approach, which had a hundred times more effect than changing the language did.
FrecklySunbeam 10/24/2024||
I don't blame Node/JS for the reliability issues of the first version at all, they're simply not the tools that I prefer to work in.

> Each of the seven sections on the image represents a browser tab that Puppeteer needs to keep open in order to fetch screenshots. Remember that the Node.js server was running on a Raspberry Pi, it didn’t have an excess of memory to operate in and Chrome is not known for its svelte-ness.

> I picked Node.js for the first server because I was using Puppeteer. I don’t particularly like Javascript, so given the ability to start from scratch I happily pivoted to Rust.

> Next, since we’re not relying on a browser engine to render the display, we will be using a 2D graphics library to render a PNG directly. This should have a much lower resource cost than using an entire browser engine, at the cost of some decreased flexibility.

doesnt_know 10/24/2024||
I don't think they really blamed node and js? They seemed pretty aware that it was the overall arch of the thing that made it non-viable.

> Each of the seven sections on the image represents a browser tab that Puppeteer needs to keep open in order to fetch screenshots. Remember that the Node.js server was running on a Raspberry Pi, it didn’t have an excess of memory to operate in and Chrome is not known for its svelte-ness.

So then figuring they had to effectively redo it from scratch with a new solution, they then switched over to a language and stack they enjoyed, which seems completely reasonable.

> I picked Node.js for the first server because I was using Puppeteer. I don’t particularly like Javascript, so given the ability to start from scratch I happily pivoted to Rust.

edit: Just beaten and directly from the author it seems. :)

43920 10/24/2024||
Not to diminish OP’s project, but the stated goal of “know when each transit line has an upcoming train/tram/bus” is probably already achieved by https://transitapp.com/ - the default view when you open the app is a list of nearby transit lines, sorted by distance and showing the next departure for each.
julesallen 10/25/2024||
Like that there's no ads but it's a big no on the "data shared with third parties". Assuming this is how they make money? I'd rather wait 10 more mins for the bus I just missed.
n4r9 10/24/2024|||
You can also bring up a station's departure board in CityMapper by clicking on its marker in the map view.
Schiendelman 10/25/2024||
And Apple Maps has a built-in nearby transit button that does similar.
alilleybrinker 10/24/2024|
It ought to be easier to get a blank slate of a small device with some compute power and a screen, like the Kindle here, without having to jailbreak something.
RicoElectrico 10/24/2024||
There is one, it's called the Raspberry Pi ecosystem, but due to the small volume and the target audience largely being not-my-own-money (think educational institutions), the price is quite detached from the production cost.
6gvONxR4sf7o 10/24/2024|||
I think more of the issue might be the eink screens. As far as I can tell, there just aren't 5+ inch eink screens for cheap.
GeoAtreides 10/24/2024||
yes they are: https://www.waveshare.com/product/displays/e-paper.htm?___SI...

A 4.37inch E-Paper in 3 colors is $24, problem is need you to program yourself (they have code sample in python, for raspberry pi), and you need a raspberry pi, case, cables, etc.

Also, these cheap epaper displays are, of course, of lower quality (slower, lower resolution) than an kindle display.

6gvONxR4sf7o 10/24/2024|||
They jump up in price pretty quickly as size goes up. The cheapest 5+ inch display I found at your link was over $40, and it's about 100PPI. It's certainly not prohibitive, but certainly priced high compared to "just jailbreak a kindle" for any remotely kindle-comparable display, right? (remotely comparable in size and resolution)
FrecklySunbeam 10/24/2024||
I imagine the Kindle is sold as a loss leader, plus whatever economies of scale/negotiating Amazon does pushes the price down heavily vs buying a single unit from an electronics retailer
TRiG_Ireland 10/25/2024|||
They look kind of cool, and now I'm trying to come up with a project such that I can justify buying one.
nine_k 10/25/2024|||
Arduino-compatible devices based on ESP32 are plenty powerful enough at a fraction of the cost.
RicoElectrico 10/25/2024||
CPU is indeed beefy for a small wi-fi chip, but the small RAM hurts. Yeah, there's QSPI PSRAM but the bandwidth is lacking as well.
More comments...