Ephes Blog

Miscellaneous things. Mostly Weeknotes and links I stumbled upon.


Weeknotes 2024-10-14

, Jochen
"To whom it may concern"
- vague
- weak
- ignorable
"To whom it will concern"
- ominous
- strong
- alarming
--Aelfred the Great

Released a new version of django-cast with support for Python 3.13, which was just released last week. Made some progress on my frontend-heavy side project using htmx (still not published). Otherwise, it was a fairly typical work week.

Articles

Videos

Fediverse


Weeknotes 2024-10-07

, Jochen
hey sorry I missed your text, I am processing a non-stop 24/7 onslaught of information with a brain designed to eat berries in a cave --Janel Comeau

I spent some time outdoors and noticed mushrooms growing everywhere—so cool! I have also been working on an upcoming project that should be easily extensible with plugins. Lets see how that works out.

Articles

Weeknotes

Videos

Software


Weeknotes 2024-09-30

, Jochen
There’s nothing quite like tight kerning to make a design look dean and modem. --Chris Shiflett

I didn’t manage to accomplish much this week. I was generally busy but not really making any progress. However, I attended a great local green software meetup, which was solid fun - this talk about sustainable web design for example.

Articles

Weeknotes

Fediverse

Software


Weeknotes 2024-09-23

, Jochen

This week, I released a new version of kptncook that includes a fix for Windows by setting the default encoding to UTF-8. I also attended a meeting of the Django User Group in Cologne and enjoyed a really good talk comparing Django and Laravel.

Articles

Books

Videos

Software


Type Annotations can Cause Unexpected Behavior in Python

, Jochen

Today I learned that type annotations in Python, while being valid code, can sometimes lead to unexpected problems. In a Django view, I had the following line:

def some_view(request):
    ...
    context["form"]: form
    return render(request, some_template, context=context)

This line doesn't raise a SyntaxError because the colon is interpreted as part of a type annotation, which is ignored at runtime. As a result, the line effectively becomes just context["form"], which is a no-op but still valid Python code.


It took me some time to figure out why {% if form.field.errors %} used later on was was always false. 🤦‍♂️