As we approach “the holiday season,” minor holidays dry up. So, this week marks the start of Geography Awareness Week, a celebration that has sprouted around Geographic Information System (GIS) Day. Normally, I’d ignore this as an industry patting itself on the back, but the United States Geological Survey and the Library of Congress have both sponsored it, so it’s at least slightly more than satellite/mapping companies inflating their importance.

A physical world map

And while my code rarely deals with geographic data at this time, that’s still at least a plausible excuse to change the topic to code.


As I hinted last week, I needed to clean up the INTERN code, fixing the parsing for the new @ago command and refactoring the similar code from @ago and @on.



The good news is that Haskell is a fairly nice functional programming language, but it’s frankly peculiar how dismal the ecosystem seems to be, in terms of standardization and documentation.

For example, it appears that tooling is supposed to be handled by Stack—which is what I used—but it’s not really discussed anywhere other than its own site and an occasional blog post. So, is it really the Haskell equivalent of Yarn or Cargo? It’s unclear whether this is unique or just one of many possible systems.

Likewise, while it’s obviously somewhere in the Stack documentation, general documentation and tutorials don’t bother to acknowledge that acquiring libraries is necessary to using them. It seems to be the only language where the community can’t be bothered to start an explanation with “add the following line to your package.yaml file,” or often even mention the libraries being used in an example.

The upshot is that Ask INTERN isn’t going particularly well, and I’m not pleased. It creates a query string from the command-line arguments, and the documentation is now readable, but I haven’t had any luck sending the query over a socket, despite working from multiple tutorials and (alleged) working examples.

Entropy Arbitrage

I updated the scripts for this blog, the more interesting change being that the script to move parts of a series ahead a few weeks finally works. That was needed for reasons that will probably become clear in this Thursday’s Real Life in Star Trek post.


I added a simple Fyne application and a script to calculate the number of days between reboots to my Small Things repository.

For the former, since nothing has happened since Valence Native replaced Proton Native, I have decided to go back to evaluating desktop application frameworks. While I’m still not sold on Go, Fyne isn’t bad.

Library Updates

While buying myself time to figure out the network stack in Haskell, I updated some libraries in Bicker and RenewDB.


My plan is to keep working at getting that network connection. Eventually, something has to work. Other than that, expect me to just making small changes.

Actually, now that I’ve re-familiarized myself with Rust, this might be a good time to get the Common Calendar back up to date, while I’m trying to figure Ask INTERN out.

Credits: The header image is the Physical Map of the World, February 2021 by uncredited Central Intelligence Agency workers, in the public domain as a work of the United States Government.