A Redis object cache for WordPress

Written late at night in English • Tags: , , , ,

WordPress Site Health had been nagging me to use a persistent object cache. I already run Zend OpCache, so I wondered what else I needed.

OpCache is an opcode cache: it stores the compiled bytecode of the PHP source so the engine need not recompile it on every request. The object cache is a different layer, holding the results of database queries and transients. WordPress ships with a non-persistent object cache that lives only for the duration of a single request; making it persistent means backing it with something that survives across requests, such as Redis.

On this site I manage the WordPress tree with svn and do not let PHP write into it, which changes a couple of the steps from the usual click-in-the-dashboard instructions. While I also generally prefer nginx and PHP-FPM, this site is still on Apache with mod_php. However, the installation is basically the same regardless of the web server software, but troubleshooting differs between them. I’m covering both here. (more…)

Goodbye, NetBSD Planet

Written terribly early in the morning in English • Tags:

Twenty years of orbiting is a good run, I’d say.

Thank you to everyone in the NetBSD community whose posts kept the planet spinning all these years, and thank you to Venus — and Sam Ruby before it — for making the aggregator possible in the first place. Now we must say goodbye to things Python 2.7.

Installing AI CLI tools

Written early in the morning in English • Tags: ,

I dedicated a VM for running AI CLI tools. Consider it a kind of a sandbox, if you will. (more…)

Upgrading to FreeBSD 15

Written in the mid-afternoon in English • Tags:

Some additional steps were necessary when upgrading to FreeBSD 15.0-RELEASE: (more…)

Rocky start

Written early in the morning in English • Tags:

Here are some quick notes for how I got a Rocky Linux 9.3 VM up and running. (more…)

Solved slow WiFi on MacBook Pro M2

Written early in the morning in English • Tags: , ,

I got a new MBP a couple of weeks ago and I’ve been migrating things to it from my previous 2015 MBP. A couple of days ago I went to a different site on my UniFi network, and unexpectedly WiFi performance on the new MBP M2 was abysmal (more…)

»
Some git workflows that I don’t do too often. (more…)

Virtual PTP hardware clock on KVM guests

Written at evening time in English • Tags: , ,

Using a virtual PTP hardware clock with the ptp_kvm driver and chrony is an easy solution for keeping time on guest machines synchronized to their host. Ideally the host is already keeping accurate time by tracking a set of NTP servers, but it is still probably a good idea to still add some network NTP peers on guests as well. (more…)

Refreshing old Terraform state

Written at evening time in English • Tags: , ,

If you find yourself with an old Terraform state file (say from v0.11) and you need to run terraform plan to check things out, you’ll need to make some adjustments:

  • Add a terraform block with required_providers to provide the source for the provider.
  • Remove the version statement from the provider block. (You will want to move it to the provider in the required_providers block.)
  • Adjust any other syntax changes that result in errors (terraform plan):
    • list()tolist([])
    • type = "string"type = string
    • Possibly many others…
  • Replace the provider in the existing ancient state file.
  • Refresh the providers (terraform init).
  • Plan away! (more…)