While I talked a bit about World Water Day a couple of years ago, today marks World Water Monitoring Day…or “marked” it, depending on how you want to look at it, as the organizations have tried to rebrand it as a contest and find sponsorship. However, regardless of its cohesiveness or sponsors, the day has the goal of encouraging citizen scientists to test local water quality.

Volunteers from the United States Environmental Protection Agency geared up in their official water sampling gear to show students how they do their jobs

Maybe someday, I’ll get involved enough in a citizen science project to mention here, but until then, I do have projects to talk about.

Social Media

This seems silly to announce, given my existing social media habits, but I plan to cut my Twitter/X usage past my existing “poke in on the weekend to see if I have any messages.” People have plenty of other places to find me, some even listed in my profile and pinned posts. And if you can’t soil your hands by using those methods, it might take me a month to get back to you…and the response will probably only suggest that you contact me on another platform, anyway. 🤷


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

I should start by mentioning that—for reasons beyond my comprehension—Monday’s changes somehow got committed on Sunday, even though I don’t believe that I tried to pull any sort of date-based trickery. I’ll admit that, some days, I will fudge a commit’s time if I forgot to get everything going, but this seems to have happened without such manipulation; maybe my system clock glitched. Therefore, last Sunday (not yesterday, but a week before that) has a weird number of commits, and I filled the “gap” with some other changes (see below) that I had waiting around, rather than trying to manipulate the git history further.

Otherwise, the application now respects the color theme of the operating system, at least for Ubuntu, and if you have the proper information stashed in the configuration file. When I say “at least for Ubuntu,” I mean that, if the following command provides useful information, it’ll use the specified dark background color when it finds a dark theme.

gsettings get org.gnome.desktop.interface gtk-theme

I should mention, here, that Miniboost never did this. To give myself a “dark mode” over there, I used yarn scripts to rotate configuration files based on my personal choice. This feels like a huge step forward, in other words.

Saving to CSON also no longer includes redundant quotation marks.

The most visible changes to the application probably revolve around managing the buttons and other widgets, so that they only appear on the screen when they make sense. If you haven’t selected a category, then you have no list of notes. If you haven’t selected a note, then you don’t have any note-relevant buttons. Similarly, while it doesn’t yet have functionality, the New Category button and input field quietly manage their layout and status, depending on what happened last. For reference, pack forget .widget.to.remove takes a widget off the window, returning it when the code calls pack again on it.

Finally, while it still has a couple of pieces left to move into place, the auto-preview feature should mostly work. Like in Miniboost, previews work by exporting the Markdown to HTML, then opening the HTML page—with some code wrapping it to specify styles and the like—in the default browser. Auto-preview adds JavaScript code to the page, forcing it to refresh every few seconds, and then re-exports the HTML whenever the application would ordinarily auto-save the note.

Entropy Arbitrage

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

I made some minor changes—primarily for the purposes of future expansion—to my Codeberg plugin.

A shorter change removes an unused variable that shouldn’t have ever made its way into the code, given how frequently I run Rubocop.

The bigger change hasn’t swung into active use, yet, but it (superficially) parses the Codeberg page to extract the programming languages used in the repository.


I have the remaining needed functionality for Notoboto in my sights, so I’ll probably continue down that path, this week. And as I’ve mentioned before, once I have the required features in place, then I need to decide if I want to add more features.

I could stand to make the notes far more portable than this CSON nonsense, for example. The text widget seems to have enough potential that I may not need the preview. I’d love to have an in-note and all-note search, again. And the auto-save logic could stand some tightening up, since I have noticed that paging down—as you can probably guess—currently counts as “typing.”

That said, if I dig into any of these features at all, they certainly won’t all happen during the week…

Oh, you might also see some grumbling over the next couple of weeks about non-code issues, since I hear that my new computer—finally replacing this monstrosity that I bought on closeout (and therefore already old) something like eight years ago—has begun its journey to my front door. But once I move operations there, you’ll probably stop having to listen to me whine about things crashing or taking so long, so you all have that to look forward to…

Credits: The header image is World Water Monitoring Day by the United States Environmental Protection Agency, in the public domain as a work of the United States government.