I finished something I’d been meaning to write for quite a long time:
an expanded version of metscrape.
Once again, I chose Haskell because I wanted a well-behaved windows
build (can you believe the MinGW runtime doesn’t have
strndup()
and doesn’t support positional arguments in
printf()
?). It also meant another excuse to stretch my
skills: this time I had to slice up the html documents using HXT.
Like many haskell libraries, the haddock documentation is a twisty
maze of types and functions with no obvious clues as to how they fit
together. I remember thinking “Why can’t I just use XPath?”. (Answer:
it’s in hxt-xpath
, and you need to understand how hxt
works, anyway.)
I have finished another audiobook: Alex Foster’s reading of The Invisible Man, by H. G. Wells. Compared to many of the other works I have listened to, it is fairly long, but it is also very well read. Having an English reader for a story set in England helps.
One thing that struck me was the small scale on which the narrative took place. Perhaps I’ve read too many grandiose stories that imperil entire worlds, but I was surprised at how simple the invisible man’s plan was. I won’t spoil it (even though it was written in 1897).
A large part of the work is a morality tale of sorts, examining what would happen if a person’s actions had no consequence. It’s similar to the Ring of Gyges that Plato discusses. After his secret is discovered, the invisible man runs amok and even at the start of the work, his temper is only barely controlled.