You can often find identically-looking methods declarations that only differ in their const qualification. One can modify its own object, the other one can’t. How do you know which one will get called? Overloading rules for “normal”, non-member, functions can help, but not quite.

Since my daughter liked playing Minecraft, we thought of doing something like a mod, but that turned out to be hard and borderline illegal due to decompilation of Java bytecode involved. So instead, I started looking for an open-source alternative, found a few and decided to use Minetest that appeared to be quite like Minecraft, had large enough community, and mods in Lua with public API and plenty of examples.

We chose this project: a mod that is capable of generating a world out of a hand-drawn map, where height is represented by brightness, there’s water (painted blue) and grass (painted green). In the end, the main part of the program that my daughter actually wrote herself turned out to be less than 100 lines of Lua.

The pure-lua png reader I’ve found on the Internet worked great - but only for the icon-sized images. It could take minutes (plural!) to load 100 square pixels. That forced me to roll up my sleeves and look into the code…

This is a story about a problem people bump into from time to time on Solaris: a C++ program crashes trying to throw an exception, even though the exception is caught. The problem usually manifests itself when the throw happens in a shared library.

By the time you have worked enough with vim to require you save your preferences in the ~/.vimrc, you probably know what you’re going to put there. So I don’t expect this to be useful to anyone except myself. But, hey, I am a person, too.