Development 📁️
A C++ program that calls a Lua script (2025-04-21)
Alright, so after preparing Lua, here are
a few small first step on how to make use of this language within a C++ context
Autologon (2018-04-29)
A small utility program to modify the Windows Autologon settings in the Windows registry with a GUI.
After preparing the Qt framework,
I needed to check if everything works; therefore I built a very simple Qt (5.2.1) application,
the GUI-equivalent of a “Hello-World” program.
Although one can get pre-built binaries of the Lua (programming language) interpreter, to me that seems to be just a semi-offical or lackluster way.
But luckily, building it yourself from source is very easy (especially with the help of this post from Dennis D. Spreen).
But luckily, building it yourself from source is very easy (especially with the help of this post from Dennis D. Spreen).
Building Qt 5 on Windows with Visual Studio (2014-04-12)
Short guides on how to build your own copy of the Qt 5 framework from source.
These were originally separate blog posts, but since they are now pretty outdated (since they are for old versions of Qt, Windows and Visual Studio),
I combined them here on a single page, for archival purposes (with many dead links…), and edited them a bit.
Building Qt 6 on Windows with Visual Studio (2021-05-09)
Time for another short guidance on how to build your own copy of the Qt framework from source.
Building Qt for static linking (2015-03-31)
One of the drawbacks of using such a comprehensive framework as Qt is the massively increased size of you program.
When my pet project RandFill was only using the plain Win32-API, it was a single executable file of a couple of hundred kilobytes.
Now, using dynamically linked Qt, the whole package (with DLLs, MSVC redistributables, etc.) is bigger than 20 megabytes as a 64-bit build!
C++ Snippets (2022-03-20)
A collection of code snippets, general notes, small pearls of wisdom and bits of knowledge, that may come handy at times.
C++ Snippets for the MS Windows platform (2022-03-30)
A collection of code snippets, small pearls of wisdom and bits of knowledge, that may come handy at times.
C++: Namespace (2022-02-05)
I moved the (growing) section on namespaces from the C++ Snippets page to this separate page,
where I had already written some notes about using anonymous and inline namespaces in the same
translation unit/file (see below).
The page therefore now also got a more generic and encompassing title.
C++: On #include guards (2022-02-14)
In C and C++ there exists the concept of include guards (header guards)
to prevent that a header file (or rather the content of such file) is included more than once,
because that could cause errors and strange behavior due to redeclarations or name collisions1.
Calling a Lua/C++ function from C++/Lua code (2025-05-03)
Another post in my series on how to use C++ with Lua; this time it’s about calling a function of one language from code of the other language.
Checksum Python Script (2019-05-26)
Added a Python script to calculate or verify a file’s checksum/hash/message digest (MD5, SHA-1, SHA-256, etc.) to my tools.
A tiny header-only C++ library to handle options (parameters, arguments, …) which are given to programs on the command line.
CMake, Visual Studio and Qt 5 with MOC... (2014-06-15)
After building a 64-bit version of Qt with/for Microsoft Visual Studio,
building a simple Qt test program and doing
first steps with the CMake build system, the next hurdle appeared
on the horizon in the form of support for Qt and its Q_OBJECT features (I am currently fighting more
with the changes I made to my build environment than improving the actual program code…).
Distributing a Python program to Windows users (2016-07-10)
I use Python for several tasks (mostly small routine jobs or one-off scripts;
not to devalue the language, I just haven’t used it yet for bigger projects), but since it’s an interpreted language,
you can’t easily distribute the scripts to normal users on Microsoft Windows (my main ecosystem),
because that platform doesn’t come with any version of Python installed by default.
Doxygen Cheatsheet (2025-05-13)
This is my personal Doxygen cheatsheet:
Its initial (and primary) purpose is to be a compact help on this topic for myself.
It’s not meant as a general introduction or comprehensive reference for this tool,
but it is meant to be a small knowledge base or collection of basics & “gotchas”, often-used commands, snippets, tips,
and instructions on how to do certain tasks.
From Mercurial to Git (2019-07-21)
In the last weeks, I migrated all my personal projects from Mercurial
to Git (they remain hosted at BitBucket.org for now, under the same URLs).
Fucked Up Text in Code Snippet (2021-05-02)
The story of how I lost an hour of my life because of a weird unicode copy-&-paste character in a code snippet.
Describes a few tips on how to generate a 64-bit project for Visual Studio with CMake.
Hotkey 1.0 (2020-05-28)
A small utility to scratch my own itch: Having global shortcut keys for often needed actions.
I encounter these same problems every time I set up a fresh computer – which doesn’t happen that often,
that’s why I don’t have the steps in my muscle memory.
How to use CMake (2025-05-30)
This is just a reminder for some syntax/parameter details on how to invoke CMake (i.e. the actual cmake program),
mainly from the CLI, to configure/generate/build a project – it’s not a tutorial on how to write a
CMakeLists.txt
file!This is a brief post on how to use CMake to setup a Visual Studio 2019 solution on Windows
that will use the LLVM Clang compiler instead of the orginal Visual C++ one.
How to use Notepad++ to create a log file (2013-08-18)
The original Notepad of Microsoft Windows has a nice feature to create log files:
Save a new file with the text
.LOG
as its first characters and a timestamp will be appended on subsequent openings.
Icons: Visual Studio Image Library (2018-04-26)
Although not new, I stumbled just now upon a fine collection of icons from Microsoft1,
the Visual Studio Image Library:
Journal #6 (2015-11-25)
At the moment, I’m working on my library to support Media Transfer Protocol (MTP) devices via the
Windows Portable Devices (WPD) API, so that future versions of RandFill will be able to use also
smartphones as targets and not only Mass Storage Class (MSC) devices like plain USB flash drives.
Journal #7 (2016-05-31)
Time for a quick update on my activities in the last couple of months:
Journal #8: Updates on WPDLib and RandFill (2020-06-28)
So, it’s been quite a while since the last post of this sort, and I did slow down on the projects mentioned
there for some time, but…
Miscellaneous Public Source Code Repository (2014-09-05)
Updated the Software page: Moved some of my (old) source code, scripts etc.
to a public Mercurial repository on BitBucket.org named misc_public.
Just a reminder for myself, because I will certainly stumble over it again in the future:
So I’ve built Qt from source
and used it successfully in the last year or so.
Some time ago I turned my attention to multilanguage support and learned about Qt’s tools: linguist.exe, lupdate.exe and lrelease.exe.
Some time ago I turned my attention to multilanguage support and learned about Qt’s tools: linguist.exe, lupdate.exe and lrelease.exe.
On CMake (2014-05-04)
I’ve changed the build process of the RandFill project recently
from using the Visual Studio files (*.sln, *.vcxproj, etc.) to maintaining and generating those with CMake.
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.
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…
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.
Powershell Snippets (2021-01-22)
A collection of code snippets, small pearls of wisdom and bits of knowledge that may come handy at times.
Some notes on the items listed in the title 😉
Powershell: Dynamic Parameters (2024-10-17)
This is an extension to my notes on parameters for scripts or (advanced) functions in Powershell:
Dynamic (or conditional) parameters are an interesting and cool feature, but also a bit tricky and cumbersome to set up.
Often times, much simpler things like parameter sets and/or parameter validations may be the better and easier solution – but on the other hand:
Sometimes, those are not the right tools and one really should use dynamic parameters…
Powershell: Handle input from the pipeline (2021-01-18)
A short description on how to make a Powershell function that can accept and process input data
that it gets from the pipeline.
Powershell: Help (2021-01-21)
Some notes on where and how to get help-information for Powershell commands.
Powershell: Name of the current Citrix desktop (2023-07-02)
For my day job, I wanted know the name of the ‘Citrix’ desktop on which I was currently logged in,
because some features are only available on certain desktops in our environment.
Some notes on parameters for scripts or (advanced) functions in Powershell.
Powershell: PSCustomObject (2022-01-29)
Powershell’s PSCustomObject type has been a great tool, but since I don’t use it every day, I jotted
down some sample code and links for my future self (or any other interested reader 😄
), as a reminder.
Powershell: Remote Session (2021-01-22)
Notes on using a remote session with Powershell
Powershell: Select Choice (2023-07-10)
The need to prompt a user for a choice in a text menu (i.e. in the console), and a slight dissatisfaction
with the commonly recommended $Host.ui.PromptForChoice() after experimenting a bit with it,
triggered me to ultimately write my own function.
Powershell: Splatting (2021-01-21)
Some notes on the method of “splatting” in Powershell code.
Powershell: Starting a Script the Easy Way (2020-04-25)
Powershell scripts can be very practical tools, but they lack an easy Just Do It mode:
Even as a developer/administrator/power-user, one has to remove several obstacles before you can use it; and if you plan to deploy a script to (normal) users, you should take care of some issues before.
Even as a developer/administrator/power-user, one has to remove several obstacles before you can use it; and if you plan to deploy a script to (normal) users, you should take care of some issues before.
Powershell: Using Regular Expressions (2021-03-05)
This is not a introduction or tutorial on what Regular Expressions (RegEx) are or can do,
but on how to use them with Powershell!
Powershell: Using Write-Information (2023-07-16)
This started out as a short entry for my Powershell Snippets page,
but it quickly turned out that this cmdlet needs a longer text for explaining proper handling…
Powershell: Working with JSON (2024-05-09)
A few tips and tricks for handling JSON data with Powershell.
Powershell: Working with the Windows Registry (2024-02-28)
Here are some tips and trick on how to work on the Windows Registry with Powershell.
Prepare a CMake project for find_package() (2021-03-24)
Although I’ve already published an article on how to bring an external CMake project into your own CMake project,
I recently realized that I haven’t written about how one can prepare a CMake project for the use with
find_package()
— despite the fact
that I’ve used it already for quite a while in RandFill for my own WPDLib(rary); so let me make up leeway for that oversight with this post.
Python Snippets (2022-02-20)
A collection of code snippets, small pearls of wisdom and bits of knowledge, that may come handy at times.
QuickADUserInfo 1.0 (2020-05-05)
The first version of my new little helper script QuickADUserInfo has been released.
RandFill 1.1.0 re-released (2013-10-20)
No functional changes yet, but it comes now with a proper installer instead of just an executable in
a zip file (for this tool and at this stage not really necessary, but it will come handy in the future).
RandFill 1.1.0 released (2013-09-01)
While looking through the files of that tool for the first time in years and comparing it with my old homepage,
I realized that I’ve forgotten to publish the latest version (not really surprising, since it’s only a small utility,
only used by me and put on the internet just for the sake of completeness and delusions of grandeur).
RandFill 1.2.0 (2015-05-18)
Finally, a new release of my pet project is done: RandFill 1.2.0 is here!
RandFill 1.2.1 (2015-07-16)
New minor release of RandFill.
RandFill: Open Source (2013-12-05)
The project is now open source (published under the terms of the MIT license)
and available on BitBucket.org.
Remi 1.4 (2016-05-28)
A new version of my small command-line utility remi has been released.
SIM Info (2015-05-14)
SIM Info is a new small console program for Microsoft Windows
to display SIM identification data like ICCID, IMEI and IMSI.
SIMInfo 1.0.1 (2015-08-19)
A new version of SIMInfo has been released.
SIMInfo 1.2 (2016-05-28)
A new version of SIMInfo has been released.
SIMInfo 1.4 (2016-11-08)
A new version of SIMInfo has been released
(side note: version 1.3 was omitted from publication, because it’s been mainly a work of internal restructuring).
Size comparison: RandFill 1.1.0 vs. 1.2.x-devel (2014-07-02)
I’m currently migrating RandFill from plain Win32 code to a mix of Win32 and Qt 5 code (mainly the GUI parts, at the moment);
and the size comparison between these two versions is sobering.
Tabs to Spaces (2020-06-28)
I was always a proponent of the tabs side on the eternal tabs or spaces war; but recently I decided to swap sides.
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 😉
Vectorized RandFill Logo (2014-09-09)
While I’m (slowly) continuing to convert RandFill from Win32 to Qt,
I’ve added the icon of the logo to the main window and the executable today.
WPDLib 0.1.0 (2016-09-25)
After quietly working on it for several months, the project has now reached a point where I feel
comfortable to make it public:
comfortable to make it public: