Published: Sun, 22 Dec 2024 19:00:06 -0800
As I mentioned in my last post, I'm re-writing my RSS feed reader, Feedie. With Winter break going on, it has been the main thing I have been doing for the past week or so. I've made pretty good progress and have mapped out how it's going to work in my mind. The one thing that frustrated me was writing a parser for Atom feeds.
Atom feeds kinda suck. While the Atom standard is fairly well defined, the implementations are kinda all over the place. Some use a combination of RSS and Atom XML elements, some prepend each tag name with "atom:", some identify themselves as Atom feeds, i.e. using "xnls=http://www.w3.org/2005/Atom", while actually just being RSS feeds. This is bad. Instead just checking for one element, you have to check for multiple, some of which are nested inside other elements. Additionally, they complicate it further by placing some things in the text values of the XML element, while putting others (mostly urls) in the attributes of it. In the end it's not difficult to parse. I just copyied the RSS parser code and added a few more values to check for. But still, since there is a standard, it's frustrating that it isn't followed.
The worst part is that it muddies everything up while not adding that much new functionality. All of it could have just been done by extending the RSS specification, something which is supported from within the RSS specification, but no, we have to have a nearly identical standard with a few things renamed.
I'm excited to get Feedie to a working state. The back-end is almost done and I'm intrigued by NotCurses for using in the front end. ChatGPT has come in handy a few times for writing very basic, but repetitive code. Even if this project is all for naught, I've gained a better understanding of C++. I see why there is a lot of hate for it online, but dammit I like it.
I regularly check my email, If I don't respond quickly, send me a poke:
jasco.website@pm.me