CI/CD OVHcloud Distributing a Firefox extension How we're internally distributing a browser extension with S3 and automation
Go git memo Merge conflicts in go.sum Configure git to automatically handle merge conflicts in go.sum
Go memo Setup a (modern) Go development environment Don’t make it more complicated than it needs to be.
Go dependencies Python OVHcloud Go dependency management for Python developers How to manage dependencies on a Go project, compared to the Python ecosystem? How is the Go toolchain superior to Python in this regard?
Go fatcontext golangci-lint performance I wrote a linter! Creating a linter in Go is surprisingly easy! I wrote one and integrated it with golangci-lint to diagnose "fat contexts". This post documents the process.
Go dependencies Go dependencies and binary size How to prevent your app binary from getting bloated by unused dependencies? How to design your library so it doesn't happen to your users?
Go performance fatcontext OVHcloud Context-induced performance bottleneck in Go Misused go contexts can lead to severe performance issues.
command line blog Check your websites for broken links How I use linkchecker to help me keep my links fresh.
Go HTTP Unmarshal JSON from HTTP request in Go Use json.Unmarshal instead of json.Decoder, or a thin HTTP client library.
Go Gin HTTP OVHcloud Gin Method Not Allowed By default gin returns a 404 for an incorrect HTTP verb sent to a handled path. This can be fixed.
self-hosting Docker Upgrade PostgreSQL in Docker Upgrading postgresql in Docker can't be done in-place, so here's a scripted version to help you do so.
command line find to the rescue find has many filters to help you locate the files you're looking for.
Python dependencies command line pip-tools for Python dependencies management Here's how and why I use pip-tools for my side-projects.
certificates memo command line Create a CSR with SAN How to generate a CSR for a basic certificate supported by modern browsers
Django frontend Python Reduce your page load time with htmx in less than an hour HTMX is a wonderful piece of technology for backend developers who don't want to write frontend code but still provide nice UX.
certificates memo Certificates chain correct order Certificates in a chain file should start with the "final" certificate (the cert issued to you). Each following certificate should be the issuer of the previous one.
free software licensing blog Releasing my works into the public domain All my existing software projects and the articles in this blog have been released into the public domain.
self-hosting My Setup at Home (12/2021 update) In this post, I'm presenting my updated setup at home. The previous version was from May 2020. 👨🏻💻 Desk * MacBook Pro 15-inch 2017 (personal laptop) * development side projects * writing * office stuff * MacBook Pro 15-inch 2019 (work laptop) * development, research * meetings * Two 27-inch QHD displays (Dell P2720DC) * nice 3 monitors
git command line Automate bug findings with git bisect 🔍 Git bisect When you're trying to troubleshoot a bug, finding the original commit is often helpful as it gives you context. Enters git bisect! If you haven't already, consider taking a short detour to the documentation. This command uses a binary search algorithm to find which
Docker ITSF Chowning files can take a lot of space in a Docker image Today I learned that recursively changing the owner of a directory tree in a Dockerfile can result in some serious increase in image size. 🚛 The issue You may remember how in a previous post we used a small example to discuss layers and final image size. Well, here's
Docker Python Lighten your Python image with Docker multi-stage builds In previous posts we talked about poetry and Docker images layers and I promised I would write about Docker multi-stage builds, so here we go! 💡I will explain the basics of Docker multi-stage builds required to understand the post, but I won't repeat the documentation (see further reading)