The MySQL database underneath this blog has been using the latin1 encoding since the beginning. However, at some point I started posting with Unicode characters encoded with UTF-8. WordPress dutifully stuffed this UTF-8 data into the latin1 columns without complaint. After all, it’s technically valid, even if it’s nonsense.
This wasn’t a problem until I upgraded to MySQL 8.0. Suddenly, characters in a few of my posts were displaying incorrectly. For example, non-breaking spaces in several posts were no longer invisible, showing up as “Å” in odd places. Characters such as “ö” were obliterated. Worse yet, my posts were a mix of latin1 and UTF-8 encoding.
Thankfully, Nic Jansma developed a solution for this problem some time ago. It’s not completely automated, but it helps. If you do this yourself make sure you run the script against a copy of your database, over and over again, until you’ve resolved all of the problems.
At this point everything has been updated to UTF-8 using the MySQL utf8mb4 encoding. Please drop me a line if you notice anything that looks messed up.
Here’s a quick tech tip; if you have a macOS (or OS X) virtual machine that you can’t seem to set to a reasonably high resolution, it’s probably because scaled Retina resolution is enabled. The telltale sign is that the actual resolution you see, when selecting the Scaled option in Display preferences, is exactly half of what you’re setting with the vmware-resolutionSet utility, followed by “HiDPI”. The other sign is that while you’re able to see an apparently higher resolution in the Scaled resolution list, selecting it has no effect (though you may see the display momentarily go to a higher resolution and then revert).
Disable scaled Retina resolution by opening Terminal.app and running this command:
If, on the other hand, you’re looking to take advantage of a HiDPI display on your host, simply replace “false” with “true” in the first line and set a resolution of exactly half of the desired resolution (on each axis). Make sure you reboot after changing the DisplayResolutionEnabled property.
Normally I avoid “me too” posts. Sometimes, though, the ideas are so important to people and communities that I care about that I can’t let it pass by without mention.
If you know me, you are probably aware that I’ve been involved with relatively large open source development community for more than a decade. Unfortunately I’ve had to limit my more recent involvement for one fundamental reason: with somewhat regular predictability a small and fairly consistent group of people either incites or contributes greatly to a pointless, unproductive discussion. The concept of the bike shed is nothing particularly new; neither are the ways to deal with them, at least in concept. All we need is someone to adapt the general principle to our modern mode of distributed interaction – indeed, someone like Alex Payne:
Set emotion aside, and think how much we could accomplish if we had the humility and grace to learn from our peers.