Ephes Blog

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


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


📆 Year in Review 2023

, Jochen

Reflecting on the past year 🔍 - what I find particularly fascinating is that even though I've spent most of my available time on work-related (billable) projects, the most significant progress I've made has been on my personal projects, such as django-cast (non-billable).

This is in stark contrast to my early days as an employed developer. Even five years ago, after several years of freelancing, I would have said I had a few side projects, but the major developments happened during work hours. There seems to be a shift. Interesting.

The most significant change in my daily work has been becoming more comfortable with frontend development. Most of the time I use a combination of Django, htmx, and Alpine.js, and I'm very happy with the results. JavaScript and HTML, which used to be unfamiliar territory, have now become more approachable. Now, just adding a bit of CSS will be enough for me to become dangerous 😁.

I've also been deeply engaged with the topic of Large Language Models (LLMs). Incorporating LLMs into my daily workflow has significantly boosted my productivity. While I haven't quantified this impact, it's substantial enough that I don't hesitate to invest in subscriptions. Up to now, my development work was not directly focused on LLMs, but I'm planning to shift this in the coming year, aiming to undertake projects where LLMs are a core component of the system.

Django-Cast

I've made substantial progress on this project. It's hard to believe that it's only been a year since we released our first podcast episode using the new CMS based on Wagtail.

Features

Fixed Bugs

Infrastructure Achievements

Roadmap for 2024

  • Transcripts
  • Better designed default theme - at the moment I'm using an rather unstyled bootstrap5 theme
  • Documentation and example project - the example project is probably not working and the documentation is far from complete
  • Performance
    • Feed generation / maybe paged feeds?
    • Where do all those queries come from?
    • My goal is to have sub 100ms response times for all major views

Kptncook

  • Export recipes to Paprika
  • Some smaller fixes

I'm uncertain about continuing to maintain this. The transition to pydantic2 was a mess, there's a lot of bug reports, and unfortunately, all my attempts to bring new developers on board have been unsuccessful.

Data Science Tutorial

Revived the old project 😄. I'm considering blending the tutorial aspect with podcast transcript work, perhaps incorporating some RAG for podcast-based chat interaction? Exciting possibilities lie ahead!

New Software I didn't use Before

  • Started using Obsidian for daily writing activities
  • Switched from Mealie to Paprika for managing my cooking recipes
  • Adopted Playwright for end-to-end testing

Areas I Aim to Focus On More

  • Data Science - prevent my skills from rusting
  • Only managed to release six podcast episodes this year, quite surprising as I didn't anticipate such a low count
  • Just went to one conference this year 😱: beyond tellerrand 2023
  • Hold a three day pytest course at the local university - good, but I expected to do more teaching
  • Start making music again - this has been on pause for almost 2.5 years because of reasons

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!


Weeknotes 2023-12-25

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


Weeknotes 2023-12-18

, Jochen
The amateur believes he must first overcome his fear; then he can do his work. The professional knows that fear can never be overcome. He knows there is no such thing as a fearless warrior or a dread-free artist. —Steven Pressfield

Wrapping things up at work for the holiday season. Recorded and produced a podcast episode about PyTest, my favorite testing framework for Python, which was a lot of fun 🎙️.

Then I went a little deeper down this web component rabbit hole. I built a component from scratch for the image gallery stuff on this site. At first I put the Javascript for the component in the head of the html, because why not, but then I couldn't see the html in the custom element that was rendered on the server. After finding out that this was because the Javascript was executed before the content of my custom element was added to the DOM, I used a MutationObserver to detect when the html of my element was added to the DOM and then added the event listeners etc.. A little later I found out that this was complete overkill and I just need to move the Javascript for the component a little further down in the html to fix this. It's a little embarrassing to share my stupid mistakes here, but maybe this will be helpful for someone else googling for it (or asking a LLM - we still have to come up with a proper verb here, right?).

Next week I try to maybe have some tests for my component and a way to integrate Javascript and Django with maybe django-vite? We'll see 😁.

Articles

Software

Mastodon / Twitter

Podcasts