After a few nights, I have successfully implemented the Easy News Topics (ENT) tags in my Radio Userland RSS feed. It wasn’t as easy as I thought it would be. It involved rummaging through my blog’s Radio.root file and improving my skills in UserTalk, Radio Userland’s programming language. But mostly I leaned on the shoulders of giants to do this, Dave Winer and Matt Mower in particular.
ENT is an extension of the RSS2.0 specification. Its objective is to allow the categorization of RSS elements in topics. After reading about ENT and writing one of my first articles on RSS topics, I decided that I wanted to implement ENT in my weblog. After an initial search, I came across an article by Dave Winer called “How to Extend the Radio RSS Generator.” This introduced me to 3 new “callbacks” that allow radio developers to modify their RSS feeds. The callbacks are: writeRssNamespace, writeRssChannelElement, writeRssItemElement. The first one that I implemented successfully was the namespace. I did this as follows:
1. Open your Radio.root.2 file. Dig into user.radio.callbacks. 3. Double click on writeRssNamespace, then rename “item # 1” to “ent.” 4. Enter the linked script here 5. Click “Compile.”
That was relatively easy. The implementation of the element elements turned out to be more complicated, particularly since the elements have attributes and are nested. It took me a while to get familiar with the UserTalk syntax, not being a programmer by trade. I stumbled a bit and got to a point where I almost had the script right. Then I came across Matt Mower’s conversation with Dave Winer and things finally fell into place. Here is my code for the writeRssItemElement script, the same process as above.
But wait, there is more. Because ENT tags are nested, there is one more part of the script you need to perform: modifying writeRssFile. But thankfully Matt Mower, one of the ENT authors, has already done the work – right-click here to download the script. Open it in your Radio app and it will automatically save to Radio.root’s workspace. Then you need to copy it to the following location:system.verbs.builtins.radio.weblog.writeRssfile
By the way, as a side note, writeRssfile is just one of the many very clever scripts built into Radio. It’s amazing how much data is on Radio.root, once you’ve skimmed it. It’s a testament to the amount of work Dave Winer must have put into building Radio Userland, so I sympathize with his recent posts about paid software developers.
Anyway, that’s basically it for ENT implementation stage 1 in my Radio RSS feed. Stage 2 is to put some worthwhile data in my theme tags; I currently only have dummy data there. Ideally, I want to dynamically generate a topic word or phrase for each weblog post, based on the post content and / or title. But I guess this is where k-collector comes in. So that’s my next project, finding out about k-collector and putting some meaningful data in my shiny new ENT tags 🙂