It’s that time of the year where streaming compagnies propose you a retrospective. What games you played and for how long on stream. Your top artists on Spotify. Your binge uptime on Netflix. So I guess it’s time reflect on my technical skills again. I did so for 2021 and sadly never did it again.

C++ and Qt with Mixxx

Mixxx is a FOSS DJ software I use to mix in my spare time. It’s incredibly fun to use and I got to improve my DJ skills thanks to it. It is also community-developed software. Sadly, thismeans that audio equipment manufacturers — in particular turntable manufacturers — won’t bother to create drivers or mapping for it.

Sidenote: I use Linux on a daily basis meaning I also use Linux to mix. Not long ago handling audio on Linux was… something. Things improved when PulseAudio appeared but then the ecosystem got fragmented between PulseAudio, dedicated to general public use, and JACK, dedicated to professionnal audio. Nowadays, PipeWire unifies both JACK and PusleAudio. If you’re interested in that history, I gave a talk in french about my experience of audio and djing on Linux at the Journée Mondiale du Logiciel Libre.

Capture of the affromentionned talk

I started contributing to Mixxx at the beginning of 2024 with 2 small Javascript pull-requests and quickly moved to the C++ code in april of that year. Thanks to the Mixxx community — which is honestly one of the most welcoming I’ve met — I got to implement the long-awaited registering MIDI input handlers from JavaScript. Then, at the beginning of 2025, I found myself between clients and got some time off to add code for exposing track infos to controllers and helped adding a function to convert string from a charset to another which will help display text on hardware. For instance, I personnaly use the Denon DN-S3700 which only understands a variant of the Latin-1 charset.

So I got to write C++ and Qt code for the first time in years. It was not the first time I did but franckly, it was so long ago and such a small amount of code that I cannot claim to have any experience in C++ or Qt. In addition, since then both C++ and Qt have considerably evolved with the addition of lambdas and smart pointers.

Rust (at last!)

Back in 2020 I wrote an article analysing the syntax of Rust. This language caught my eye years ago, but until now, I hadn’t found an excuse to learn it properly. Of course, at some point I tried the rustlings course but I have ADHD. Writing code for the sole sake of writing code generally bore me. I need to write useful code in order to learn. For example, I learned Python by writing scripts to manage my music.

So 2025 is the year I finally got that excuse.

I have been writing Django professionally for years. In that context, I have found myself multiple times in situations where I needed to render templates both on the server and in the browser. That was particularly bothering because in that kind of situation, there are two solutions:

  1. duplicate template parts in a JS template language like Vue or Handlebars,
  2. use HTMX to query the server for template parts.

None of them are satifying. The first increase the risk of errors and inconsistancies between templates and the second is not ideal in situation where performing a query implies some form of ressource cost like operating in countries with poor internet access.

The ideal solution would be able to compile the Django template language to a Javascript render function like Handlebars can do. I’ve been thinking about that for years but never never got to work on this lacking both the time and skills to write a parser for the DTL. Until a few months ago, when I discovered, back to back, the existence of Django rusty templates a DTL renderer written in rust that implements a DTL parser, and OXC, a set of tools written in Rust to manipulate and generate Javascript.

Using these two tools, I started to work on Django Template Transpiler to transpile DTL into… well you guessed, it: Javascript render functions. And to suit my needs, I started contributing to Django rusty templates too and I would like to thank them and in particular Lily, the main developer for their warm welcome and their patience with my stupid questions.

I also started to use Starship for my shell prompt and opened two PRs (not merged yet) to fill my needs.

Yunohost and low-level Linux

At the beginning of the year, I wrote about turning YunoHost into a domestic NAS OS. Since then, I haven’t progressed much because the core-devs are incredibly busy and I have far too many projects I contribute to. But I got the disks infos API merged and started working on the S.M.A.R.T. health API. This got me interested into how Linux detects and handles hardware and exposes informations with sysfs. I got to learn that the S.M.A.R.T. API is not standard and differs between NVMe and ATA interfaces and that there’s no standard API to get the vendor name of a storage. Working on this, I got to use the Udisks2 D-Bus API and consequently, I learnt a bit more about D-Bus and how to query a D-Bus API from the CLI and from Python. Fun stuff!

What’s next?

The first thing I hope for next year is being able to get to release Django Template Transpiler and hopefully see some community adoption. Beyond that project, I would like to contribute to the Django core. There have been interesting discussions on how to better handle modern Javascript and I’d like to push forward a solution inspired from dj-importmap that I wrote for a client. Also, if I could resume my work on Yunohost, it would be ideal.

Personnal note: I’ve lived with ADHD my whole life. I’ve been thinking about writing something about that here for a while. According to the diagnosis, I have a combined profile which means I am both hyperactive-impulsive and inattentive. This disorder has handicaped me my whole life and, at some point, had I not had been diagnosed, I would have probably died young and empoverished. This diagnostic saved my life and enabled me to resume my studies, get a diploma and work in a field that is intellectually stimulating on a daily basis. Not everyone in my situation has this chance. We, ADHD people, tend to die younger from accident, disease or violent death and live in greater poverty than the average population. Writing these articles where I get look back, measure how far I’ve come and how lucky I am now, it helps. But I was never alone. I got people to lean on, to teach me and guide me and I’m greatful for it. Eventually, no-one is ever “self-made”. We all are community-made. And that’s why we live in society.