Open letter to Dave Winer’s call to develop feed-based social media apps

On December 3, Dave Winer published a “call to develop” for a feed-based social media app (he mentioned Mastodon in his post, but could be any social media app out there in my opinion). Sounds great to me! I have a feed-based app using rssCloud for notification called MyStatusTool (link to Github repo and my install). It is implemented using Node.js, Express, and Embedded Javascript for templating. It inspired Colin Walker to develop a PHP implementation of the tool (Github repo, his install). We were able to use our tools to interop with each other (have a real-time conversation), and to follow other feeds using rssCloud for notification. I have tested my implementation with the rssCloud user feeds from FeedLand and WordPress.com in addition to Colin Walker’s MyStatusTool implementation, and verified the real-time performance (new posts showed up almost immediately).

Now, is MyStatusTool a fully-developed thing? Nope! It’s a bootstrap. It does use a number of Node packages developed by Dave Winer for feed generation and feed reading, and uses Andrew Shell’s rssCloud server for notification, so I think it falls into the “working together” category that Dave Winer wrote about in 2015: “When you have a choice, instead of re-inventing someone else’s work, use it.”

I am ready to work for interop with whatever Dave develops. I don’t have any illusion that MyStatusTool is the epiphany of feed-based social media tools, but I developed it to see if one could be developed, and it spawned another implementation, so I think that is pretty cool. Let’s get busy and see what happens!

Solved my problem with WordPress caching

For a long time, I have had problems with apparent caching of WordPress RSS feeds. In my recent work on WordPress support for rssCloud, I eventually was able to get a notification about a WordPress update from the RSS Cloud plugin, but the content of the feed did not update. I spent some time on this again this week, and decided to search for “wordpress caching issues bluehost” (since Bluehost is my hosting service). I found this post on ThemeSkills which described a feature within the Bluehost interface that controls caching on a site-by-site basis. After reading through the post, I was able to turn off caching on my test site for RSS Cloud. I then made a post on that site and saw the update within seconds on FeedLand and MyStatusTool, and saw the latest post display – at last!

Here are the steps:

  • Log into Bluehost account
  • Click on the My Sites link on the left navigation bar
  • Scroll to the site to review and click the Manage button
  • Click on the Performance tab
  • In the Cache Settings area of the page, slide the slider all the way to the left. If it is already there, move it to the right to the Blog area, then back all the way to the left
  • A pop-up will appear, click on the Disable Caching button

PS – Here is a Bluehost page on this topic as well

Demo of MyStatusTool – Twitter using RSS and rssCloud

I have created a proof of concept for a microblogging tool relying on RSS for data storage and rssCloud for notification. I was motivated to do this to show how rssCloud could be used to support a Twitter-like experience. Also, I was blocked for posting an innocuous comment on the FeedLand user feed tool, and felt that there needed to be an alternative to that tool for microblog posting. My earlier posts on the development of this tool are here and here.

In this demo app, the basic functions are:

  • Ability to make a short post
  • When a post is made, a RSS feed is updated, a separate page for the post is created, and the post appears on the home page via Websockets
  • The tool provides hosting for the RSS feed and posts created
  • The tool can display updates to any RSS feeds that support the rssCloud protocol via Websockets (feeds are listed in a configuration file)
  • The contents of the feeds in the configuration file are displayed when the user accesses the page (so they can see what has been posted recently), then any posts with the tool appear at the top of the page

The tool is set up for a single user and requires some configuration. Please consult the README on the Github repo for more information if you want to set up the tool for yourself.

The demo app is available at http://fedwiki.andysylvester.com:443/. The contents of the feeds in the configuration file are displayed, along with any recent posts using the demo app. I encourage people to try making posts and see how they appear and how quickly they appear. As posts continue, so will display of updates to the RSS feeds in the configuration file.

This is a proof of concept, but will be further developed. If you find problems in the tool, or want to suggest features, feel free to create an issue in the Github repo. Also, I would love it if a few other people try installing it and let me know how it goes…

A roadmap for MyStatusTool

Yesterday, I mentioned that I was working on a blog tool not ready to show off yet. Since then, I thought I should follow Colin Walker’s lead in describing some of what I am developing. The working title is MyStatusTool, you can think of it as “Twitter using rssCloud”. The minimum functionality I am working toward is to have a text box to enter a short post, to create a RSS feed based on the posts, for each post to have a page, to ping a rssCloud server when a post is live, to have the posts be displayed in reverse-chronological order, and to display posts from other tools that create RSS feeds supporting rssCloud. This pretty much describes the “Read user feeds…” functionality in FeedLand (link works if you have a FeedLand account). You can also think of the Twitter web user interface as an example. I will probably create a temp Github repo soon to start putting the app under version control. Stay tuned for more updates!

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:

Screen capture from Github repo issue

…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.

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.

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.