Ephes Blog

Miscellaneous things. Not sure what to put here, yet.


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.

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

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

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

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!


Weeknotes 2023-12-25

why concern yourself with "developer experience" when you ought to be concerned with "the human experience"? what is autocompletion in the face of the exquisite, spectral agony of realizing you’re falling out of love? what is a “build time” under the glare of impending, relentless mortality?
one day, you will die, and your legacy will be washed away when someone forgets to renew the DNS. --stillness.digital

Short work week, Christmas is culminating. The new image gallery component for django-cast is working now and it's properly integrated via django-vite and even has a unit test. I also added a layout parameter to the gallery block to be able to choose different layouts for a gallery. But the first use case for this parameter will be an "htmx" layout to experiment with just replicating the gallery functionality using only htmx. I already have an idea on how to implement this and it will probably be ready by next week

Articles

Software

Videos

Podcasts

Out of Context Images