Gz format was created as an open source alternative to other compression formats, first released in 1992 with the zlib library as its reference implementation. Owing to its permissive licence, it has become one of the most widespread compression algorithms over the years, used for example as part of the HTTP protocol or in the .png file format. It is faster and easier to use than formats like 7zip, bz2 or xz, but its compression ratio is worse. Newer compression formats like zstd have both better compression ratio and better performance than .gz, but they are not used in common protocols.
With modern computers, creating a language doesn’t have to be time-consuming. Actually, far less time-consuming than learning a language.
Dependency injection is a software design where a component does not initialise its dependencies, but these dependencies are passed into…
For years I’ve been programming in C++ with the belief that the bodies of template methods had to be in headers. Only recently I learned that splitting template methods between header and source is, in fact, often perfectly fine.
Ever been criticised for using totally working C code in a C++ codebase just because it wasn’t proper C++? Here’s why you shouldn’t have done it.
A small side-effect of my community and blogging work is, that I occassionaly (a few times per month) have people…
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.