The AwkEng Revives an Old Project

Hi all!

Today’s post is about reviving an old project of mine, the BusSign. In my perpetual quest to Stay Off the Internet and Also Stay Off Smartphones, I wanted a display to predict when the next bus would arrive for the stops outside my house. I really wanted the look and feel of a 7 segment display (and definitely NOT a display with pixels!) and this is what I built:

I intentionally chose not to commercialize the BusSign, because I knew that the software maintenance for it was going to be a hassle. Eight years later (and I know it’s been that long from the time stamps on my code commits), the bus routes have changed, there’s a brand new train line, and the NextBus API, which provided the bus prediction data, was shut down entirely.

So yes, had these been in the field, I would have been under the gun to keep them working. For a personal project, I had the option to just unplug the thing, which is what happened.

The BusSign sat idle for several years, but now I take the city bus to school each morning with my kids. The Transit app became pretty indispensable, but it meant using a smart device (either smartphone or tablet) each day, which is really just a slippery slope to distraction for me.

So I dug back into the old codebase to update the XML reader to parse a newer JSON API that Boston’s MBTA now publishes for their own routes. That was pretty easy (ChatGPT was very good at this. In fact, scary good. I just gave it the bus stop IDs as a prompt and it knew the right endpoints to hit for the MBTA and also the associated plain English names for the stops.) The trickier part was trying to understand the driver I’d written for the 7 segment display. It took a single string as input and I had to scratch my head for a little while to figure out what I’d done. Code readability is a real thing, and apparently, I wasn’t thinking about that 8 years ago when I was just hacking things together.

Anyway… it took the morning and a good cup of coffee, but it’s up and running again, and now I don’t need a device with a screen to start my day. Plus, my kids can read it, too.

Maybe I’ll work on a weather display, next.

best regards Sam Feller aka THE Awkward Engineer

P.S. this old XKCD came to mind while working on this project and it still hits home for me.


Leave a comment

Please note, comments must be approved before they are published