Skip to content

Blog

Old blog (< 2022)

I used to maintain different variants of my blogs over the years (now defunct), and I try to restore old posts from the Wayback Machine when I see that they're still being visited. For now:

  • Xar (2018): a small post on how to use the Facebook XAR format for packaging Python projects
  • Terraform (2017): a post on Terraform best practices (outdated!)

New blog

Don't miss a post! Subscribe to my blog's RSS feeds! RSS Icon

Feed for created posts or for created or updated posts


Power of two random choices

Introducing this pragmatic load balancing algorithm and describing a real world use case


From Demucs to demucs.cpp

How I adapted the Demucs neural network PyTorch inference in C++ for WebAssembly, with a more complicated architecture than Open-Unmix


From Open-Unmix to umx.cpp

How I adapted the Open-Unmix neural network PyTorch inference in C++ for WebAssembly with a custom streaming LSTM, mixed-integer quantization, and Demucs waveform segmentation


Speed is the product

Exploring SIMD and auto-vectorization in WebAssembly to accelerate the C++ Eigen demucs.cpp code in freemusicdemixer.com. Post 2 in the freemusicdemixer.com series


Ignorance is BLISs

Exploring different BLAS library backends (OpenBLAS, AOCL BLIS, Intel MKL) for C++ Eigen project demucs.cpp on my AMD Zen 3 5950X. Post 1 in the freemusicdemixer.com series


How I Python

Describing my Python dev setup (virtualenvs, etc.) as someone who has had to work with virtualenv/pip and conda side-by-side