Today, the Coptic Christian world celebrates Nayrouz—which you shouldn’t confuse with Nowruz, though it does have related roots—or (in Ethiopia) Enkutatash, the start of their new year.

I won’t bring up the big media-friendly twenty-second anniversary, because I don’t want to traumatize the people still processing loss, have no interest in airing my “credentials” on the subject, and because I don’t feel like dealing with the jingoistic, bigoted, and conspiracy-obsessed jerks who come out of the woodwork whenever the topic comes up.

Painting of procession with flags in street, where participants and spectators mostly wear either turbans or fezzes

And on to the projects…

Mastodon Tool Trunk

GitHub - jcolag/tool-trunkTools for (John's) Mastodon workflow. Contribute to jcolag/tool-trunk development by creating an account on GitHub.

As a consequence of updating my default Ruby version and removing older Ruby versions on my system, as I brought up in last week’s developer diary post, a lot of Ruby code on my system now needed updates. This will happen…pretty much in order of frequency that I need to use a particular project.

In the case of the Tool Trunk, while the Rummager has no Ruby dependencies, I periodically check for new notifications rather than visiting the site, and schedule the week’s bigger toots every weekend. As a result, this landed about as high on the list as anything not blog-related could land.

Small Things

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

As usual, I use this repository as a dumping ground for little projects that I know will never warrant a repository of their own…as opposed to the repositories that I start and then never return to. Usually, these don’t have much more than mild education value.

This week? If you’ve ever wanted to compare the dates of files in a shell script or look at some rudimentary MathML embedded in an HTML file, well…do I have good news for you!?

MathML feels too verbose to me to make a viable markup language for mathematical phrases, but I wanted to confirm that before I needed something like it for the blog. If it comes to that, I’ll find (or write) something that parses a cleaner notation and outputs MathML in a plugin.


GitHub - jcolag/NotobotoAnother attempt at a lightweight note-taking application - jcolag/Notoboto

My note-taking application now shows previews of the Markdown, rendered as HTML.

Well…technically, I’d call that a lie. In reality, I have no interest in wasting space in my little application with a preview panel, and I don’t feel like figuring out how to render HTML in Tcl/Tk. But do you know what does render HTML well? The default browser—whichever browser you use—renders HTML well. Therefore, like I did for Miniboost, Notoboto converts the Markdown to HTML and writes that to a temporary folder, then opens that temporary page in the system’s default browser.

You might want to know that Notoboto also grabs the Miniboost configuration file, and uses the exportStyle property to style the preview web page. In my case, if anybody needs it, my personal export style looks like this, though without so much blank space for formatting.

body {
  background-color: #fdf6e3;
  color: #839496;
  font-size: 16pt;
  margin-left: 25%;
  width: 50%;
h1,h2,h3,h4,h5,h6 {
  color: #b58900
table {
  border-collapse: collapse;
  width: 100%;
td,th {
  border: 1px solid #2aa198;
  font-size: 14pt;
a {
  color: #268bd2;
a:visited {
  color: #6c71c4;
code,pre {
  color: #268bd2;
b,em,i,strong {
  color: #cb4b16; 
@media (prefers-color-scheme: dark) {
  body {
    background-color: #002b36;

You might recognize this as conforming to the Solarized color scheme, and ends with an automatic “dark mode.” I wrote about the color scheme preference media query a couple of years ago, if you need more information on that.

Why didn’t I use Boring CSS? That would have made life easier in some ways. But, I would then need to rely on Tcl’s Markdown-to-HTML conversion to produce the semantically structured HTML that Boring CSS expects, and I don’t expect that to happen.

Entropy Arbitrage

GitHub - jcolag/entropy-arbitrage-codeThe Jekyll blog for - jcolag/entropy-arbitrage-code

The script that generates my stub Social Media Roundup posts for this blog specifically sets the time for sometime in the five o’clock hour. This gives it parity with the Star Trek posts, as well as ensuring that I don’t get interrupted by an alarm during my actual work hours.

If you happened to visit the right posts, you might have also noticed me tinkering with the Codeberg plugin.

Oh, and I also added some libraries that apparently needed re-installation, maybe because scripts only use them for testing.


Where I go this week depends on a lot of factors, including the ultimate track of Hurricane Lee and its strength when/if it makes landfall, visitors, and whether I can figure out how to make Notoboto’s buttons appear and disappear contextually.

Credits: The header image is Procession of the Holy Carpet, Cairo by Rafael Tuck & Sons, Ltd, made available under the terms of the Creative Commons Attribution Share-Alike 2.5 Generic license.