A dot can make all the difference

In my recent post on resistance, one of the quirks in the work tool (GNU Octave/Matlab) was trying to understand matrix math in a Matlab script. I wrote to the script author and gave my interpretation of the script, and the author said I was correct. When I tried to compare with my C language implementation, I got different results. What I discovered was that if it was “A * B”, that was regular matrix multiplication. However, if it was “A .* B”, THAT was element-wise matrix multiplication (totally different result). I tracked down some pages on the MathWorks website, then brought it up with the script author, who acknowledged he did not tell me about that…ugh. One of Julia Evans’ recent comics on debugging was a great help – thanks Julia!

The way ahead for RSS and podcasting

Dave Winer has released some new tools/apps using RSS this week, and referenced some recent posts on podcasting concerning innovation in that space. Both of these deserve some review and context.

The RSS tools Dave initially demonstrated showed mailbox-reader styles of displaying the content of a RSS feed. Next, Dave talked about two-way RSS as a method to connect outliners with other publishing systems. I voiced an opinion that I did not understand why RSS needed to be involved. With the Twitter + Markdown + RSS unveiling, my view of “the way ahead” is becoming a little clearer. A tool is used to create tweets which contain Markdown markup. Those tweets are sent to Twitter. At the same time, a RSS feed of the tweets is created containing Markdown markup. Finally, a feed reader app is consuming that RSS feed and rendering the Markdown markup in the presentation of the RSS feed. Now, where is the value added by this workflow/system? Twitter is not making use of the enhanced RSS feed, but another app is using those features. And – those features are enabled by the use of a namespace (the source namespace), a feature in RSS that has been there for a long, long time. This is a demonstration that new apps can be built around RSS and using RSS. Now, what else could be done with this RSS feed? Well, at some point, who needs Twitter? Someone could create an app or service that uses the RSS feed as the content container and notifies users when the feed has been updated. Historically, feed reader apps do this when you start the app (highlight new entries), or rivers of news display the new items at the top of the page. But it could be done in a much quicker manner, perhaps using some other protocol like Micropub/Microsub or XMPP. Dave Winer has written about this in 2016 (The Internet’s Twitter), 2011 (fractional horsepower Twitter feed), 2009 (Fractional Horsepower Twitters), again in 2009 (A Billion Twitters). I also wrote series of posts in 2016 where I also put forward that RSS could be the basis of an open messaging system.

Now, I will turn to podcasting. In the past week, Michael Mignano wrote about the lack of innovation in podcasting. Dave Winer commented that this is not the case. Alberto Betella then had an excellent reply to Mignano, pointing to the work Adam Curry has done on his Podcasting 2.0 initiative, supporting micropayments and other cool features. Again, the vehicle for innovation was using the RSS namespace feature. This is how the rest of the world can overcome the juggernauts of Spotify and others (which I have written about herehere, and here).

So – nothing keeping people from being innovative here – let’s get to work then!

I am taking a Udemy training course on Node.js development, and trying out Visual Studio Code because the instructor uses it in the course. Today, I wanted to print something, and found to my dismay that there was no native print function, just like Sublime Text. Why did these people think that users didn’t need to print some text file? Why? I am definitely keeping a copy of Notepad++ around – they know how to print!

Booklist Browser app update

This weekend, I moved my cut at Booklist Browser app requirements from the Github issue to its own page. Next, I took a cut at defining the possible domains for the Booklist Browser app, using concepts as described in “How to Engineer Software” by Steve Tockey (https://www.construx.com/books/how-to-engineer-software/). My next step will be to define use cases based on the domain definition and requirements.

Requirement brainstorm and some tools for Federated Bookshelves

I summarized requirement-type information from a number of posts on the Federated Bookshelves/Library JSON idea, see the Github repo for details. If anyone is interested in participating in a conversation on this topic, I have created a Github issue to capture comments.

Also, I found two tools today to more easily view OPML and JSON files:

  • OPML Viewer  – Can open an OPML file (local or online) and show original text and XML tree view
  • JSON Viewer   – Can open a JSON file (local or online) and show original text and object view

I added these to the tools section on the main Federated Bookshelves repo file.

Library JSON test viewer now available

I have created a test viewer for the Library JSON format as defined by Tom Critchlow. It reads a JSON file following the format and displays the elements in the JSON file. I have a working one on my website reading Tom Critchlow’s test file. I have added the HTML file for the viewer to the Federated Bookshelves Github repo.

Now that we have a simple way to view both OPML and Library JSON files, I am going to put some thoughts together on Github about the next items to work on….

A Federated Bookshelves reader

Recently, Ton Zijlstra wrote about the concept of “federated bookshelves”, in which he referenced a post by Tom Critchlow on a similar concept called “Library JSON”. I have played with this idea based on Ton’s proof of concept. I also read through the postings flowing from Tom Crichlow’s post in 2020, and the ones from Ton Zijlstra’s post this year, and thought it would be helpful to provide a chronology of the development of this idea. To this end, I have created a Github repo with a chronology and links to tools and other distributed book info concepts that I have come across in reading on this topic. Pull requests and other comments are welcome! I am planning to spend more time on this in the next few weeks, so hopefully more prototypes and ideas to come….

Federated Bookshelves Update #2

After reviewing a Selfoss issue on Github which described the behavior I saw in my first post on this topic:

This depends on the mime-detection on your server. You need to map .opml to the right mime-type application/xml in your webserver.

and this MDN page on updating mime types:

  • If you’re using the Apache web server, check the Media Types and Character Encodings section of Apache Configuration: .htaccess for examples of different document types and their corresponding MIME types.

I decided to look at my own web hosting to see if I could find and modify the .htaccess file. For Bluehost, there is an .htaccess file within the public_html folder. I thought I would start with this one and see how things went.

Looking at this example configuration file for media types from HTML5 Boilerplate project, I saw this:

AddType application/xml xml

I then added this line to my .htaccess file:

AddType application/xml opml

After uploading that addition, my OPML file renders the same way that Ton’s file doessuccess!