Over the years, I’ve had the opportunity to set up a few websites, both static and dynamically generated. A few years ago, I’ve settled on Wordpress as my default choice, initially simply building up sites from themes and plugins, until I bit the bullet and started adding my own snippets of PHP and later building a full, albeit simple, custom theme. This series will hopefully prove to you that setting up a web server, mail server and other neat services is not as hard as you might assume and you can even serve several small businesses using a reasonably priced VPS. In this initial article, we’ll deal with initial setup of our Ubuntu 20.04 server and turning it into a nice little LEMP server. I am expecting you to know at least the bare minimum about terminal, ssh and how to install packages in Debian-based distributions. You should also already own a domain and know how to set up A-records.
Since I haven’t written anything in a while, much less a comprehensive distribution review, a little updated background info is…
If you follow these steps, you might learn to write things normally impossible to do in compile time, such as self-registering factory.
C++20 allows writing functions that suspend and can continue at the next line. This has an amazing application at avoiding writing annoying and error-prone state machines. This article showcases how coroutines can clean up a function that would usually need an ugly state machine.
TL;DR On modern 64-bit PC architectures, C++ exceptions only add unreachable code with destructor calls into functions and their effect on performance is below 1%, but such low values are difficult to measure. Handling rare errors with return values requires additional branching that slows down the program in realistic scenarios by about 5% and are also less convenient. If an exception is actually thrown, stack unwinding costs about 2 µs per stack frame.
Prologue and motivation A part of my PhD. research deals with computer science as a source of innovative ways to…
This is yet another trick to achieve reflection-like functionality before Reflection TS, this time needing only C++11. It’s based on using CRTP to fill the object with carefully chosen garbage before initialisation.
How to write a template function that takes a class and executes type-dependent code on all its member variables, without requiring the class to specifically support it?
I’ve recently gained interest in OpenCV. The problem with this is, that in most modern tutorials and walkthroughs it seems…
Since I bought Oculus Quest, I felt that it lacked a proper Doom-like action shooter. I created a scene in the editor based on what I envisioned, but it was absolutely impossible to run on Oculus Quest. This article describes various tricks I have used to bring it to Quest without too much sacrifice.