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.

Seated portrait of Emperor Ming Chengzu

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

GitHub - jcolag/entropy-arbitrage-codeThe Jekyll blog for https://john.colagioia.net/blog - jcolag/entropy-arbitrage-code

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

GitHub - jcolag/dashA morning "dashboard" generator. Contribute to jcolag/dash development by creating an account on GitHub.

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

GitHub - jcolag/SmallThingsTiny projects not worth giving their own repository - jcolag/SmallThings

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

Codeberg — basic-interpreterjcolag/basic-interpreter An old start to a 1970s-style BASIC interpreter with configurable language features.

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 Makefiles—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.