browniebroke.com

All posts

Manage deprecations with Python warnings in a Django project

November 22, 20245 min read

Python has a module in its standard library that can be very helpful tool to manage deprecations. It’s commonly used by libraries but can…

Keep uv.lock file up-to-date with Dependabot updates

October 02, 20242 min read

In the past couple of weeks, there has been a lot of interest in the Python community for what started as a new Python package manager, but…

Narrow state of a Django model using Python TypeGuard

August 31, 20244 min read

Today, I came across a problem with type checking in a Django project which led me to use for the first time. I’ve heard about them in…

Attest build provenance for a Python package in GitHub actions

August 08, 20244 min read

As you may have noticed, supply chain attacks ae on the rise. These attacks usually target a small piece of software infrastructure that the…

Bulk updating multiple repos with all-repos

July 10, 20237 min read

I like the open source communities and all the developments that they enable. As a developer, I like to have the ability to solve my own…

Nested ViewSets with Django REST Framework

May 05, 20236 min read

I’ve been using Django REST Framework for a while now but mainly in old projects where lots of code have been written. In most cases, these…

Migrate my site design system to Chakra UI with ChatGPT

April 27, 20237 min read

A short story on how I migrated this site from a custom design system to Chakra UI with the help of ChatGPT. Wasn’t a complicated migration,…

Enabling sudo via TouchID using Ansible

November 25, 20222 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, 20223 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, 20223 min read

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

Convert Python requirements to Poetry format

January 07, 20212 min read

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

Migrating a project to Poetry

October 18, 20209 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 pend…

Auto-update pre-commit hooks with GitHub Actions

July 12, 20203 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, 20202 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, 20203 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, 20195 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, 20195 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, 20196 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, 20192 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 header for…

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

April 24, 20193 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, 20183 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…

© 2024, Built with Gatsby