Martin Häger
Full-stack software developer with DevOps experience. Blogging about programming, video games, music, electronics engineering, and all things DIY.

How This Site Gets Built

It's been about ten years since last I ran a blog. The technological landscape has shifted a lot during those ten years, particularly in the web app space. We now have cool things like React, GraphQL, Let's Encrypt, Docker, and a mature Node.js ecosystem. Back then I was doing most of my web development in Ruby and Python. In this post, I'd like to illustrate how this site is put together.

#ci
#frontend
Read

Wrapping C Libraries With Smart Pointers

In this post, we will look at how smart pointers can be used to implement a RAII interface to C libraries. This is the basis for my SDL2 wrapper. Using this method, we don't have to write wrapper classes.

#programming
#c++
Read

Nintendo Switch Virtual Keyboard

libnx is now capable of calling up system applets, including the virtual keyboard and captive portal browser. With these two components, it should be straightforward to implement a makeshift web browser.

#programming
#switch
Read

Playlog December 2018: Grim Fandango Remastered

Grim Fandango remains one of my all-time favorite video games, and the remaster stays true to the original. The setting, music, and writing are superb. It oozes charm, creativity, and a sense of atmosphere that sets it apart from many other adventure games. But the faithful recreation leaves several gameplay aspects showing their age.

#gaming
#switch
Read

C++ Modules

One of the more exciting proposals for the upcoming C++20 revision is the module system (ISO/IEC TS 21544:2018). This proposal aims to solve a number of problems with C++ - not the least of which is compile times for large code bases. In this post, we will have a brief look at how modules can be used with current tooling.

#programming
#c++
Read

© Martin Häger, 2018 - 2021.

v1.5.12 (changelog). Built with GraphQL, React and Semantic UI.