Hi, I'm Tomasz

I'm a professional C++ software engineer with over a decade of hands on development experience with variety of technologies (mostly Linux & embedded systems). This is my blog.

Find me on social media

Using binfmt_misc and docker for multi-platform builds

In this post I’m gonna discuss how to use binfmt_misc to build and run non-native docker images that you can build on your PC and deploy to your target machine like e.g. raspberry pi. What’s binfmt_misc? binfmt_misc stands for miscellaneous binary formats and in short, it allows to run non-native binaries (through the help of a format associated interpreter) on the host system just as they were native. Support Support in the kernel is available since version 2.

Minimal React project template

Although it is strongly criticised for its bloat, create-react-app is often a go to when starting a new React project. I like to start things from the bottom up, adding things up as I need them so, I prefer a minimalistic approach. It’s actually very easy to setup a bare-bones React project using parcel. Here’s how to do it. Initialise npm project mkdir react-minimal cd react-minimal npm init -y mkdir src Some adjustments are needed to package.

Playing around with gitoxide - an implementation of git in Rust

Background There’s git which is a CLI tool implementing git SCM which we all know and love. Additionally, there’s libgit2 which is a reference implementation of git “standard”/“protocol”. The focus of it, is primarily to be used within applications that wish to integrate with git repositories and provide programmatic access to git facilities. Usually, languages like Python or Go use libgit2 under the hood to implement git bindings. This is the case with e.

Using SSL for services running in your home network

In this post I’m gonna discuss how to generate SSL certificates for services hosted within your home network. This can be anything, your plex or jellyfin instance or any development infrastructure you might be hosting locally. Keep on reading if you’re tired of HTTP and “untrusted website” warnings from your browser. The plan I’m gonna use navidrome as an example for the purpose of this post. It’s a music player typically running on port 4533.

How to create your own cloud-init alpine image for Proxmox

Recently I’ve converted one of my old PCs into a Proxmox server. In case you don’t know, Proxmox is essentially a virtual machines management environment. I didn’t really know if I’ll find it useful, just wanted to experiment a bit and maybe learn about terraform. Since then, I’m finding my virtual machines server quite useful. I can run my own small kubernetes cluster (k3s), docker registry, VPN gateway… all sorts of things.

C++ quick tips: Deleted free functions

I’m sure that we all know about the = delete keyword introduced in c++11 and its application to class member functions. I’m not sure though if everyone knows that = delete can be applied to free standing functions as well. Free standing functions application Main reason to have this feature is to limit the number of overloads and narrow down implicit conversion. std::cref and std::ref are a good example. cppreference for std::ref lists several overloads.

#4 WebAssembly and C++: What's WASI and why do we need it?

This post is part of a WebAssembly series focused on WASM and C++. The goal is to gain a thorough understanding of how WebAssembly works, how to use it as a compilation target for C++ code and hopefully have fun along the way. So, stick with me for this exciting journey. Recap So far, in this series, we’ve learned what WASM is, how to execute it in JavaScript engines (like browsers or node.