After reading Will Bunch cringing about Trump’s address to the UN last week and China summit, and yet another Natalie Harp expose on the Daily Beast, my thought is “how can we get out of this mess?”.
Creating a local version of a Drummer oldSchool blog
As part of migrating my main website and other sites to a new hosting service, I have also been working to create backups of sites hosted elsewhere. One of those sites was a weblog I created using Drummer (created by Dave Winer) and using the oldSchool blogging template/tool. As part of other updates made by Dave Winer, there was a problem with the template being used for the oldSchool blogs. One Drummer user (Frank McPherson) did make updates to his template and was able to restore full display of his site. After that incident, I decided it would be better for me to have a separate backup site from the Drummer-hosted sites.
Dave Winer created two repos related to publishing blogs using Drummer and oldSchool. One (oldSchoolBlog) was the code used to create the blogs. Another (drummerCms) was a shell to allow other outliners to use the oldSchoolBlog code.
I installed both of the repos locally and made some attempts to execute the code, but had some problems. I did some troubleshooting, and added a config.json file which helped somewhat. However, the design of the oldSchool logic was set up to publish files to Amazon S3, which was not my goal (I wanted a local copy that could be hosted wherever I wanted).
Eventually, I used Claude Code to create a runner for the drummerCms repo to take the weblog OPML file and create a website on the local filesystem. The updates that Frank McPherson had made to his site were helpful in reaching this goal.
I have created a Git repo (oldSchool-backup-tool) which includes build scripts to call drummerCms to build a local copy of an oldSchool blog, and instructions for running the scripts. I have uploaded my converted site to be part of my main website. If any former Drummer oldSchool bloggers have questions on use of the tool, feel free to add issues to the Github repo above or contact me directly (see my About page).
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.
- getMeasures.py (get a list of bills)
- getEnactedMeasures.py (bills that have passed and become law)
- getVotesOnLaws.py
- getVotingRecord.py (get a voting record for a representative for a specific legislative session)
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).
I recently got a pizza steel and tried it out last night following this recipe, the result was pretty good!

I did not think THIS would ever happen – the Commodore 64 computer is now available again (it was the first computer I ever owned!)! What a nostalgic trip!
I pushed out some updates to my OPML viewer app to add a toggle for expand/collapse for the outline – check out this demo, and download from Github to try it out!
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!
