Ephes Blog

Miscellaneous things. Mostly Weeknotes and links I stumbled upon.

Date -

Weeknotes 2024-01-29

, Jochen
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.

Articles

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).

Weeknotes

Mastodon

Books

Software

Podcasts

Out of Context Images


Weeknotes 2024-01-22

, Jochen
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.

Articles

Books

Videos

  • Hosting and DevOps for Django with Benjamin "Zags" Zagorsky | Ok, I think this is the first time I saw a technical talk and thought: Well, for each suggestion I would recommend to do exactly the opposite. I don't mean to say it's a bad talk (ok, maybe a little bit, because choosing multiple interdependent single points of failure instead of one seems just batshit crazy to me). But it's pretty much orthogonal to my views on this topic. So maybe it's interesting?
  • The Cost Of JavaScript - 2023 | Very good

Weeknotes

Mastodon

Software

Podcasts


Weeknotes 2024-01-15

, Jochen
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 😇.

Articles

Weeknotes

Mastodon / Twitter

Podcasts


Weeknotes 2024-01-08

, Jochen
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

Articles

Video

Software

Podcasts


Weeknotes 2024-01-01

, Jochen
Don't work harder or smarter.
Work darker.
Use your knowledge of black magic to call upon the old gods.
Turn all CEOs into newts & ferns.
Cover all office buildings in moss & wildflowers and let the raccoons have them.
You deserve a rest. --Edmonds_Scanner

On vacation, so no work this week. Did some open source, but not much. Released django-cast 0.2.26, which includes the new web component based image gallery as well as an htmx variant, to be able to see which one is simpler.

Cat disapproves 2023

Articles

Mastodon / Twitter

Weeknotes

Videos

Software

Out of Context Images

Web component version below:

And this is the htmx version - a little bit slower, but at least working!