Skip to Content

Open Source software

I’ve contributed to Open Source / Free Software projects for more than a decade. I’ve also started a few projects; most of that is available on my GitHub page.

I’m a self-taught developer. My first programming experiments were made with QBasic (from the Windows 95 CD-Rom…), then Turbo Pascal, then C and C++, and later Python, Java, JavaScript, etc.

I got interested in Linux and Free Software around 2003. I quickly started to submit issues on bug trackers, write or translate documentation and manual pages, and take part in various forums and mailing lists. In 2006, after I joined Supélec as a student in engineering, I started being more active and submitting patches to various projects.

Since then I contributed to many projects. Here’s an incomplete list…

Projects I created

  • spop: a headless Spotify client based on the now deprecated libspotify, similar in functionality to MPD. Written in plain C. Spop has been used in many very cool projects.
  • Pympress: a simple yet powerful PDF reader designed for dual-screen presentations. Written in Python; now maintained by @Cimbali.
  • Caddyfile-mode: an Emacs major mode to edit configuration files for the Caddy web server. Written in Emacs Lisp.
  • islas: a command-line tool to quickly get timetables for the public transporation system Réseau Stan in Nancy, France. Written in Go. See the announcement post (in French).
  • git-annex-remote-hubic: a “special remote” for git-annex that allows to store content in hubiC. Written in Python.
  • hugo-baguetteBox: a “theme component” to easily integrate the baguetteBox.js gallery with the Hugo static website generator (used on this blog).

Projects I forked

Code contributions

  • ImageMagick: a program and library to create, edit, compose, convert and apply many effects to bitmap images. Fixed a cleanup/initialization issue that affected Emacs and many other programs that depended on ImageMagick.
  • youtube-dl: command-line program to download videos from YouTube and other video sites. Added support for 2 more sites.
  • Hugo: fast and flexible static site generator (used on this blog). Fixed a bug that prevented tags (or other “taxonomy fields”) to be fully lower-case.
  • sorl-thumbnail: thumbnails for Django. Fixed a few bugs and reworked the Travis configuration so that all the tests would pass again 😉
  • django-modeltranslation: translate Django models. Fixed an issue that prevented that library to work with Django 1.10+ when using abstract models with custom managers.
  • devd: a local web server for developers. Added a small but useful feature: sort the directory listing content by file name.
  • collectd: the system statistics collection daemon. Fixed the Chrony (NTP server) module.
  • glib: core application building blocks for libraries and applications written in C. Submitted a patch for gdbus-codegen, a tool that generates DBus bindings from a DBus XML schema, to add support for the Property.EmitsChangedSignal annotation (which was needed by spop). It took 6 years and a migration from Bugzilla to GitLab for this patch to be merged 😄 (original issue, final merge request).
  • raven-go: Sentry client in Go. Submitted a Pull Request to make reported stack traces more useful in environments with different build and runtime locations, such as Heroku. Not merged yet.
  • a Cron Monitoring Tool written in Python & Django. Added support for the PushOver service for push notifications.
  • django-weasyprint: Django class-based view generating PDF resposes using WeasyPrint. Added a feature that makes it faster and safer when building PDFs that should only use local images, stylesheets and fonts.
  • (plus all my contributions to Buddycloud.)

Other contributions

  • This blog! Most of what I write is about software. The two most popular posts (Flashing a stock Android image without wiping user data and OpenVPN for a single application on Linux) are linked from multiple sites, forums and other blogs, and have hundreds of monthly readers.
  • I maintain a few packages on the AUR.
  • Before that, I had submitted a few Gentoo packages (ebuilds).
  • Once upon a time I contributed to the ArchLinux and FSFE mailing lists, and translated a few newsletters for the FSFE. But I don’t have enough time to do that anymore.
  • In 2003-2004, I contributed quite a bit to the French Wikipédia: wrote a few articles, translated a few ones as well, and wrote a macro to convert documents to the Wikimedia syntax 😄 (I even wrote a Python script for the XChat IRC client that fixed bad encoding in messages from the “Recent Changes” bot on the #frrc.wikipedia channel…)