Open Source

My view and contribution

Open Source

Open Source is beautiful. I have made several contributions to Open Source software, in the form of patches, bug reports, translations, and donations. I have also released my own software. This page exists to keep track of what I consider to be my most relevant contributions to the world of Open Source.

My software

I have released some software. It is mostly small and specific, but you never know who might share your use cases!

accio

accio is a set of a script and some configuration files that allows you to easily configure your Linux distribution to use LUKS2 Full Disk Encryption, and unlocking your computer on boot using a YubiKey. Please note that these days I discourage people from using Accio, as the same functionality has been integrated in systemd and is thus actively supported by some of the best minds in Open Source.

wedge

wedge is a very small and simple C program with no dependencies. Its only job is to translate a stream of serial data to Linux keyboard events. I wrote it as a result of a company's request to port some of their Windows systems to Linux, and this "wedge" software they were using for their optical bar code readers was the only blocking dependency. It includes configuration instructions, a systemd unit, and udev rules for complete plug-and-play functionality.

My contributions

There are some of the contributions I've made to Open Source projects.

Linux Kernel

The Linux Kernel is a modern Open Source operating system kernel used in many real-world applications such as servers, desktop computers, and smartphones.

I contributed a fix to enable raw sockets to be bound to a nonlocal address. I also contributed a fix and regression tests coverage[1][2] for a change of behaviour that was introduced as a result of my first patch.

Duplicati

Duplicati is an incremental backup solution supporting many different cloud backends, including consumer and non-consumer ones, out of the box.

I contributed a patch implementing exponential backoff for failed storage-backend operations. Since most storage operations Duplicati performs are network-based, exponential backoff is a good idea to avoid generating useless traffic and getting banned from APIs for being too insistent, and it is also a better retries-limited retry strategy.

Please note that I currently can't endorse using Duplicati as a good solution for backing up anything important. Unfortunately, I've had it fail on me multiple times due to its less-than-ideal local database system.

python-snap7

python-snap7 is a Python library implementing bindings and utility objects for the Snap7 library, to communicate with Siemens S7 series PLCs.

I contributed multiple improvements, including:

  • a small fix for a broken feature
  • a new datatype, not contained in the Siemens specs but very common in real-world systems
  • a partial refactor of one of the classes, to give it better-defined semantics and better documentation
  • a refactor of the library to only use relative imports

OpenWRT

OpenWRT is a project developing an open firmware for routers and network appliances, and providing instructions and information about running custom software on commercial network devices.

I contributed the serial access pictures and information for the Technicolor TG789vac v2, which is a device based on OpenWRT.

Laravel Sail

Laravel Sail is a small Laravel sub-project maintaining a set of Docker containers to easily deploy a dev environment for Laravel.

I contributed a PR containing proof-of-concept support for running the main Sail container as a rootless container (making it compatible with Docker Desktop and rootless Podman).