The article describes a few pitfalls I encountered when trying to upgrade from Ubuntu 16.04.5 (LTS) to Ubuntu 18.04.1 (LTS) and possible solutions.
Pitfalls When Upgrading Ubuntu Xenial to Bionic


The article describes a few pitfalls I encountered when trying to upgrade from Ubuntu 16.04.5 (LTS) to Ubuntu 18.04.1 (LTS) and possible solutions.

After upgrading from the latest Ubuntu 16.04 LTS to Ubuntu 18.04.1 LTS, the server refused to reboot. I had to use IPMI to connect to the otherwise unresponsive server and forcibly reboot it. I probably should have used sync; reboot

Many times my colleagues have asked me how to change SSH port on CentOS 7, because the way they did it themselves resulted in failures of OpenSSH to start. This happened because of SELinux, and the post explains how to overcome the issue without turning SELinux off.

One of the features of rkhunter in CentOS that I miss is the ability to update rkhunter‘s property database automatically after yum is run (just like in Debian). This post explains how to implement this feature.

Monit is an utility for managing and monitoring processes, programs, files, directories and filesystems on a Unix system. It is often used to restart daemons on failures and abnormal situation, and sometimes to detect changes into critical files and / or daemon binaries. This article explains how to make `yum` package manager play nice with `monit`.

A recipe to bootstrap an Alpine Linux based LXD container with Ansible.

Sometimes it can be useful to get notified when someone logs into the system via SSH. This article shows several possible solutions how to configure those notifications.

This story was told by my colleague. She had a CentOS 7 server with a bunch of WordPress installations, and she needed to update them all. She obviously did not want to do that manually and preferred to use wp-cli.

In Systematic Error Handling in C++ Andrei Alexandrescu claims that C++ exceptions are very slow. And though I have no doubts because I know the internals of exception handling, it is interesting to see some proofs yourself by benchmarking how fast or slow exceptions are.

Sometimes, unexpected things happen. Your program throws an unexpected exception, which is caught by the framework, which loudly complains but provides no hints as to where this happened. You need to find the source of the exception, and this article will explain one of the possible ways to do that.