Another OPML viewer for Federated Bookshelves

I am playing with a new toolkit from Dave Winer for working with OPML (https://github.com/scripting/opmlPackage), and modified the client example to read my booklist file – nice!

A reader wanted instructions on how I did this, so here they are:

  • Download the zip file from the Github repo
  • Edit code.js in the client folder to provide a URL for an OPML file that is available on the web
  • Upload the files to some web hosting
  • Go to index.html to view the OPML file

Bookmarked Building a WordPress Theme From Scratch (joseph-dickson.com)

I’m a fan of using WordPress to build custom websites. So I’ve decided to start a tutorial series and share how I go about building a theme from scratch. No frameworks or starter themes. The Sketch Sketch of the theme’s design The layout sketch
Before even setting up my development environment I…

via Chris Aldrich

Is good code boring?

Juraj Malenica writes saying “You should develop boring code”. His post highlights the following:

  • Make your code readable
  • Keep your code predictable
  • Your code is your documentation

If we take these as attributes of “boring code”, are these also attributes of “good code”? Let’s take a look.

Code readability (the ability to understand a source code function) is a good one. For most of my career, I have been working with existing code bases, and ability to understand what has been done before is very important. Working in the avionics industry, requirements and traceability go a long way towards helping understanding legacy software. If this is not available, avoiding the use of difficult-to-understand coding techniques can enhance readability.

In Juraj’s post, code predictability covers naming conventions for parameters/functions/files. For the projects I have worked on, coding standards help to define these conventions. Juraj mentioned a Python standard, there are many available.

Finally, code as documentation is a good goal. If there is no other project documentation, the source code should contain all the information necessary for another developer/engineer to pick up the code and add new features.

After this review, I would say these “boring” elements are also included in code that would be considered “good”. Is this everything needed? No (it is necessary, but not sufficent), but this is a good start.

How can we work together on the open web and on software development

I have been in several conversations in the last week (voice and email) where the concept of “working together” in software development came up, and several threads emerged:

  • how the original developer doesn’t/shouldn’t have to do everything – others can contribute (to me, a key concept in open source)
  • how interested/engaged users can be an important force in the direction in which a software application or tool goes forward

Dave Winer has written about this many times:

I have tried to follow that second point in several ways:

I am getting ready to start working in the computer music area again after a long absence, and I am reviewing available tools to see if they fit the areas I am interested in. In that way, I am trying to practice the concepts of working together as I have outlined above.

Anyone want to work together with me? Let me know!

Enabling reverse order display of posts in Hugo for Book theme

In an earlier post, I mentioned an issue with rendering a website built with Hugo. In the build command, I had to specify the theme. Jack Baty pointed out the theme could also be added to a configuration file (config.toml) so as not to have to enter it each time at the command line.

My next problem was that I wanted the blog post part of the Book theme to display the posts in reverse chronological order. However, it was displaying my post in the middle of the example posts, and I could not figure out what was driving the order. Jack Baty suggested looking at the template file in /layouts/posts/list.html. I looked at that file in the Book theme directory, and started looking at the lists page on the Hugo documentation site. After some reading, I found an example that showed how to display content in reverse order based on the date specified within the file. I changed the third line in the file from:

{{ range sort .Paginator.Pages }}

to

{{ range .Pages.ByDate.Reverse }}

I also edited the Date field in the posts to all have the same format:

date: “2019-06-03”

Once I did that, I got the results i was looking for – hurray! It would have been nice if the theme had done this “out of the box”, but at least I figured it out.

 

Rendering a static site in Hugo

I am working on a project using the Hugo static site generator with the Book theme. When I looked at this command page, it looked like typing the word “hugo” at the base directory of my site would render the site to the public folder. However, when I did that, no index.html file was generated – grr! After some more searching, I figured out that if you are using a theme (like I am), the theme needs to be specified (“hugo -t book”). Once I added that flag, it worked! Oh, the joy….