Linux
Linux is the leading open source operating system, i.e., a free alternative to Microsoft Windows or MacOS. I recommend using it to all of my students, be it for studying, for software development, or for research. Its variant Ubuntu is particularly easy to use and install. While it offers a nice graphical user interface, you can also type commands directly in the terminal running the Bash shell.
Repeating a Command until it Succeeds under Linux
Assume that we have a command that we want to execute in a Linux terminal. We know that the command may sometimes fail, but it should actually succeed. So we would try the command again and again until this happens. An example is, for instance, a download process. If we know that the URL is reachable, then the command should succeed. However, maybe there is a lost connection or other temporary disturbance. Another such command could be a build process which downloads and installs dependencies.
Recursively Deleting Empty Files and Directories under Linux
Sometimes, we have the need to delete empty files and empty directories under Linux. This happens, for example, when we want to restart an experiment with moptipy. Here I post a small Bash script that you may store as file deleteZeroSizedFiles.sh. It will do exactly that: It will search the current directory and all subdirectories for empty files, i.e., files of size zero. It will delete all of them. Then, it will recursively look for empty directories, i.e., directories that do not contain files or other directories. It will delete them as well.