I finished reading this Wired article on RSS revival via a Hacker News post. The two interesting things to me were the subscriber base of Feedly (13 million) and The Old Reader (1 million) – sounds like there is a market there. The other thing is that this story was written in MARCH 2018! And it’s getting this much traction on Hacker News? 50 comments? Give me a break – this is ridiculous! To me, this shows that RSS is a hot topic among Hacker News readers.
rssCloud, WordPress, FeedLand, and Dave Winer
This is an attempt to capture some work/events I have been involved with over the last few weeks regarding the rssCloud protocol. I hope this will provide some insights into software development and technical communication, and will be of use to others using the rssCloud protocol. I hope it will also demonstrate that it can be difficult to identify/isolate problems between multiple apps/web services/web sites, and that all involved in the discussion should adopt a mindset of “follow the data” and be open to input from others.
rssCloud is a notification protocol that uses a “cloud” element in a RSS feed. This element contains information on a cloud server that is supporting this feed. A feed reader app can read the RSS feed and register with the server listed in the cloud element to be notified when the feed updates. The producer of the RSS feed can then “ping” the server to let it know that updates are available, and the server can inform apps that registered that feed that updates are available. The cloud element was included in version 2.0 of the RSS specification.
The protocol has been supported in the blogging tools that Dave Winer developed since 2001 (Radio Userland (feed reader/blogging) and Manila (blogging)). Since that time, several other tools added support for adding the cloud element to RSS feeds (Django, Perl XML-RSS, and syndic-rss2). In 2009, Matt Mullenweg announced that WordPress.com blogs would support rssCloud, and that a plugin would be available for WordPress.org blogs. A unique feature of the WordPress implementation is that the WordPress blog itself is the cloud server. A result of this was that a user did not have to find a rssCloud server for their feed to reference – their own site could handle feed registrations and notifications to feed reader apps. This created a supply of literally millions of weblogs that could support quick notifications to their readers if their reading app supported the use of rssCloud. However, for the most part, only feed readers and apps developed by Dave Winer supported the protocol (River2 (OPML Editor app), River4 and River5 (Node.js apps), Radio3 (Node.js) and now FeedLand (Node.js)).
Some users noted issues with rssCloud support back in 2009 as WordPress.com rolled out its rssCloud support. One of the posts from this period highlighted the problems with registering an application with the rssCloud server associated with the WordPress.com blog. I began looking at rssCloud in 2015 and 2016 with limited success, and tried to develop a separate plugin, but had issues. I have been aware for several years that there were problems with River5 working with WordPress.com blogs and WordPress.org blogs in terms of rssCloud support, but I did not have the Node.js knowledge to adequately figure out the issue.
After the rollout of FeedLand (Dave Winer’s latest feed application), a user, Colin Walker, started asking questions about rssCloud so that he could support it in his custom blog/reader application, and Dave Winer said he wanted people to ask questions about rssCloud, so I thought this was the right time to bring up the WordPress.com problem and document it to the best of my ability. I also tried to not say that it was a FeedLand problem, but to me the end result was that FeedLand was not doing what WordPress.com wanted to support rssCloud. Since Joseph Scott indicated that the WordPress.com implementation would not be changing, it was FeedLand that had to change (and other rssCloud apps that might want to say that they work with WordPress.com blogs). I didn’t get much, if any, credit for bringing this up, but I did identify the problem and tried to provide the level of info that Dave Winer seems to want/need before looking into a problem. During the investigation, Andrew Shell determined that the WordPress cloud server would only respond to requests from ports 80, 443, and 8080. This fact alone would be a valid explanation of why River5 (which ran on a default port of 1337) would not be able to register with a WordPress site or get notifications. However, this was not documented in any of the WordPress posts listed above regarding rollout of RSS Cloud support.
Dave Winer then published a reference app for testing rssCloud implementations (https://github.com/scripting/reallysimple/tree/main/demos/clouddemo). I tried to comment on the reallySimple repo, but I saw this:
…so I posted my report on my own blog.
I checked, and saw that Github does have moderation features which allow repo owners to block people. I assume this is what has happened. I am also going to assume that this is from my comment on the earlier Github thread where I called out Dave’s negative request for help with rssCloud issues. Being his repo, he can do what he wants. However, to me that does not give the impression that Dave is open to feedback, even though he asked for feedback at the top of the issue (I guess it was just my feedback he did not want). I later checked and saw that I saw the same response on other repos within github.com/scripting, so I assume I am blocked from all of those repos.
This is not the first time I have identified problems in how Dave Winer approaches comments about him or his products. I know he has “guidelines” to handle feedback, and that is his right. At this time in my life (I turned 60 earlier this year, I know Dave is 67-68), I tend more to “call it like I see it” in as factual a manner as I can. If that is what Dave Winer thinks of as “trolls, spammers, and abusers“, I can’t do anything about that. However, I don’t think I fit into any of those categories.
With the help of Andrew Shell, Dave Winer was able to update FeedLand so that it supports display of WordPress.com and WordPress.org blog posts in near-real-time. I am seeing some RSS feed caching issues with WordPress, which I am continuing to document on a Github gist thread. Joseph Scott of Automattic has been very helpful with ideas. I was able to demonstrate that the new version of the rssCloud plugin (0.5.0) supported registration and notification with FeedLand, but subsequent tests with test scripts are showing the RSS feed caching problem I saw last week.
I have a rssCloud project in mind that I would like to develop, but I want all WordPress users to be able to take advantage of rssCloud. Hopefully, this will become a reality soon.
Great video of the Boeing 787 HUD!
Using podcasting as a teaching tool
Earlier this month, John Johnston wrote about his experience with student podcasting:
We are trying to give our class motivation to practise their talking, listening, reading and writing. Communication with their peers and an audience. For me simple podcasting provides a great opportunity for that.
via John Johnston
I think this is terrific – more teachers should use podcasting as a technique to increase literacy skills.
Simon Willison’s recent talk at Django 2022 (Comping strategies for the serial project hoarder) is fascinating! His proposal is to ensure that every project has comprehensive documentation and automated tests. I am going to seriously look into this! (via Roland Tanglao)
Lazyweb followup – After some testing with opmlPackage, I figured out that I needed to get the OPML of my Zettelkasten file using this URL and then selecting View Source and copying. Once I did that, I was able to process it using Pandoc.
Test results for rssCloud app from Dave Winer
I couldn’t leave a comment on the reallySimple repo for clouddemo.js (it appears to be locked), so I am writing a blog post. I was able to run the app on port 443 and successfully register a WordPress.com site and a WordPress.org site using version 0.5.0 of the WordPress RSS Cloud plugin. When I ran my separate test script on the WordPress.org site, it worked, but I figured out that the WordPress.org site is caching the RSS feed, which explains why feed updates were not seen by FeedLand.
The code for clouddemo.js looks good, I am pleased that it could run on port 443, since I already had an app running on port 80 on my server and did not want to change it.
Lazyweb request – I tried converting my OPML Zettelkasten file into Markdown using Pandoc, but got an “Invalid XML” error, because I have URLs within the outline elements. Any suggestions for fixing this? I am looking at opmlToJs to get the OPML in JSON, then use sanitize-html to escape the URLs, then write it back out using opmlToJs. Other suggestions welcome!
I was able to confirm this morning that rssCloud support in FeedLand worked for my WordPress.com test site – hurray! Many thanks to Andrew Shell and Dave Winer for working things out, along with support from Joseph Scott at Automattic. Joseph Scott released a new version of the RSS Cloud plugin today for WordPress.org sites, I did an initial test, but FeedLand did not get a rssCloud update from my test site. I got some debug ideas from Joseph Scott, working on those now.
Update: I figured out that Gary Teter’s post I referenced on December 10 was not deleted from the FeedLand user view, so looks like it was my post that brought in the comment guidelines. I apologize for the error.