On Software 📁️


or

On Software: API Design (2025-06-22)
I recently had the inspiration of writing a new post about my current thoughts on how to design/make a good Application Programming Interface (API), for functions/methods, classes, programs/scripts, and other things that offer such an interface.
On Software: Check for errors and do not fail (too) silently (2015-02-07)
While I was running the old-but-still-officially-current version 1.1.0 of RandFill recently (to analyze a change between that version and the 1.2.x branch), I stumbled upon a strange behaviour:
On Software: Configuration (2013-06-03)
These are a few thoughts (from the point of view as an user and also as a developer) on handling configuration data for [application] software.
On Software: Documentation (2024-12-01)
Some background: I am indeed interested in writing documentation, for myself and for others. The initial trigger is usually to note it down for my future self, and/or for helping me to understand a topic better; if it’s also useful for others: great.
On Software: Introduction (2013-05-27)
In this series of posts I plan to write down some of my views regarding all things ‘software’, both as an user as well as a developer/programmer.
On Software: Logging (2023-08-07)
Quite a while ago, I was thinking about settling on a steady logging convention, after always having slightly varying versions in my different projects.
On Software: Open Formats & Open Protocols (2013-05-30)
Let’s kick off the text with the sad-but-true bits of wisdom found here:
On Software: Open Source Licenses (2025-06-22)
I mostly prefer permissive open source licenses that allow a lot but don’t restrict (or demand) much.
But this may also change, depending on specific projects and/or use cases…
On Software: Some Golden Rules (2013-06-05)
Here are some rules of thumb for program authors.
On Software: Version Numbers (2016-02-03)
Just a little train of thoughts on the topic of numbering versions of software products (and by that, I mean client-based, locally installed programs, not webservices which are always considered to be in a state of flux and where maybe timestamps are a better format).
The case of the mysterious crash (2015-03-09)
In case you get mysterious crashes, inexplicable messages of access violations and other strange errors on seemingly innocent code:
Using CMake with External Projects (2019-08-03)
The reason for this post is that I spent a considerable amount of time1 the last two days to convince CMake’s External Project feature to do what I wanted. And without the help of the usual suspects (Stackoverflow, old mails, blog articles, code snippets, etc.), I might still not be done. So I thought I could pay back the general public by posting some notes on this topic 😉