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

OPML in the wild

Dave Winer posted a few days ago that he was looking for examples of OPML in “production”. I assume that means “being used by someone or in an app”. I thought I would contribute a few items…

Zylstra.org – Ton Zijlstra’s OPML blog roll in a human readable form (reference)

Zylstra.org – Ton Zijlstra’s booklist in OPML (reference)

AndySylvester.com – Andy’s beginning booklist in OPML (reference)

AndySylvester.com – Reading lists in OPML for the River5 feed reader/aggregator

 

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!

 

Federated Bookshelves Update #1

Ton gave me a suggestion to refer to the XSL file on my local domain. I did this, but still only saw the raw OPML appear. After some thinking, I thought about MIME types, and wondered if this was set up on my web hosting to serve OPML as XML. I uploaded a copy of the file with a .xml extension, and everything worked! I have found some resources for updating MIME types, will post later after some experimenting.

Getting started with Federated Bookshelves

Some time ago, I read a post from Ton Zijlstra on the concept of federated bookshelves. His original post was riffing on an idea by Tom Critchlow called Library-JSON. Recently, Ton revisited this topic, and in a short period of time created a working prototype OPML file and a XSL stylesheet to view the OPML file.

I finally had some time this weekend to play around with this. Here is my work so far:

I had some problems using Ton’s XSL file. On my server, when I entered the URL of the OPML file, all that was displayed was the OPML file. However, I found a tool to apply the XSL transformation, and the resulting file was a valid HTML page (the “transformed file” above). I will continue to investigate this and also reach out to Ton to see if I did something wrong.

My new book – coming soon!

After my work on setting up Portland Protest News, I spent a lot of time documenting the tools and processes I used to create the site and its enhancements. This work will soon be available in paperback from Lulu.com! Here is the back cover copy for “Set Up Your Own Platform: How to create and own your website, newsletter, and social media presence”, more news coming soon…

===

Wouldn’t you like to have your own platform for your personal or business website instead of depending on Facebook or other website creation services? This manual is a complete step-by-step guide on how to create and launch a WordPress website, create a newsletter for your site using a WordPress plugin, and manage your social media presence. By using this guide, you will be in control of your presence on the World Wide Web!

You will discover how easy it is to:

  • Create a WordPress website
  • Buy a domain name and assign it to your website
  • Customize your site through themes and social media links
  • Use a WordPress plugin to create a site newsletter to attract and engage readers
  • How to set up a Linux virtual server for just $5/month
  • Use a virtual server to run applications to enhance your site

Andy Sylvester is the author of four books on microblogging, using and creating web applications, and web server setup. He has worked in software development for over 36 years in the aerospace industry, academia, and government research and development.

This guide shows you how to make your place on the Web. What are you waiting for?

 

A first look at Bookdown for book publishing

I recently completed the first draft of a book using Google Docs (subject is how to create a social media presence through your own web site and newsletter), but when I saved a copy as a PDF, it did not look as good as I would like. I had been considering trying out Scribus (an open source desktop publishing tool), but had read about the Bookdown toolset when I was looking at some resources on the R programming language. This weekend, I decided to install the toolset and see how much effort that took and what the results looked like.

The creator of Bookdown has written a book on how to create books with Bookdown, so I thought I would start there with the Get Started page/section. I downloaded a repo from Github containing a demo book. Next, I downloaded and installed RStudio, which is supposed to be used to create the book. In the process of installation and startup, I found out that I needed to download and install R as well – ooops! Funny how this was not mentioned in the Get Started page….

The next step was to install the bookdown package using the R IDE. However, there was a popup asking if I wanted to set up a separate library. I clicked “No” and tried to install, but got the error message that the R library was not writable. After some searching, I found this Stack Exchange post that addressed this problem…again, interesting that this was not in the book.

Finally, I got the bookdown package installed, opened the demo book, and was able to build the book in HTML form. The console displaying info on the build process showed some errors in generating ePub and PDF versions of the book. The Get Started page indicated that another toolset (TinyTek) was needed for the PDF output. I used the Windows batch file to install Tiny Tek, and went ahead and restarted all the apps (R, RStudio). I then rebuilt the book, it took 1-2 minutes to generate the demo book in PDF form. It had a few pagination problems, but looked ok. Overall, I spent about an hour working through these steps. I will explore it some more, but will also check out Scribus as well. To me, I would have to go through some effort to convert my book draft to R Markdown. If Scribus could create a book with less work, I might head in that direction.

 

 

Inadvertant research of the longevity of Post-It Notes

This past week, I spent several days in the main building of my company, doing some software testing. When I was working in my cubicle (a little over a year ago), I used a whiteboard and Post-It notes to create a kanban board. In my office visit, I saw that none of the Post-It notes had fallen, meaning that the adhesive lasted at least a year – amazing! I decided that the objective of my inadverant test had been met, and removed some of the Post-It notes (the ones in the Done column), with a plan to review and remove the rest of the notes next week. Science in the workplace!

 

How to remove a crank arm from a recumbent exercise bike

Problem: Left crank arm started moving during bike use, looked like threads were stripped. Decided to replace left crank arm and left pedal.

Tried to get a treadmill repair shop to fix this, but when they tried to get the crank arm and pedal parts, the shop said it was back-ordered for several months, no ETA.

Decided to try looking myself, SchwinnFitness.com site did not have the parts online, had to call customer service, had 20 minute wait, then ordering took 15-20 minutes (ugh!). Took two weeks for parts to arrive, started work.

Removed pedal (left pedal is reverse-threaded, read this somewhere, repair manual also mentioned it). (page 24 in repair manual)

Removed red cap on crank arm using a flathead screwdriver, sprayed some WD-40 lubricant into the shaft, then used 9/16th inch socket wrench to remove bolt holding crank arm to shaft. Discovered that I needed a crank puller tool to remove the crank arm (UGH!).

Ordered crank puller from Nautilus site (link below), could have gotten it from SchwinnFitness.com, took 2.5 weeks for part to arrive.

Crank puller had instructions on bag, but they were not totally clear. It turns out that the crank puller has two removable tips that are used to provide pressure on the shaft to remove the crank. The video (link above) indicates that for Schwinn indoor cycling bikes, the larger tip should be used. However, I discovered through trial and error that the smaller tip has to be used for the 270 model recumbent bike. The tips are removable (I had to use a towel/washcloth to get enough grip on the tips to remove them). The desired tip goes on the end of the crank puller that has the large threaded nut (see 0:20-0:28 in video for a good photo, also page 27 in repair manual, see picture below).

Before attempting to insert the crank puller into the crank arm shaft opening, the threaded nut (CP2) should be un-threaded such that the end of the threaded nut is at the same position as the tip (CP1). This is done to provide maximum room for the inside bolt to travel and press against the frame to remove the crank arm.

The threaded nut (CP2) should be inserted into the crank arm shaft and screwed in clockwise as far as it will go. At that point, use a wrench to tighten, then use a wrench to rotate the CP3 end of the crank puller clockwise. As the thread turns, the tip end (CP1) will press against the frame and push the crank arm off the shaft.

When putting the new crank arm on the shaft, make sure that the arm is oriented 180 degrees opposite the other crank arm (otherwise pedaling will be difficult!). The crank puller is not needed to put on the new crank arm, it should fit onto the crank. A few taps from a hammer on the crank arm will make sure that the crank arm is fully seated on the shaft. Replace the hex head bolt using the socket wrench as mentioned above, then replace the cap.

At this point, the new pedal can be put on the end of the crank arm (remember the left pedal is reverse-threaded).

Resources:

https://www.youtube.com/watch?v=sL-HnsnqcUs

Video that best shows how to use a crank (arm) puller

https://download.nautilus.com/supportdocs/AM_OM/Schwinn/SCH.230-270.MY13.SM.pdf

Schwinn 270 Recumbent Bike Service Manual (2013 models)

tem Quantity Unit Price Subtotal Discount Item Total
74025 TOOL, CRANK PULLER 1 18.99 18.99 18.99

Tax: $.00

Shipping: $4.99

Order Total: $23.98

Item from Nautilus parts web site:

https://www.nautilus.com/crank-puller/74025.html#q=crank%2Bpuller&start=1

 

8003334 PEDAL ASSEMBLY, LEFT, MY13(BIG STRAP) 1 4.24 4.24 4.24
8001394 CRANK ARM LEFT 1 4.83 4.83 4.83

 

Items from Schwinn web site (had to call Customer Service to order (800-556-2896), did not appear on parts web site)

https://www.schwinnfitness.com/schwinn-replacement-parts/

Parts from Schwinn 270 recumbent bike manual: (https://download.nautilus.com/supportdocs/AM_OM/Schwinn/SCH.270.MY17.AM.OM.WARR.EN.pdf)

J Pedal, Left

P Crank Arm

https://www.youtube.com/watch?v=qmtaARlUmMY
An excellent presentation from Andrew Shell on improving your personal productivity, I got several good ideas from this, definitely worth your time.