Upgrading to Mathjax 4
After realizing that the 2024 polyfill.io supply chain attack affected this website, I upgraded from Mathjax 3 to Mathjax 4. Also, Mathjax is now included without the previously recommended reference to polyfill.io.
After realizing that the 2024 polyfill.io supply chain attack affected this website, I upgraded from Mathjax 3 to Mathjax 4. Also, Mathjax is now included without the previously recommended reference to polyfill.io.
For a brief time, starting after 01 June 2026 (when there was no apparent problem) and 18 June 2026 (when the problem first came to my attention), visitors to this site were faced with a spurious “Sign-In” pop-up, identifying itself as “polyfill.io”.
This was a (late) consequence of the 2024 polyfill.io supply chain attack. If, by chance, you entered any credentials, you may want to change them where necessary.
The content and hosting of this site was (to my knowledge) never compromised.
About a year ago, to put a cap on my struggles with Hugo, I wrote up some thoughts on the whole static-site-generator (SSG) concept. One point I made concerned the amount of “meta-data management” that the typical SSG does: creating tag collections; creating sitemaps, and so on. And what a pity it is, that most SSGs don’t seem to surface this information in a way that would be usable by other tools.
Having used Hugo for a some years now, while creating a few dozen entries, I have discovered a few “best practices” for organizing the raw (Markdown) content.
QR codes are a two-dimensional equivalent of barcodes: a graphical encoding of information, which in practice means a string of about 4000 alpha-numeric characters (upper-case only) or a little less than 3000 arbitrary bytes.
So, how then are QR codes able to perform magic, such as automatically opening web pages, or sending text messages, or even dealing bitcoin? The answer is: they can’t.
Let’s try to understand what’s going on.
This site is generated using Hugo. Getting the site up and running was nothing short of a nightmare, which I have documented elsewhere. But things are working now, and Hugo makes adding new content very easy indeed. It therefore seems a good opportunity to reflect back and revisit the whole “Static Site Generator” a.k.a. “JamStack” topic, from a greater distance.
I just wasted one hour and five minutes, dealing with two of these opaque, unexpected, and almost undiagnosable showstopper roadblocks that Hugo will throw your way - much too often, in my opinion.
When doing research to get this website up and running, I came across the following two truly inspiring examples:
Hugo is a static site generator: it takes some plain-text content, marries it to a bunch of HTML templates, and produces a set of complete, static HTML pages that can be served by any generic, stand-alone web server. Simple.
I have compiled my various write-ups on the Hugo site generator into a single, consecutive guide.