Skip to main content

Berk Özbalcı

2025-05-25

(This is a now page, inspired by Derek Sivers and many other people who have one on their personal websites.)

See past updates on the archive.

Today is a palindrome date, that is if you’re using a Freedom™ date format. (5/25/25)

Coffee

I’ve recently attended the London Coffee Festival for the first time. I spent most of my time at the Latte Art section, watching national and world champions display their talents.

The highlight of the experience for me was the Hermanos Coffee Roasters stand, where I tasted a very delicious washed Colombian, dubbed “Siberia”. It’s not available on their website yet, so the bags sold at the festival were sort of “early access” beans.

Coding

This site is my main side project (I realise now this sounds like an oxymoron.) Since my last update, I’ve made many improvements.

Wagtail

I’ve incorporated Wagtail into my backend. Which is funny, because the working title for this project was “NotCMS”. I guess it’s true that every piece of software evolves into a CMS one day.

Migration was really straightforward: before, I had plain Django models such as “PhotoAlbum” or “BlogPost”. Most of the work was simply creating another model that inherited Wagtail’s Page model and migrating the data over.

I’ve ended up removing a lot of the custom code I wrote for the Django admin page for handling things like thumbnail generation or resizing/compression during image uploads. Wagtail provides all of that out of the box.

Internationalisation (i18n)

This site is now translated into Turkish! I’m using wagtail-localize for translating CMS content, and .po files for static templates.

One of the biggest challenges was handling many-to-many relationships between localised pages. For example, the gallery page has photos that may be associated with one or more albums. Every photo and every album exists twice in the database, one for each locale, but wagtail-localize does not automatically make the localised photos belong to the localised album pages. I’ve solved this by some ORM hacks magic.