Skip to main content


Hi there! I'm Remy, a Linux/UNIX sysadmin; my primary focus is on building high-available cloud environments in OpenStack, Azure or on premise with Ansible and Terraform (or any other configuration management tool). My keywords are OpenStack, cloud, virtualization, high-availability, scaling and clustering, security, (Open)SSL, Python, Powershell, Bash and general linux/UNIX system administration. Besides that I also develop software.

I currently work for VolkerWessels, the largest Dutch civil engineering construction company as an (Azure) cloud specialist.

I've worked as a sysadmin (in a devops role) for the Erasmus University Medical Center (a large hospital and medical university in Rotterdam), Digidentity (a Dutch certificate authority, the company that develops DigiD and other Ruby on Rails applications), CloudVPS (an OpenStack cloud provider) and a few other smaller companies. I like to design, build, document and manage large, complex and high-available systems. I'm a team player that loves to work with configuration management tools and version control systems. If I do something more than three times, I automate it. Planning, documentation, monitoring and backups are things I do first, not when the time allows it later. Last but not least I have an interest in legacy systems like the PDP-11, PDP-8 and operating systems like OpenVMS, HP-UX and old UNIX systems.

To get in touch, click here.

This is my personal website, please do note that these articles do not reflect or are based on work, opinions or policies of any of my (previous) employers. Any resemblance to reality is pure coincidence.

This site started in 2006 as my form of (public) documentation. It has grown to include software, tutorials, snippets and articles on linux/UNIX, system administration and everything related with over 10.000 unique visitors a day as of 2018-06. The URL is the phonetic way you say my name (Ray-Mii), since non-Dutch speakers always have trouble with the correct pronunciation.

Latest Items - Convert URL or RSS feed to text with readability

18-04-2019 | Remy van Elst

Love plaintext? This script downloads an URL, parses it with readability and returns the plaintext (as markdown). It supports RSS feeds (will convert every article in the feed) and saves every article. My usecase is twofold. One is to convert RSS feeds to a gopher site, the second is to get full text in my RSS reader. The script contains a few workarounds for so-called cookiewalls. It also pauses between RSS feed articles to not do excessive requests. The readability part is handled by Python, no external services are used.


Convert markdown inline links to reference style links with Pandoc

10-04-2019 | Remy van Elst

Markdown has two options to create a link. A link is the piece of text you click to go to another webpage. Actually, three ways, since you can just embed HTML code in Markdown. I write all the content for this site in Markdown files, which are then converted by my static site generator to HTML, text and a gopher version. I'm used to using the inline link style, which is where you paste the link right in the text. Since I've enabled the Gopher version of, I noticed that there was no line wrapping. The HTML website all arranges that via CSS, but the text-only Gopher does not. Sometimes Gopher clients wrap text, but most don't. I'm re-wrapping all articles to make them fit, but the wrapping is way off with inline style markdown links. By converting them to reference style markdown links, the wrapping looks way better, and as an added bonus, reference style links give a better overview. There are a few scripts floating around to convert these links, but either Ruby or NodeJS. It turns out after a bit of research that Pandoc, the anything-to-anything text conversion tool, has an option to use reference style links. With this option, I converted all the articles here (almost 400) to the reference style Markdown links.


Building opkg .ipk packages by hand (for OpenEmbedded/Yocto/OpenWRT)

05-04-2019 | Remy van Elst

.ipk packages are used by a variety of embedded linux systems, like routers running OpenWRT and appliances running on OpenEmbedded (Yocto). The opkg command installs these packages and OpenEmbedded comes with a set of tools to build .ipk packages. Recently I had to create ipk packages in a scripted fashion for a few hundred systems, all unique per system. The .ipk packages includes a few software changes for debugging, a systemd service and one precompiled binary. The yocto build tools were not available on the machine where these packages would be made so I had to figure out how to make them by hand, which means, automatically. The packages are actually just compressed files containing a few control files and the data to be extracted on the filesystem. This article will walk you through the steps of creating these packages by hand.


Where is dropbearconvert on Ubuntu?

02-04-2019 | Remy van Elst

Dropbear is a lightweight SSH server and client implementation, often used on embedded systems and routers. If you use the dropbear SSH client (dbclient) and want to use a private key, it needs to be in the dropbear format and cannot have a passphrase. Dropbear provides a conversion utility to convert openssh style keys to dropbear style keys, dropbearconvert, but on Ubuntu it's not in your $PATH. This means you have to provide the full path to execute it, which is cumbersome. There is a bug in Ubuntu that has been reported in 2012, but in Ubuntu 18.04 (2019) it's still not fixed.


Simple pygopherd log analyzer

20-03-2019 | Remy van Elst

Simple log analyzer for pygopherd. Fun if you have a gopherhole and want statistics. If you ever used Logwatch you'll feel at home.


Disable motd news or (parts of) the dynamic motd on Ubuntu

Published: 18-03-2019 | Last update: 19-03-2019 | Author: Remy van Elst

On Ubuntu 18.04 and up, when you login via SSH you are greeted with some news via motd (message of the day) that includes advertisements and messages from Canonical (via This small guide shows you how to disable news, (parts of) the dynamic motd or just revert back to a plain old /etc/motd file.


Site updates, now also available on Gopher

10-03-2019 | Remy van Elst

I've made some new improvements to this website, you can now view on Gopher! Building on the last site improvement, every article being available as plain text, it was easy to generate a gophermap file and bind it all together with pygopherd.


SpaceCat Launchpad v2, an awesome cool little macropad

05-03-2019 | Remy van Elst

On Reddit, Josh (from SpaceCat) did a valentines day action, 10% off your entire order. I'm eyeing a LaunchPad for a while now, both to have a small macro pad and to experiment with QMK (firmware). So I ordered the LaunchPad full kit, an assortment of Gateron key switches and a VIM keycap. This article goes over the quality, the build process and my current setup of the Launchpad.


Viewing PDF, .docx and .odt files in mutt (as text)

03-03-2019 | Remy van Elst

mutt is my email client at work. I like the simple interface, the speed and the ability to customize the workflow. Email is synced with offlineimap and sent via msmtp, addresses are in abook, and calcurse is the Calendar for meetings, no complicated setup there. One aspect I especially like is the ability to view attachments on the command line right from mutt itself. Some departments at work send emails with an attached PDF or .docx file that contains the actual message, instead of just putting the text in the email itself. Using pandoc and pdftotext in mutt, the text of the attachments is displayed as a regular mail, no interruptions in my workflow by opening an external program. This article explains how to set up your .muttrc and .mailcap to use pandoc and pdf2text to view attachments as text in mutt.


Get a JSON value with bash and sed

26-02-2019 | Remy van Elst

Recently I was asked to get one value from a json object using only shell tools. The json in question is from a dutch radio station and it lists the current song that is played. Using this together with a few shell commands and notify-send we can show the current song when it changes as a desktop notification. I'd rather use Python or jq if it has to be shell. In this case the co-worker asked to just use simple shell tools and no external dependencies.


My phone serves me 400+ ads and trackers per hour. Blokada, the best android adblocker, beats 'm all!

16-02-2019 | Remy van Elst

Recently I switched to a new phone. After a few years (!) my old phone stopped receiving calls making it time for a new one. The new phone has Android, which allowed me to install a system wide adblocker, Blokada. It works by posing itself as a local VPN, filtering advertisements, trackers and all kinds of nasty things that spy on you or bring in malware. It does not require root access on Android, it's open source and best of all, it works very well. In the first three days of usage it has blocked over 5000 ads and trackers, including 400 when I was asleep.


All Items