All posts

Enabling sudo via TouchID using Ansible

November 25, 20221 min read

I discovered fairly recently in a blog post that it was possible to enable sudo mode in the terminal via Touch ID instead of having to type…

Specify docs dependency groups with Poetry and Read the Docs

November 21, 20222 min read

I wrote a while back on how to migrate a project to Poetry. One of the gotcha was how to specify the dependencies to build the project…

Convert a Poetry package to the src layout

January 19, 20222 min read

The src layout is commonly used in Python ecosystem nowadays (even the pytest docs recommend it), but I’m not really using it on my projects…

Convert Python requirements to Poetry format

January 07, 20211 min read

I recently wrote about migrating a Python project to Poetry, however, this guide is quite manual process. I recently came across dephell…

Migrating a project to Poetry

October 18, 20206 min read

Poetry is a tool solving the problem of Python packaging. It was started back in February 2018 by Sébastien Eustace (also the author of…

Auto-update pre-commit hooks with GitHub Actions

July 12, 20202 min read

Pre-commit hooks are great to reduce the feedback loop for things like linting and auto-formatting. Git supports them out of the box, but…

Mastering flexbox with Flexbox Zombies

May 03, 20201 min read

Flexbox is not exactly new, and I’ve played with it a few times, but as a developers who spends most of my time in the back-end building API…

Self-host your Typography.js fonts with Gasby

January 05, 20202 min read

Problem I recently added a CSP to this blog, and one of the tricky parts when implementing this was that the fonts were coming from from…

Setting up a Content Security Policy with Gatsby

November 14, 20193 min read

This is a quick story telling how I set up a content security policy on my personal blog which is powered by Gatsby. I’ve been keen to try…

Making Celery work nicely with Django transactions

June 25, 20193 min read

I’ve been using Celery in my Django projects for about 5 years now. Along the way, I made some mistakes, learned from them and picked up a…

Static vs. Media files in Django

June 18, 20194 min read

Django is a great Web framework for building Web applications in Python. It comes with a lot of batteries included that you’ll most likely…

Add cache-control header to an entire S3 Bucket using Boto3

May 01, 20191 min read

I recently came across a task which seem pretty generic, but for which I couldn’t find an existing solution online: update the Cache-Control…

How I made 1000's of websites more secure with one line of code

April 24, 20192 min read

Or at least a lot of them… Learning about a new security header Last week, I attended the London Django meetup. Among a very interesting…

New year, new laptop

January 14, 20182 min read

A couple of days ago, I accidentally dropped my old laptop on the floor. It was an old Macbook Pro from mid 2010, which I’ve upgraded a…

Hello World!

November 29, 20171 min read

Setting up my blog using the Jekyll static site generator and Github pages. This is using the remote theme feature and is I’m trying to get…