Today, I’m going to be starting a new series exploring the portable executable format. I’ve been working a lot with the format lately, so I decided to document my journey in a series of articles. The series will begin with a fairly broad overview of the format and then subsequent articles will begin a deeper dive into the more complex topics — like imports, exports, debug data, exception handling, etc.
It has (much to my regret) been several years since I last published something on my blog. This article will hopefully be the first of many more to come in the near future as I find more time to return to writing. I’m writing this article both to act as a reference to others who may be interested in retrocomputing and to serve as a set of notes for myself the next time I need to get a Windows VM up and running in qemu.
Qt is an excellent toolkit for developing cross-platform applications in C++ and CMake/CPack is an excellent build system for C++ applications. The two work very well together and I have used them in a number of projects. Deploying the projects on Windows with CPack, however, requires some extra effort. This article will take a look at my approach to this problem.
No, that’s not a typo or a joke. I have created a Docker container containing a single Unix executable with no dependencies that occupies less than 1 KB of space on disk. There are no other files included in the container — not even libc.
Docker is a great way to run web applications and services in a container. With Docker, each container is isolated from the host which encourages composability and greatly improves security. In this article, I will describe how I prepared a number of services to run in Docker on one of my servers.