Borgmatic is a free and open source configuration-driven wrapper around Borg, the secure and space-efficient archiver. Borgmatic allows us to orchestrate Borg backups by setting redundancy, rotations, hooks and many other things in a central place: an human-friendly and very well commented configuration file.
Inode notify (inotify) is a Linux kenel subsystem which provides APIs to to monitor filesystem events. Besides communicating with such APIs from proper programming languages, it is possible to take advantage of the exposed functionalities by using some explicitly designed command line tools such as inotifywait, which can be easily installed in all the major Linux distributions.
Ntfy is a free and open source notification service written in Go which lets us easily send and receive push notifications on smartphones or desktop computers via simple POST or PUT requests. The basic online service is publicly available free of charge and, on Linux, it is also possible to self-host an Ntfy instance.
Git is by far the most used version control system out there. Originally created by Linus Torvalds, it is free and open source software, released under the GPLv2 license. Many online platforms such as Github or Gitlab allow developers to easily store and track changes in their code in public or private repositories using git as a backend.
In the client-server architecture used by the SSH protocol, a client can authenticate by providing a tunneled clear text password or by using a public/private key pair: this is called public key authentication. A user who logs in via a public key on a remote machine has complete access to the command line; in certain situations, however, it may be useful to associate a public key to a single specific command, for security reasons.
RPM is the acronym for Red Hat Package Manager: we use it to reference both the software package format and the low-level package manager used by the Red Hat family of distributions. Since version 4.12 of the latter it is possible to declare packages “weak dependencies”, which are installed by default, but not strictly required.
Debian, also known as “the universal operating system”, is one of the oldest Linux distributions. At any point in time there are always three main Debian releases: stable, testing and unstable. The “stable” release represents the official Debian release: it is rock solid, ready for production, and contains packages which doesn’t change much. The “testing” release contains packages which are on their road to be accepted into stable, and finally, the “unstable” release is the one with the most updated versions of software, used for the distribution development.
Fedora is one of the most popular Linux distributions: it is sponsored by Red Hat, but its development is community-driven. While the default version of Fedora ships with the GNOME desktop environment (it is probably the ideal choice if you want to use a vanilla version of the latter), there are many alternative spins available, which allows us to try a variety of desktop environments such as XFCE or KDE Plasma. In few easy steps it is even possible to build and try a custom Fedora live image.
Fedora Silverblue is an immutable variant of Fedora Workstation: every installation of this distribution is identical to the others, which is ideal for testing and predictability. On Fedora Silverblue, flatpaks are used as the primary method of installing software together with rpm-ostree which basically creates an additional layer over the immutable filesystem each time an rpm is installed. The toolbx utility is included in Fedora Silverblue as a way to create isolated, mutable environments using podman and the containers technology, allowing the user to install development tools and libraries without touching the main system. Toolbx can be used also on regular Fedora versions.
Graphical environments on Linux can basically be divided in two main groups: full-featured desktop environments such as GNOME, KDE Plasma or XFCE, and barebone, minimalistic window managers, such as i3, openbox, or sway. The former come with a set of applications and utilities designed to work well together, while the latter are meant to perform just one task (or little more): managing windows. When using those environments additional functionalities must be implemented via separate tools.
GNOME (GNU Network Object Model Environment) is probably the most used graphical environment in the Linux ecosystem, if only because all major Linux distributions such as Fedora, RHEL, Debian and Ubuntu ship with it as the default desktop. GNOME strives for simplicity and ease of use, and for this reason, not without some criticisms by a part of the Linux community, tends to be less customizable than other desktop environments such as KDE Plasma or XFCE. Instead of using plaintext configuration files, GNOME stores its settings in the dconf database, which can be manipulated using the “dconf-editor” GUI, or from the command line using the “dconf” utility.
Pandas is a free and open source Python library released under the BSD license. Originally developed by Wes McKinney in 2008, and supported by companies like Intel and Nvidia, it is targeted at data analysis and manipulation. It can be easily used to read and write data from a variety of sources such as Excel spreadsheets, Comma-separated Values (CSV) files, and many more.