Performance Analysis of Python’s dict() and {}

Some time ago, during a code review, I had a discussion with a colleague of mine about preferring dict() over {} in new Python code. They argued that dict() is more readable — and expresses intent more clearly — therefore should be preferred. I wasn’t convinced by that, but at that time I didn’t have any counterarguments, so I passed.

Yet that made me wonder: what’s the difference between the dict type and {} literal expression?

14 min Kamil Rusin

Redirecting Subdomains to URLs

This blog is hosted on GitHub Pages. The service offers free static website hosting (TLS included!). The way it works is that GitHub issues a dedicated subdomain for each hosted website; for this one it’s: However, if you try to access it you’ll be redirected to instead.

6 min Kamil Rusin

Life in Weeks

This entry has been inspired by Buster Benson’s Life in Weeks. The rules are very similar: each block represents a week in my life. More significant events are named and might have descriptions.

2 min Kamil Rusin

Keep a Changelog

Recently I was tasked with initialization of a new Python project. One of the requirements was to prepare a changelog. I liked the idea, but my gut feeling was that the future project contributors won’t keep the changelog always up-to-date and it’s quality will decline over time. This article proposes a feature which enforces changelog updates, when it’s required to do so.

6 min Kamil Rusin

Natural Selection and Loss Functions


Natural Selection is what allows our species (and images!) to improve over time. In this article we’ll implement a scoring mechanism, through which “Mona Lisa” will actually look like one.

5 min Kamil Rusin