Another whiny post about Hugo breaking a site

I decided I wanted to experiment with my linkblog again, which uses the Hugo SSG tool. However, I upgraded my Hugo installation sometime in the last 3 months, so I had a feeling there was going to be some breakage, and I was correct. When I tried to rebuild the site as-is, I got this kind of error:

ERROR error building site: html/template:_partials/disqus.html:1:12: no such template “_internal/disqus.html”

After some searching, it appeared that the latest version of Hugo made some changes in the default structure for Hugo sites (ugh) and the recommendation was to see if theme owners had made updates. I then decided to get the latest version of the Anubis2 Hugo theme, and to move the content folder to the main directory instead of the example-site folder.

The next error blocking a rebuild was the following:

ERROR The “twitter”, “tweet”, and “twitter_simple” shortcodes were deprecated in v0.142.0 and removed in v0.156.0. Please use the “x” shortcode instead.

I then removed “twitter” and “tweet” shortcodes from several posts to clear the above error. This led to the next error:

ERROR error building site: render: [en v1.0.0 guest] failed to render pages: render of “C:/Hugo/hugo-theme-anubis2-main_update_Sept2026/main/content/posts/demo-code-pre-kbd-mark.md” failed: “C:\Hugo\hugo-theme-anubis2-main_update_Sept2026\main\layouts\baseof.html:14:11”: execute of template failed: template: page.html:14:11: executing “head” at <partial “head/head.html” .>: error calling partial: “C:\Hugo\hugo-theme-anubis2-main_update_Sept2026\main\layouts_partials\head\head.html:76:5”: execute of template failed: template: _partials/head/head.html:76:5: executing “_partials/head/head.html” at <partial “resource.html” (dict “context” $ “type” “js” “filename” .)>: error calling partial: “C:\Hugo\hugo-theme-anubis2-main_update_Sept2026\main\layouts_partials\resource.html:8:25”: execute of template failed: template: _partials/resource.html:8:25: executing “_partials/resource.html” at <resources.Get>: error calling Get: CreateFile C:\Hugo\hugo-theme-anubis2-main_update_Sept2026\main\assets\https:\cdn.jsdelivr.net\npm@tailwindcss\browser@4: The filename, directory name, or volume label syntax is incorrect.

At this point, I felt I should look at some other options. I reviewed some themes and tutorials for the Eleventy SSG but the first tutorial I tried had an error. I then went to the main site, and the “Get Started” page barely created a single page. I reviewed some blog themes, but did not see much to my liking. I then took a look at Astro but it felt even more overwhelming than Eleventy, and again no simple blog themes to be found.

I then went ahead and fired up Claude Code, pasted in the Hugo error message, and asked for suggestions. Claude found a bug in the theme when being built on Windows systems (removed 3 lines from a file). After that, the site built successfully, and looked the same as before. I felt relief and anger and the same time – aaaarrrrrgh! Why did this have to be so difficult! This reminded me why I use WordPress for my main blog – It Just Works.

Finding voting records on your state representative

Recently, I wanted to get information on the voting record of my representative in the Oregon House of Representatives. Oregon does have an online portal (Oregon Legislative Information System) to allow people to investigate legislation and voting records. From review of the online interface, it was easy to search for bills by bill number, and to get various information on those bills, but I did not see a way to get the voting record for my representative.

Fortunately, OLIS has an OData API to be able to create queries and get data from the system. Together with Claude Code, I was able to create several Python scripts to be able to get the voting record for a representative (House or Senate). I am linking to these scripts as Gists on Github for now, I am not sure yet if I want to create a repo for them. However, they may help others to have some examples to start their own investigations.

A reason why RSS feeds can’t be read from news websites

I saw this post (via Dave Winer) about issues with the ability of feed readers to read feeds from websites hosted by or using Cloudflare. I ran into this problem in trying to access feeds from the Seattle Times website (eventually had to use Playwright to act as a web browser to download the files). This is especially sad for the Seattle Times, since it runs on WordPress. However, it is good to see this confirmation of this problem (interestingly, it was posted in 2024).

Thoughts about “working together”

Today, Dave Winer talks about “working together”, and how he wants to work with other people. The bug in this statement is that Dave Winer deletes things from sites he provides for others to try out his tools, talks about “spam” posts (which is his word for someone trying to make use of his “flow” to promote their “personal projects”) and how he will “moderate” them, and other abusive behaviors. That turns off users and developers. I have personal experience with this, and reports from other users/developers.

Next, he talks about he wants to work together, but what he gets instead are people (collaborators? partners? who?) who want to be him (what does that mean? does it mean they want to be in charge of the project/control the project?). He talks about how people wanted to take over RSS and OPML. I will give him the benefit of the doubt of his lived experience, but my lived experience of working together with people (mostly working in teams in corporate software development) is that a goal is established, roles and responsibilities are laid out, scope and schedule are defined, and the team gets to work until the goal is met. My observation of the way Dave Winer works is that he controls the project, he does all the development and only changes code in an outliner (although Claude is now a silent partner), will not accept PRs, and gets upset when he ends up being the “only person” answering questions in Github issue repos.

Finally, here is a quote from the “Working Together” post he references in the post above:

Working together means this: If someone else has a good-enough way to do something, rather than reinvent what they do, incorporate what they do into what you do.

So – all of the other chat programs in the world were not “good enough”, so they need to be reimplemented using “RSS 2.0 feeds and websockets” (quote from rss.chat repo README file)

From monitoring the rss.chat and demo.rss.chat sites, I see some of Dave’s former co-workers/collaborators are building some things to work with rss.chat. Hope that works out for them!

Podcast about using formal methods in software development

Hillel Wayne explains why formal methods like TLA+ matter, how they help build reliable software, and whether AI will finally bring formal verification into the mainstream.

I enjoyed listening to this, I am planning to watch the video since Hillel Wayne shows some tool demos. I have not used formal methods in my career, but I did investigate them, and did play with TLA+.

Regular podcast and transcript/summary also available at The Pragmatic Engineer.

New OPML viewer now available

Recently, I was doing some work to make sure that the OPML files I created using Drummer and available via Drummer were available from my site instead of drummer.scripting.com. My initial effort was using code from the outlineBrowser2 and opmlPackage repos from Dave Winer. After reviewing the code, I felt that I could focus more on using the outlineBrowser2 application. I also wanted to remove dependency on jQuery and any other hosted files (got Claude to help me with that….).

My updated viewer is now available on Github (opml-outline-viewer). The README file covers how to use the viewer to view multiple files. The rendering of the OPML file bolds each top-level headline, and uses triangle icons to expand/collapse outline elements. The default is to render the file with all headlines expanded. There is a function that allows the user to modify this behavior in code.js (collapse_everything), which is currently commented out.

Give it a try – let me know what you think!