Posts

Standard methods missing in Ruby C API

For a few years now, I’ve been using my Ruby-enhanced MicroEMACS to write editor extensions. I implemented this feature using the Ruby C API , which allows Ruby code to manipulate the edit buffer. But when I tried to build the editor on Linux Mint 22 (Ubuntu 24.04), I discovered that the Time.now class method is no longer available in editor extensions. A similar issue occurred on Fedora 42: the Symbol#to_s instance method doesn’t produce the expected result.

Read more →

September 7, 2025

I Decline

No, I do not want to do any of the following:

Read more →

September 5, 2025

JavaScript is a Wonderful, Terrible Language

I was forced to learn a tiny bit of JavaScript in order to fix some problems I had with the Hugo Hextra theme I’m using. I made a newbie blunder during that process, which led me to attempt to learn more about this ubiquitous language. I started working through with the MDN JavaScript Guide , and after only a few minutes I came across language features that made me laugh out loud or barely suppress vomiting.

Read more →

September 3, 2025

Giscus Lazy Loading in Hugo Hextra Theme

The Hugo Hextra theme has a feature that allows you to enable Giscus comments on selected pages. The Hextra documentation for the Giscus feature is a good start, but to make this feature usable, I did two things that are either not documented or not implemented.

Read more →

August 26, 2025

Tiny House 12: It's Done, and Mistakes Were Made Along The way

I installed the last piece of siding yesterday evening, and hemmed the last two curtains this morning, so I think the tiny house is done. The area around it looks like the typical construction site disaster zone, but I started to clean that up this morning, too.

Read more →

August 16, 2025

Nice Try, Caddy

I recently became aware of Caddy , a relative newcomer (compared to Apache) in the field of web servers. It had a number of attactive features: a single executable, easy-to-understand configuration language, and automatic SSL using Let’s Encrypt. I gave it a good try as an Apache replacement, but it failed in two areas: Anubis and WebDAV.

Read more →

August 7, 2025

Tiny House 11: Siding, internet, nesting

The shiplap siding finally showed up two days ago, so I immediately started painting some of the boards. Then after they’d dried, I spent the next day and a half installing them on the house.

Read more →

August 3, 2025

Comparing Linode and Digital Ocean

On Sunday, Linode had a serious outage in their Newark data center , and the VPS that hosts this web site was down for nearly 24 hours. The Koha installations for two of the libraries in Vermont that I support were down for less time, but still many hours; thankfully these libraries weren’t open on Sunday. After this incident, I decided to look at Digital Ocean as a possible replacement for Linode. Since I use this VPS mostly for serving static content, I ran some Apache benchmark tests to compare the two services.

Read more →

July 29, 2025

Protecting a Web Site with Anubis and Apache

In an earlier post, I described using Anubis to block AI scrapers from our library’s Koha installation. That worked well enough that I decided to try using Anubis to protect my non-CGI web site that has some static content and a few Web-based services.

Read more →

July 23, 2025

Tiny House 10: Roof, Floor, Trim

Progress has been slow, due to numerous trips to the Bay Area for family duty, and the fact that I keep running out of materials and have to wait for orders to arrive. But this week I was finally able to get to a big milestone: the house is finished, except for the shiplap siding, which has been on backorder for 2.5 months. I will now have to call the supplier, get my money back, and find another source for the shiplap.

Read more →

July 20, 2025