Like it!

Join us on Facebook!

Like it!


Articles in this category

Programming with Unicode: a gentle introduction

How not to get lost in a multilingual world. written on June 18, 2022

Making HTTP requests with sockets in Python

A practical introduction to network programming, from socket configuration to network buffers and HTTP connection modes. written on January 01, 2022

Network programming for beginners: introduction to sockets

A theoretical look at one of the most popular programming tools for exchanging data over computer networks. written on September 10, 2021

How to split a commit into smaller ones in Git

A quick and easy way powered by git rebase. written on August 09, 2021

Introduction to TCP: Transmission Control Protocol

One of the most important, high-level protocols in the Internet Protocol Suite. written on August 03, 2021

Introduction to IP: the Internet Protocol

From routing to IP addressing, a look at the protocol that gives life to the Internet. written on June 07, 2021

Introduction to the TCP/IP protocol

The official rules that allow computers to communicate over the Internet. written on April 27, 2021

Understanding the Internet

“Is that thing still around?” — Homer Simpson written on March 04, 2021

Introduction to computer networks

A bird's-eye view on the art of resource sharing from one computer to another. written on January 24, 2021

Writing a custom iterator in modern C++

An experimental Forward Iterator written from scratch to boost up hand-made containers. written on December 13, 2020

A journey across static and dynamic libraries

Understanding the complexity behind 3rd-party code. On Windows, Linux and macOS. written on November 15, 2020

Introduction to modern CMake for beginners

A look at one of the most popular build systems for C and C++. written on September 04, 2020

Find buggy commits with git bisect

A quick and managed way to understand which commit in your project’s history introduced a bug. written on July 17, 2020

Building binary deb packages: a practical guide

How to ship your apps on Debian and derivatives. written on May 30, 2020

An introduction to virtual memory

...and the crucial role it plays in modern operating systems. written on April 27, 2020

A quick primer on type traits in modern C++

Discovering one of the pillars of C++ generic programming. written on February 22, 2020

Understanding memory reordering

...and why it matters when writing lock-free multithreading code. written on December 29, 2019

The right folder permissions for a website on a Linux server

Say you have a website running on Linux. What are the correct permissions for the folder that contains the HTML, CSS, images, JavaScript files and so on? written on November 09, 2019

Linux: how to find and replace text in multiple files

Harness the power of grep and sed. written on August 17, 2019

Lock-free multithreading with atomic operations

Synchronizing threads at a lower level. written on July 21, 2019

The humble Vim cheat sheet

Basic Vim commands I keep forgetting. written on June 15, 2019

Introduction to thread synchronization

A look at one of the most popular ways of concurrency control in a multithreaded application. written on May 10, 2019

A gentle introduction to multithreading

Approaching the world of concurrency, one step at a time. written on March 06, 2019

Modules and packages: how to create a Python project

A quick and dirty tutorial on how to get things done. written on January 16, 2019

Move smart pointers in and out functions in modern C++

Different options with different meanings. written on December 24, 2018

Constant pointers vs. pointer to constants in C and C++

Pointer, constant pointer, pointer to constant, constant pointer to constant: what else? written on December 10, 2018

A beginner's look at smart pointers in modern C++

New (!) ways of memory management. written on October 23, 2018

The differences between "using" and "typedef" in modern C++

Two ways of defining type aliases for a smarter code. written on August 22, 2018

How to install new fonts on Linux

The old and trusty command-line way. written on July 07, 2018

C++ rvalue references and move semantics for beginners

A collection of personal notes and thoughts on rvalue references, their role in move semantics and how they can significantly increase the performance of your applications. written on June 02, 2018

What are the C and C++ Standard Libraries?

A brief tour into the realm of writing C/C++ applications, the role of the Standard Library and how it is implemented in various operating systems. written on February 26, 2018

How to resize a VirtualBox disk

My VirtualBox guest OSes always run out of space. written on January 06, 2018

Squash commits into one with Git

A nice way to group some changes together, especially before sharing them with others. written on November 17, 2017

An essential Docker cheat sheet

All the best Docker commands that I keep forgetting. written on October 05, 2017

Compress a PDF file with Ghostscript on Linux

How to reduce the size of a PDF that originated from a scanned document. written on September 16, 2017

Fix missing dual boot menu with Windows 10 and Debian on Acer laptops

Having multiple OSes on a single machine is convenient. It is also great to choose what OS to boot on startup. written on September 12, 2017

How to convert VOB files to mkv with FFmpeg

You have just ripped a movie from a DVD and you want to store it in a compressed format with multi-language audio tracks, subtitles and high quality video. written on July 09, 2017

C++ namespaces with private members

A cool alternative to the C way of having static global variables. written on March 18, 2017

How to enable remote MySQL access on Debian

How to allow remote connections from any host to your MySQL server. written on December 24, 2016

Android to Debian/Linux file transfer via MTP

A painless tutorial on how to share files from and to your Android device. written on October 01, 2016

Understanding the meaning of lvalues and rvalues in C++

A lightweight introduction to a couple of basic C++ features that act as a foundation for bigger structures. written on September 15, 2016

How to add new menu items to XFCE menu

Just create a simple text file and you're done. written on July 27, 2016

Experimenting naive EUR/USD algo-trading

What happens when you blindly trade with a very dumb script in the year range 2000-2015. written on June 08, 2016

Fix kernel driver not installed in VirtualBox

How do I install kernel header files? written on May 03, 2016

Run painless test suites in Python with Unittest

A gentle introduction to aggregate tests that will be executed together. written on March 02, 2016

Git: how to add a file to a commit

What to do when you forget to add one of the files the first time around? written on February 18, 2016

Install Python modules with Pip behind a proxy

What to do when a proxy server steps on your toes? written on January 29, 2016

How to resolve git conflicts for good

Merge changes from multiple developers across the same code written on January 13, 2016

The Central Limit theorem

Experiments on the fundamental theorem that explains why many distributions tend to be close to the normal distribution. written on November 28, 2015

How to get basename from file path in Bash

A one-line solution thanks to the Parameter Expansion. written on October 19, 2015

How to record the desktop with FFmpeg on Linux

A solution that pleasantly works out of the box. written on September 18, 2015

Let Automake build and run your test cases

Add easy support for testing your program. written on September 08, 2015

No more hibernation when closing laptop lid in Ubuntu 14.04

Whenever I close the laptop lid, it goes to sleep mode. How can I disable such behavior? written on August 27, 2015

Encrypt a file with GnuPG and a keypair

GPG (aka GNU Privacy Guard), is a public key cryptography implementation. It allows for the secure transmission of information between parties and can be used to verify that the origin of a message is genuine. written on August 19, 2015

Recursing subdirectories with Autotools

Automake can recurse into subdirectories and compile source files from there. written on July 26, 2015

Run Chrome/Chromium with proxy settings on Linux

And dealing with the dull fact that "your system is not supported". written on July 24, 2015

Search for Twitter lists

The unofficial way, powered by Google search engine. written on July 22, 2015

Fixing ugly fonts in Chrome/Chromium with Debian Xfce

No more jagged garbage and horrible kerning thanks to a small configuration file. written on July 10, 2015

Logging in Python with sub-modules and configuration files

Python logging introduces lots of concepts and configuration options. I'm going to smooth them out for good. written on June 27, 2015

How to configure proxy settings on Linux

And store them forever in your configuration file. written on June 19, 2015

How to expose Java beans to a JSP page in Spring MVC

ServletContextAttributeExporter definitely saved my life. written on June 09, 2015

A list of useful git commands

Carefully crafted for the absent-minded. written on June 01, 2015