/images/p1.jpg

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

Creating super projects with CMake's ExternalProject

Some time ago, I wrote a piece about CMake. It was more of a rant, written in the heat of the moment, after being frustrated by some of CMake’s idiosyncrasies. Ironically, it has become one of the most read posts on this blog, which is a bit disappointing. I would like to believe that there are far more interesting and useful posts available here but it is what it is.

#6 WebAssembly and C++: Bridging native code and asynchronous JavaScript

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 In the previous post, I’ve compiled Lua interpreter to WASM using emscripten and successfully run it using node. There was a problem running the same code in the browser as blocking IO is not possible.

#5 WebAssembly and C++: Porting Lua to WebAssembly

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 In the previous instalment of this series, we’ve learned that WASI is an interface enabling exposure of system APIs to WASM modules.

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.