Svelte 5 sites don’t work as expected in Safari 12 and 13

Quite recently I upgraded a Svelte 4 project to Svelte 5, and soon afterwards I found some problems inside of Safari 12 and 13 that needed a tricky workaround.

read more

How to migrate your Poetry project to uv

So, like me you’ve decided to switch from Poetry to uv, and now you’re wondering how to actually migrate your pyproject.toml file? You’ve come to the right place!

read more

Putting Svelte stores inside context for fun and profit

Solving problems by putting writable reactive stores in Svelte’s context.

read more

Revisiting uv

Almost two months ago I compared Poetry with uv, and for me uv had some pretty significant drawbacks that kept me from switching over. The situation has changed quite a bit since then!

read more

How to change MEDIA_URL for one FileField

I wanted to use a different MEDIA_URL for one of our FileField instances. It was very easy to do!

read more

Django REST Framework versus Django Ninja

Let’s compare Django REST Framework with new kid on the block, Ninja.

read more

Automatically deploy your site when you push the main branch

The best feature of Heroku is the ability to just push a branch, and it gets deployed. How do we replicate a workflow like that on our own server?

read more

Trying out PDM (and comparing it with Poetry and uv)

After comparing uv to Poetry, I am trying out PDM. On paper it combines all the best things of Poetry and uv, without their downsides. How does it hold up?

read more

How I configure my Django projects

There are many ways to configure Django, like multiple settings files or .env files. Here’s how I do it.

read more

Validate PayPal webhooks using Python

Paypal’s documentation only shows a JavaScript example. How do you validate the webhooks in Python though?

read more

Articles now with comments

I’ve added a comment section to the articles, powered by GitHub Discussions.

read more

Poetry versus uv

Comparing two Python package managers: Poetry and new kid on the block uv.

read more

Changing the way Django 5.1 generates admin list labels

Django 5.1 adds related field lookup to the model admin’s list_display, but with an annoying quirk. Let’s fix that!

read more

Extend Django’s autocomplete widget actions

Extending Django’s autocomplete widget with a new action which copies the linked user’s email address to the clipboard.

read more

SvelteKit architecture tip: return a writable store from your load function

How do you update content in real time when that content was fetched from the layout’s load function?

read more

Hardening a web server against script kiddies

Webservers get hit by hundreds of thousands of requests to random (non-existing) PHP files. What can we do about this?

read more

Quick review: 12.9” iPad Pro (2018)

I bought the 12.9” iPad Pro with the Apple Pencil back in 2018 and spoiler alert: I still use the iPad almost every day.

read more

My one week with a Tesla

In December of 2023 my girlfriend and I went on an eight day vacation to Iceland, where we wanted to rent a car and travel the south coast. This seemed like the perfect chance to try out living with an electric car, since the charging infrastructure in Iceland is very good, and their electricity very cheap. So we rented a Tesla model 3 and let’s just say I have some opinions.

read more

2023 in review

Another year in review - even though it feels like I wrote the previous one not so long ago. Time flies and it’s flying faster and faster each and every year.

read more

Deleting anonymous users' baskets when their sessions expire

How do you delete baskets belonging to anonymous users when their sessions expires? It wasn't quite as simple as I thought.

read more