Full-stack debugger

I make code work, be it my own or others'. I take pride in producing code that works, even when faced with the unexpected. I regularly debug starting from poor bug reports and dig as deep as needed. I don't believe that stopping investigations at technology boundaries help anyone.

I use and create Free Software and Free Hardware.

My CV can be downloaded here.

Table of contents

Stuff I do

esp32-s3-prodboard

A small esp32-s3 devboard usable from small-scale production.

I've grown tired of devboards that required starting again with a custom PCB once development is done. This is an on-going attempt to make it easy to move from a breadboard to a case without the costs associated with development from scratch.

When manufactured by Aisler (and thus RoHS- and REACH2-compliant), cost will be as low as ~3€ per board plus an ESP32-S3 module.

First boards feature a PCIe x1 edge connector but future ones will probably use Hirose DF9 board-to-board connectors (either as 41 pins or 2 x ~20 pins) which are hand-solderable.

Status: almost ready (first boards being fabbed now), a v2 should follow soon

PCB for ESP32-S3, with a PCIe x1 edge connector for pin access.
ESP32-S3 "prodboard" v1
with PCIe x1 connector

Quick-boot camera and microphone on Raspberry Pi Zero (2W) (Not yet released)

Turn a Raspberry Pi Zero into a personal camera or an HDMI magnifier (to use to solder small components).

OOTB boot time with Ubuntu is around a minute on a Pi Zero. After optimizations, boot time approximates 15 seconds and is CPU-bound (in udev): a Pi Zero 2W should improve that by several seconds. Changes involve package cleanup, service deactivation, tuning in rpi's boot.txt and config.txt files.

Status:

georges - Anti-troll IRC bot

An advanced IRC bot to deal with trolls and spam. It efficiently stops spam waves and frustrates spammers.

It uses a number of techniques and pieces of information in order to pinpoint bad behaviour. It is fast and precise with virtually no false-positive because its decisions are not based on a single technique.

The techniques include fingerprinting through CTCP, IPs, reverse DNS, GeoIP, Tor checks, open proxy checks, message size and frequency, nickname hijacks.

Franciliens.net and FFDN

A DIY ISP in and around Paris, and a federation of DIY ISPs. I joined Franciliens.net for the technical aspects of an ISP. Since it was going slow due to untold different expectations between its founders (very technical vs. very people-minded members), I took on the secretary. I re-invigorated the ISP by scheduling and running regular and goal-oriented meetings.

I then became involved in FFDN which is a large (<1500 members total) and became Vice President.

I've stepped down from my positions to leave room for others. I want to remain involved. Unfortunately COVID-19 has made it quite difficult for various technical reasons but I am hopeful to resume soon, probably on more technical matters.

Self-hosting

I self host at home as much as I can. Currently this means:

Nisaba (formerly known as Prose)

A collaborative text editor not running under Node.js and with end-to-end encryption. The server is dumb and merely provides an order for edits so that every client agrees on them.

Using quill.js for the edition part started as a good idea. Nowadays I'm not so sure anymore because development of 2.0 has been announced but nothing has been officially published for the past four years.

I want to try to switch to Yjs which is developed more in the open (and with FOSDEM talks).

Nisaba is the Sumerian goddess of writing. The "prose" name was too crowded.

IRC

I am active on Libera (and formerly Freenode), OFTC and Geeknode.

I am operator on several channels and take care of a few ones even though I'm not op there. I am lucky that the channels I am part of are open-minded, peaceful and tend to not attract aggressive users or trolls despite some of them being large and well-established like #ocaml. This makes it possible to have a very relaxed practice of moderation.

Stuff I used to do (and why I stopped)

Win-builds

I started using Linux a few years after using Free Software on Windows. It felt important to me that Free Software is available on Windows but devs are mostly on Linux and Windows support is often both an after-thought and a chore. Win-builds was meant to solve this.

While a technical success, this project is probably a marketing failure. I see different reasons to this depending on the demographic.

I also set myself a difficult goal with security updates. This proved too much to do without skimping on tests and QA.

With WSL, people could/should use a Linux distribution which has cross-compiled packages (Debian/Ubuntu have it and have developers for the packages, OpenSUSE and Fedora do too). It's slightly less user-friendly for people used to Windows.

lablgtk

GTK+ bindings for OCaml. Lablgtk provides a fairly wonderful API which is high-level, safe, and efficient both for programming and running.

I spent a few years contributing to it, improving various aspects (fixing bugs, extending coverage, API and high-level wrapper, attempting to take advantage of gobject-introspection, demystifying it to the community, and building FRP-style workflows).

Unfortunately, following GTK+ is incredibly tough and gobject-introspection was hardly a practical solution due to its large bias in favor of Python (and Javascript).

Stuff I should do

A technical blog

Something I would probably have content for but there's already a lot to do.

One day it will be hosted here.

Better backups

Getting there with Borg Backup actually.

Stuff I use (or used)

Debian

I've used Debian since I've stopped with Slackware (see below): testing on my laptop and stable on my server (with LXC containers for services).

The plan has been to get involved in the distribution to improve it in the areas I need. So far I haven't had time for that, especially since getting involved in Debian is a fairly slow-starting process.

Ansible and LXC

My self-hosting setup is orchestrated through Ansible. I'm stuck with it but I'm not happy with it because of its bugs, slowness and frequent incompatibilities when target machines are newer than the orchestrator. Maybe several of these issues would go away if I used a dedicated controller with an Ansible version that isn't from Debian stable.

OCaml

I've started OCaml 15 years ago and contributed some code to it, including in the build system part for better Windows support. That was back when SVN was still used and someone else had to commit for me (but attributed in commit messages). The best way to find them is to use git log or search through Github

I've been taking care of its IRC channels for more than a decade.

Vim

I tried emacs first but my fingers didn't like it (maybe because of the keyboard) and I couldn't remember the keypresses nor find their meaning.

I've been using vim for 15 years now. A lot I could still learn but I'm able to do everything I want and need more than a couple times.

Slackware (past)

I really started Linux with Slackware (with only a couple years of OpenSUSE before that). I really liked it and knew it and my systems really well. Unfortunately the project development is closed and that frustrated me too much. If only there were a public bug tracker, even read-only!

Stuff I attend

FOSDEM

I've attended every year for more than 10 years now (obviously I didn't go to Brussels during for the virtual ones).

I've given a couple talks at FOSDEM, most notably 5 years of DIY Internet access, a presentation and retrospective of FFDN.

Chaos Communication Congress and Camp

I went to Camp 2011 during my internship in the Netherlands. Well, I only went there for the last 24 hours or so. Sub-zero temperatures but I've been attending all Congresses and Camps since then.

I gave a talk at 34C3 at the Freifunk Assembly: FFDN: A Federation of DIY-ISPs in France and Belgium.

I've tended the Teahouse quite a lot during several years.