User Tools

Site Tools


All Things Software

This is just a bag'o'things, really. Links and tidbits of information that I keep referring to, and prefer to keep online for easier reference.


  • PDCLib – The Public Domain C Library
  • JAWS – Just A Working Setup, a preconfigured CMake project framework
  • Encodings Table – A reference of the various ISO-8859 encodings, Windows codepages, Unicode character names, UTF-8 encodings etc.

Rants and References

Bits and Pieces

Unless otherwise noted, all my sources are released under Creative Commons CC0 (i.e., Public Domain for all practical purposes except in name, due to a braindead restriction in German copyright law).


A frequently-used C++ macro that faciliates generating a std::string from anything that supports operator«( ostream &, … ). Including explanations as to why it has to be done this way and no other.


I want my favourite editor to give me the same look & feel wherever I go. So I did put my configuration online for easier reference.


How to put a copy of your script output into a logfile.

Debugging Regular Expressions

StackOverflow user ephemient posted this bit of Perl knowledge:

  perl -Mre=debug -e '"string_to_match"=~/regex/'

Two-way sync between SVN and Git

When migrating PDCLib from Bitbucket / Mercurial to a local Subversion, I wanted to provide the advocats of Distributed VCS with a way to get the PDCLib sources “their way”.

There were multiple how-to's available online, but none of them really did work the way they were supposed to. Ben Lobaugh's article came really close, and was the most helpful.

But in the end, I figured a write-up that is *not* missing one or two crucial steps would be nice, so I did one.

Visualizing 64 bit address space

We have seen claims of “that should be enough” proven false so often. We somehow knew that 16 bit of address space would run out some day. We're rapidly approaching the point where 32 bit will no longer be enough to store the number of seconds since epoch (1970-01-01). So it's natural when we are reluctant to believe that 64 bit will be “enough forever”.

This little thought experiment might help to understand the power of exponents…

Notes and Resources

US International Alternate keyboard layout

For ergonomic reasons, I prefer US-layout keyboards. For obvious reasons (me being German and all), I need the German “Umlaute” on the keyboard, requiring the use of the “US International” layout. This in turn makes backtick, tilde, caret, apostrophe, and quotation marks into “dead” keys, which is a nuisance. Luckily, ​ there is help: A US International keyboard layout, with the “dead keys” moved to the AltGr-layer. This way, you have them when you need them, but they don't get in the way in everyday typing. (Hint: “ä” is AltGr-q, “ü” is AltGr-y, “ö” is AltGr-p, and “ß” is AltGr-s.)

The linked file is for Windows. Linux supports this setting natively, as “US International (AltGr dead keys)”. X11 can be configured to use it via -xkblayout us -xkbvariant altgr-intl.


I prefer to keep my own C++ source as free of pointers as possible. But since I mostly work on other people's code, the choice is not always mine. And because the various pointer containers in the Boost and the Standard library kept confusing me, I decided to write up a reference page.


Another overview page I started and will probably never really finish.


Some notes I took while working through the tutorials of Boost.Spirit.


I finally got around to getting in touch with the version control software git. (Not very impressed, I might add.) As usual I collect useful findings here.


Notes from a past when I still actually used the hardware involved.

software/start.txt · Last modified: 2018/07/10 11:21 by solar