~ephes

Building things with Django and coding agents. Breaking things in my home lab. Writing about both.

Weeknotes 2024-02-05

A priest, a pastor, and a rabbit entered a clinic to donate blood.
The nurse asked the rabbit: "What's your blood type?"
"I'm probably a Type 0", said the rabbit. --via George Takei

Normal work week. Too sick to do any programming related stuff besides work.

I take my hat off to Jörg Meyer. If your cocktail recipes are printed on ice cubes packaging, you've probably made it.

Read more →

Weeknotes 2024-01-29

The Web is the set of digital networked technologies that work to increase user agency. --Robin Berjon

Busy work week in between projects. Didn't have time to do much besides just that.

50 Django Meetup and Sprint at Ambient Innovation

Attended the 50th Django Cologne Meetup and mini sprint which was great. Thanks to Ronny and Sarah for organizing this event and the other Sarah and Thibaud for their interesting talk and the discussion about the future of Django roadmap.

Video

  • HTMX: Die perfekte UI-Technologie?! // deutsch | I don't know why I've been watching more videos that I completely disagree with lately. Maybe YouTube's recommendation engine has found my weak spots and is starting to take advantage of them? Jedenfalls macht sich hier Golo ordentlich zum Horst (just to be able to find the reference later).

Out of Context Images

Read more →

Weeknotes 2024-01-22

career Verb /kəˈri(ə)r/
> careers, plural;
> 1. Move swiftly and in an uncontrolled way in a specified direction
> - the car careered across the road and went through a hedge

Normal work week. Prefetching all the data needed to render a list of posts using Wagtail for django-cast was harder than expected. A lot of streamfield blocks end up making database queries. Template tags like pageurl or slugurl generate database queries. Custom templates overriding some behavior in some django-cast provided template blocks are issuing database queries. But I think I found most of them by now. And there is some good news: Prefetching the data actually improves performance a bit. And without hitting the database, the rendering time is about 3ms per Wagtail page (about 300ms for a feed with 100 posts), which is probably ok.

Read more →

Weeknotes 2024-01-15

May type hints never overload you,
Adam

First workweek of 2024. Recorded and published a podcast episode about Typescript and typing in general, which was a lot of fun 🎙️. For django-cast I found out that it is possible to pre-fetch all the data needed to render a list of posts or episodes and call .serve passing that data and avoid hitting the database 💡. You might to have to do some unholy things though, like monkeypatching the PageLinkHandler. I didn't expect this, but rendering a page including internal links in Wagtail will cause a database query because only the links page id is stored in the markup and the page object is needed to get the page url which is needed to render the link to html. And I haven't found a way to pass data from the page's template context to the PageLinkHandler. But it's doable. So I'll do it 😇.

Read more →

Weeknotes 2024-01-08

This year will be harder than last year. It will, however, be easier than next year. --Enver Hoxha’s message to Albania in 1967

🏖️ Still on vacation. Bugfix release for django-cast, because sometimes the wrong gallery component element was found. Speaking of django-cast - the feed rendering performance has been deteriorating for a long time and I didn't notice it because of the caching in production. I'm taking this as an opportunity to systematically improve performance, which means I'll add tests that fail when the number of queries of performance-relevant views increases. This probably means I'll have to dig a little deeper into Wagtail's code base, because ideally I'd like to be able to render pages simply by passing the required data directly as an argument to the .serve method. This would be nice because I could then isolate all the data fetching stuff in one function call and maybe even optimize the sql by hand. Lets find out if this is feasible 🤯.

Wow, didn't expect the.tox directory for django-cast to be this big:

$ du -ch .tox | tail -1

21G total

Video

Read more →