A Failed Programming Project

Sometimes you have to recognize when something is going nowhere. I have dozens of programming projects where I’ve lost interest, but this is one of the first where I’ve actually hit a technical wall and have to walk away.

This started with my upgraded Powerbook G4. I wanted to play with the programming tools on there and build something. I settled on what I thought was an interesting challenge: a podcast player for classic Mac OS 9. I recognized some of the early hurdles: no native XML parsing in the toolchains back then (podcasts are driven by RSS feeds, which are XML) and no ability to connect to TLS 1.x encrypted web servers (HTTPS is how you access a lot of podcast RSS feeds). To work around this, I created a web service that proxied the calls. The web service is made with modern tools, no problem accessing the podcasts.

I even documented it.

By making a service that the primitive code technology could call, I could sidestep a lot of issues:

  • Connect to HTTPS and then expose the content as HTTP
  • Parse the XML and then expose it as a simple text format
  • Download and resize images

It was going pretty well, and I even had the app playing an episode of the Esri Canada Geographical Thinking podcast. But then I started trying to play episodes from other podcasts and they wouldn’t load into the QuickTime player component.

Showing successful loading of the podcast. Some UI is rough, apologies.

It turns out that the whole thing was a house of cards: the one part that I thought was in the bag was that the QuickTime library would be able to play MP3 files. But apparently even that technology has moved forward in 21 years. I started testing more podcasts and found that more failed than succeeded. I considered making the server-side code transcode the episodes but I couldn’t figure out the magic settings that would result in it working. Besides, transcoding podcasts is a losing proposition: very computationally expensive. If I put out this software with it transcoding every episode that users listened to, I would have a thousand-dollar cloud computing bill every month.

The only alternative would be to parse the MP3 files myself (it’s a well-known format), but that’s not the kind of project I signed up for. I’ll have to put this aside. I can take pride in what I made, even if the end has arrived. ðŸŠĶ

Now to move on to something else.