Developer Diary, Yongle Emperor
Today marks the 621st anniversary of Zhu Di’s (朱棣) ascension to the Ming Dynasty throne, taking the name Yongle, which might rate as my favorite chosen name, especially if it rhymes with “dongle.” If you know the name, you probably do from his campaigns against the Mongols, outreach to Tibet, treasure voyages, repair of the Grand Canal, attempt to control the imperial “meritocracy,” or construction of the Forbidden City and Porcelain Tower.
While I try to figure out the software equivalent of the Porcelain Tower or find someone to produce a cartoon about the emperor, let’s talk about projects.
Social Media
Unless I’ve forgotten something, I haven’t changed my “social media footprint” except for signing up on Revolt, which I’d describe as trying to closely mimic Discord. I haven’t found any “servers” that interest me, yet, but if you have also become a Revolt user, I guess that you’d have the ability to find me as jcolag#8038
, presumably due to the Discord mimicry.
Because I don’t expect to spend as much time on Revolt as Matrix—Matrix hosts a few interesting rooms, and more to explore—I won’t preemptively put together a “server” for the blog, but people can feel free to convince me to do it or do it themselves and invite me to participate.
Entropy Arbitrage
Most of this week ended up going toward messing around with the blog itself.
The Codeberg plugin has probably gotten about as good as it’ll likely get. You’ll see it below for some minor changes. It includes a minimal test harness, to check out changes without needing to restart the blog’s development server.
The emoji list now refers to a 🤷 person shrugging, so that I don’t need to remember that underscore.
Posts can now—though I may admittedly never use the feature—go out with no comment form at the bottom of the page. Granted, I don’t have a huge audience or post incendiary things that would require it, but I did have a run-in with an apparent sea lion highlighting my post on affirmative action to their followers and demanding that I respond to…the same trite objections that I list and debunk in the post. Neither action individually would worry me; the additional eyeballs won’t hurt, and I can ignore an occasional sea lion. But the combination (had this person not gotten moderated away) struck me as a potential concern.
Finally, I made some changes that I hope will make my life easier in publishing posts, specifically in terms of spelling. I have upgraded my local version of LanguageTool, which caused it to start griping about the post_url
tag, so I now preemptively filter those warnings out. The check.sh
script also now includes the ability for each post to include its own custom dictionary, like the following Linux command.
grep '^spell: ' "${file}" | cut -f2 -d':' | sed 's/ /\n/g' >> "${spelling}"
Posts starting with Saturday’s first post of two on an Archive of Our Own now have a header called spell
, where I can list terms and names unlikely to appear in subsequent posts. The script grabs that line, removes its name, assumes that someone has typed the words separated by spaces, and appends it to the existing custom dictionary. The script makes a backup beforehand, and restores the backup after running the check.
Doing all this should speed up my actual work of proofreading—each post will have fewer items to check on the day of publication—prevent the bloating of my custom dictionary with words that it should probably flag as errors in other contexts, and communicate special cases to anybody who needs to recycle the post for another purpose.
Morning Dashboard
I forgot that I should have published the big change a while ago, but Voice of America changed its RSS feeds for its podcasts a few weeks back. That fouled up my little dashboard, since it doesn’t do any significant error-checking, given the low stakes.
Initially commenting out the call to get the latest newscast, I eventually found the new URL and updated the parsing to get what I needed.
Along the way, I also bumped the version of one of the libraries, which I’ll mention here instead of including a dedicated library-update section.
Small Things
My catch-all repository for random programming experiments has gotten another Alda experiment of unknown vintage. It doesn’t accomplish much—a scale on two instruments, it looks like—but I don’t like having work of any potential use only sitting on my computer.
It won’t change the world, but occasionally I spot little items like this, and would rather dump them all in one place than create a thousand separate repositories for five-line files. I’ve probably said something to that effect in the past, though.
One of these days, I should probably read up on composing music, given how many of these nice little systems exist.
John’s BASIC Interpreter
I took some time to clean up the repository.
The documentation should now cover everything that a person might need to know about using the interpreter, other than example code.
For those who don’t like Makefile
s—I certainly didn’t, at the time—the repository now includes the boring and probably insufficient build scripts that I used back when writing the code. You have a shell script for POSIX-based systems and a Batch file that assumes the existence of Borland C++.
As a side-note, reminded by looking at the Batch file, I semi-seriously considered adding new commands to the interpreter that would map to Windows USER actions, as a half-joking competitor to Visual Basic…
Finally, the ignore file shouldn’t care about executables anymore.
Next
I see library updates building up, so I may spend the week catching up on those. But also, maybe inspiration will strike elsewhere. For example, I have needed to fix the Codeberg plugin again, for some reason…
Credits: The header image is Seated portrait of Emperor Ming Chengzu by an unknown artist, long in the public domain by virtue of creation before copyright law.
No webmentions were found.
By commenting, you agree to follow the blog's Code of Conduct and that your comment is released under the same license as the rest of the blog. Or do you not like comments sections? Continue the conversation in the #entropy-arbitrage chatroom on Matrix…
Tags: programming project devjournal