Today, people around the world celebrate the (deep breath…) International Day for the Eradication of Poverty, honoring the victims of the effects of poverty, such as hunger and violence. As Joseph Wresinski indicated at the first celebration…

Wherever men and women are condemned to live in extreme poverty, human rights are violated. To come together to ensure that these rights be respected is our solemn duty.

And I don’t think that I have much chance of saying it better, even in a later age when we have empirical data showing that the cheapest and easiest way of raising people out of poverty involves…giving them money.

A replica of the stone commemorating the International Day for the Eradication of Poverty

While I can’t solve that problem directly, I do have an upcoming project that I hope will give all of us a chance to start impacting such large problems, together.


GitHub - jcolag/g-l-o-b-eA generator for daily scavenger hunt puzzles at. Contribute to jcolag/g-l-o-b-e development by creating an account on GitHub.

In addition to language and date, you can now choose to play G.L.O.B.E. using distance units other than miles.

In addition to miles and boring old kilometers, you can choose from Earth radii, furlongs, nautical leagues, and nautical miles to describe how far your character has traveled between countries and in total.

Presumably, I don’t need to say this, but if anybody wants to see additional units, file an issue with enough information for me to the work—the name, symbol, and distance measured—or a pull request that adds the item to the list.

Ham Newsletter

GitHub - jcolag/ham-newsletterScripts to assemble my monthly newsletter. Contribute to jcolag/ham-newsletter development by creating an account on GitHub.

While I forgot to commit the change, October started with “another month, another element of the Entropy Arbitrage newsletter didn’t quite work.” In this case, the list of the month’s most popular posts didn’t have valid URLs associated with them.

After some haphazard debugging, I learned that the problem arose from my misinterpreting the data structure…that I think I created for this purpose. Maybe some copy-and-paste error got in the way. It doesn’t matter. I fixed the reference to the URL, so that matomo-popular.js will now assemble a Markdown paragraph linking to the top few posts as reported by Matomo Analytics.

Entropy Arbitrage

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

As I have found myself updating and modifying my proofreading script—I should probably put together a post on which tools have helped me and which tools only made my life worse, because I have a list—I realized that the script can’t risk over-writing information that a prior tool created.

If that seems like the excessively long way around saying something like “I changed the first invocation of a tool to append to the JSON output instead of writing the output”—an >> operator in place of an > operator, to give an idea of how small the actual change looks in comparison to this discussion—I agree. But without all that verbiage, the change doesn’t have enough context to make sense.


GitHub - jcolag/background-generatorCPREP: A simple web application to provide semi-believable background details for fictional characters - GitHub - jcolag/background-generator: CPREP: A simple web application to provide semi-believ...

I haven’t gotten far, but I have finally started the process of updating CPREP to work without a server generating each page.

That process starts in the most tedious way possible: Saving an example file, and going through it to replace each bit of text that changes from character to character with a span element, allowing me to assign each bit of text an identifier. In theory, the JavaScript will go through the page and replace it with new data.

I say “in theory,” there, not because I distrust the technology—I’ve certainly had to do this work enough times to know that I can trust it—but because I haven’t done it yet, here, and upcoming work goes in the next section. Plus, I can’t guarantee that I won’t fall asleep every time I go back to this tedious task, and so never get to the JavaScript part…


I’ve committed to CPREP, so expect a lot of work, there. In addition to the “theoretical” JavaScript work described in the previous section, I may also need to remove the headshot for the duration. But since that code never generated anything that actually looks like a person, I doubt that anybody’ll strenuously object.

Credits: The header image is Lapide in onore delle vittime della miseria by Giovanni T, made available under the terms of the Creative Commons Attribution Share-Alike 4.0 International license.