406.ch
atom
Matthias Kestenholz
406.ch · English
atom
https://406.ch/writing/atom.xml
- Last post
- Sep 9, 2026
- Posts in 24 h · 7 days · 30 days
- 0 · 0 · 1
- Our last check
- Answering
- Served from
- United States
- Text score at discovery
- 6,274
- Format
- atom
Posts
What our queue read from this feed. Open one to read it here, or go to the site that published it.
- Weeknotes (2026 week 37)
Sep 9, 2026 · original
Weeknotes (2026 week 37) Tonight the temperature will drop to 10°C. I like it when it s hot, but now I really enjoy the slightly cooler temperatures in Europe. The last post was written in the middle of the heat wave. Yesterday we still had temperatures of over 30°C, which is a lot for September. But it will be the new normal. Next year probably won t be cooler . Releases from the last four weeks Lots of activity! django-authlib django-authlib 0.19 hardens the OAuth2 implementation a bit against replay attacks, provides utilities for removing password logins from the Django administration interface, and removes some of the confusion around role-based permissions. Upgrading is recommended. django-content-editor django-content-editor 9.0.2 fixes a bug in the function which allows cloning plugins from other regions. The bug was most visible when using something like django-json-schema-edito - Weeknotes (2026 week 33)
Aug 12, 2026 · original
Weeknotes (2026 week 33) Holidays and the heat wave I had four weeks of holidays this summer. The timing couldn t have been much better with the heat wave – doing much thinking seems to be impossible anyway. I organized a multi-day feast with a few friends and with much help from others. We built up the site and installations over the course of multiple days and spent some days tearing most of it down afterwards. I started back to the office job physically tired but mentally rested. That s good. I m really looking forward to seeing the pictures people took. What s less good is that we re living through the projections which climate scientists warned us about decades ago. Or worse, even, since Switzerland is one of the regions where the temperature increased more than the global average. The member of Switzerland s Federal Council heading the Federal Department of the Environment, Transpo - Migrating from FeinCMS to feincms3
Jul 18, 2026 · original
Migrating from FeinCMS to feincms3 FeinCMS is still actively maintained, but development, bugfixes and new features mostly land on feincms3 and django-content-editor these days, not on FeinCMS itself. That s reason enough to eventually move a project over. Someone asked on the feincms3 issue tracker whether there s a guide for making that move. There isn t one yet, so I thought I d expand on my comment in the issue tracker and post it here too in the hope that it s useful to others. The post is based on a gradual migration we did in a large, long-lived Django project – a textbook publishing platform with years of content. Unfortunately I can t show more details since it s a commercial, closed source project. During the migration, the platform stayed in production the whole time, aside from the inevitable bug here and there. The most important insight is that FeinCMS 1 content types and f - Weeknotes (2026 week 27)
Jul 1, 2026 · original
Weeknotes (2026 week 27) The last entry in this series was published 10 weeks ago so it really is time for another review of the releases I did during this time. Releases feincms3-forms The feincms3-forms forms builder has gained a documentation page on the wonderful Read the Docs service. The 0.6.1 release doesn t contain any code changes, just pyproject.toml updates and the mentioned documentation rework. django-imagefield django-imagefield 0.23 is still in alpha. The handling of image fields when using libvips is optimized to use less memory hopefully. We ll see. I also added some tests to verify that .mpo files are handled properly. feincms3 The Vimeo embed now always sets the dnt=1 parameter on the iframe , which asks Vimeo to not track the user. django-mptt I wrote about the somewhat annoying maintenance again. The library is still officially unmaintained, but I did a lot of work e - The 2026 way of using importmaps in Django
Jun 17, 2026 · original
The 2026 way of using importmaps in Django I last wrote about Django, JavaScript modules and importmaps in May 2025, slightly over a year ago. The main topic of this post is the django-js-asset 4.0 release. The library is used in many places, some of the more well-known packages using it are django-mptt and django-ckeditor . I have since done a lot of work evolving the ways of integrating importmaps but the efforts to standardize upon an approach have stalled a bit. The main reason for this, apart from time and energy, was that I wasn t really all that happy with the global importmap. When I had only a few modules using the importmap facility, I didn t care all that much. Now that the recently released django-content-editor 9.0 also uses importmaps for shipping a refactored, much more modular JavaScript implementation while still keeping all the benefits of cache busting using ManifestSt - «Anything new?»
Jun 3, 2026 · original
«Anything new?» A lot of time has passed since I officially announced that I want to step down from maintaining django-mptt . I started contributing around 2009, tagged the 0.3 release in April 2010 , and have been the sole active maintainer since somewhere around 2019. The post about django-tree-queries has more background, but that s not today s topic. Stepping away isn t easy For me, abandoning a project is a bit like stepping out of a relationship: negative emotions end up being a somewhat necessary driver, because the absence of positive events alone rarely provides enough force on its own. I get a lot of satisfaction from a job well done, and walking away means letting that go. Even with time set aside for open source in my work day, I still have to choose where that time goes. django-mptt stopped being where it needed to go. The sense of entitlement When a project is obviously unm - Avoiding empty JavaScript files in CSS-only entrypoints from rspack builds
May 25, 2026 · original
Avoiding empty JavaScript files in CSS-only entrypoints from rspack builds I previously wrote about my preferred way of integrating Django with rspack . Minor aspects have changed, but most of it still applies. What changed The largest change is probably that I have switched from HtmlWebpackPlugin to rspack s own HtmlRspackPlugin and have stopped configuring the template generated by it. Instead, I m pulling out link, script, and style tags the Cthulhu way 1 . My own mistakes while configuring rspack have led to missing or duplicated assets. Letting rspack do its thing and post-processing the result feels safer. The rest basically stayed the same. RemoveEmptyJsAssetsPlugin Poking around in rspack s compiler hooks isn t documented all that well, so I m documenting this plugin here. It s very specific, but being able to change rspack s output may be useful to others and to my future self. - Weeknotes (2026 week 17)
May 20, 2026 · original
Weeknotes (2026 week 17) I published the last entry near the beginning of March. I m really starting to see a theme in my Weeknotes publishing schedule. Releases since the first weeks of March I m trying out a longer-form version of those notes here than in the past. I think it s worth going into some detail and not just listing releases with half a sentence each. feincms3-sites and feincms3-language-sites I released updates to feincms3-sites and feincms3-language-sites fixing the same issue in both projects: When an HTTP client didn t strip the default ports :80 (for HTTP) or :443 (for HTTPS) from a request, finding the correct site would fail. Browsers generally strip the port already, but some other HTTP clients do not. django-tree-queries As I wrote elsewhere I closed many issues in the repositories, mostly documentation issues but also some bugs. {% recursetree %} should now work pr - Switching all of my Python packages to PyPI trusted publishing
Apr 8, 2026 · original
Switching all of my Python packages to PyPI trusted publishing As I have teased on Mastodon , I m switching all of my packages to PyPI trusted publishing. I have been using it to release the django-debug-toolbar a few times but never set it up myself. The process seemed tedious. The malicious releases uploaded to PyPI two weeks ago and the blog post about digital attestations in pylock.toml finally pushed me to make the switch. All of my PyPI tokens have been revoked so there is no quick shortcut. Note I m also looking at other code hosting platforms. I have been using git before GitHub existed and I ll probably still use git when GitHub has completed its enshittification. For now the cost/benefit ratio of staying on GitHub is still positive for me. Trusted publishing isn t available everywhere, so for now it is GitHub anyway. In the end, switching an existing project was easier than exp - LLMs for Open Source maintenance: a cautious case
Mar 25, 2026 · original
LLMs for Open Source maintenance: a cautious case When ChatGPT appeared on the scene I was very annoyed at all the hype surrounding it. Since I m working in the fast moving and low margin business of communication and campaigning agencies I m surrounded by people eager to jump on the hype train when a tool promises to lessen the workload and take stuff from everyone s plate. These discussions coupled with the fact that the training of these tools required unfathomable amounts of stealing were the reason for a big reluctance on my part when trying them out. I m using the word stealing here on purpose, since that s exactly the crime Aaron Swartz was accused of by the attorney s office of the district of Massachusetts . It s frustrating that some people can get away with the same crime when it is so much bigger. For example, OpenAI and Anthropic downloaded much more data than Aaron ever did - Weeknotes (2026 week 11)
Mar 11, 2026 · original
Weeknotes (2026 week 11) Last time I wrote that I seem to be publishing weeknotes monthly. Now, a quarter of a year has passed since the last entry . I do enjoy the fact that I have published more posts focused on a single topic. That said, what has been going on in open source land is certainly interesting too. LLMs in Open Source I have started a longer piece to think about my stance regarding using LLMs in Open Source. The argument I m thinking about is that there s a balance between LLMs having ingested all of my published open source code and myself using them now to help myself and others again. The happenings in the last two weeks (think Pentagon, Iran, and the bombings of schools) have again brought to the foreground the perils of using those tools. I therefore haven t been motivated to pursue this train of thought for the moment. When the upsides are somewhat questionable and te - Podcasts I like listening to (2026 edition)
Feb 13, 2026 · original
Podcasts I like listening to (2026 edition) I have published another post like this almost two years ago . I like listening to podcasts even more than I did back then, when I only just started diving into this world. Sometimes I really like the silence. Other times, podcasts accompany my training regime, my chores and my (short) commute when I m going to the office and not working from home. Let me say that I m not going to differentiate between technology, society, politics and other topics. Everything is political. Especially technology. This is something which could perhaps be overlooked from a privileged position many years ago, but that s not possible anymore without willful ignorance. I ve tried organizing the podcasts according to my listening habits, the order within categories doesn t have any particular meaning. Never miss an episode These are the podcasts I listen to every tim - My 2025 in review
Jan 14, 2026 · original
My 2025 in review I have been inspired by several posts where people reviewed the past year to write such a post too. Vacations I have been going snowboarding for the first time in many many years in February. I have been skiing and snowboarding a lot in my teens and twenties. After moving further away from the alps and also rupturing my cruciate ligament while playing Fussball (soccer) I have been less motivated to pursue these riskier sports and have instead mostly been running and biking. Some may argue if mountain biking really is less risky but for me that seems sort of obvious. Anyway, the motivation to go hit the slopes again was that the kids wanted to go and leaving the gray city in winter is always a great idea. My wife and me have also been in the black forest in Southern Germany twice at the beginning of the year and been spending time together in a nice hotel, eating great f - Rich text editors: How restrictive can we be?
Dec 17, 2025 · original
Rich text editors: How restrictive can we be? How restrictive should a rich text editor be? It s a question I keep coming back to as I work on FeinCMS and Django-based content management systems. I published the last blog post on django-prose-editor specifically in August 2025, Menu improvements in django-prose-editor . The most interesting part of the blog post was the short mention of the TextClass extension at the bottom which allows adding a predefined list of CSS classes to arbitrary spans of text. In the meantime, I have spent a lot of time working on extensions that try to answer this question: the TextClass extension for adding CSS classes to inline text, and more recently the NodeClass extension for adding classes to nodes and marks. It s high time to write a post about it. Rich Text editing philosophy All of this convinced me that offering the user a rich text editor with too m - Weeknotes (2025 week 49)
Dec 5, 2025 · original
Weeknotes (2025 week 49) I seem to be publishing weeknotes monthly, so I m now thinking about renaming the category :-) Mosparo I have started using a self-hosted mosparo instance for my captcha needs. It s nicer than Google reCAPTCHA. Also, not sending data to Google and not training AI models on traffic signs feels better. Fixes for the YouTube 153 error Simon Willison published a nice writeup about YouTube embeds failing with a 153 error . We have also encountered this problem in the wild and fixed the feincms3 embedding code to also set the required referrerpolicy attribute . Updated packages since 2025-11-04 django-sitemaps 2.0.2 : Uploaded a new release which includes a wheel build. Rebuilding the wheel all the time when creating new container images was getting annoying. The code itself is unchanged. django-prune-uploads 0.3.1 : The package now supports pruning a storage backed by - Thoughts about Django-based content management systems
Nov 5, 2025 · original
Thoughts about Django-based content management systems I have almost exclusively used Django for implementing content management systems (and other backends) since 2008. In this time, content management systems have come and gone. The big three systems many years back were django CMS , Mezzanine and our own FeinCMS . During all this time I have always kept an eye open for other CMS than our own but have steadily continued working in my small corner of the Django space. I think it s time to write down why I have been doing this all this time, for myself and possibly also for other interested parties. Why not use Wagtail, django CMS or any of those alternatives? Let s start with the big one. Why not use Wagtail? The Django administration interface is actually great. Even though some people say that it should be treated as a tool for developers only, recent improvements to the accessibility - Weeknotes (2025 week 45)
Nov 4, 2025 · original
Weeknotes (2025 week 45) Autumn is nice I love walking through the forest with all the colors and the rustling when you walk through the leaves on the ground. Updated packages since 2025-10-23 feincms3 5.4.3 : Small fix for the YouTube IFRAME; it seems that the referrerpolicy attribute is now necessary for the embed to work everywhere. django-json-schema-editor 0.8.2 : Allowed forwarding more options to the prose editor component; specifically, not just extensions but also the undocumented js_modules entry. This means that custom extensions are now also supported inside the JSON editor component. django-prose-editor 0.20 : I reworked the menu extension to be customizable more easily (you can now specify button groups and dropdowns directly without using JavaScript code) and I also extended the NodeClass extension to allow assigning predefined CSS classes not only to nodes but also to mar - Weeknotes (2025 week 43)
Oct 23, 2025 · original
Weeknotes (2025 week 43) I published the last weeknotes entry in the first half of September. Drama in OSS I have been following the Ruby gems debacle a bit. Initially at Feinheit we used our own PHP-based framework swisdk2 to build websites. This obviously didn t scale and I was very annoyed with PHP, so I was looking for alternatives. I remember comparing Ruby on Rails and Django, and decided to switch from PHP/swisdk2 to Python/Django for two reasons: The automatically generated admin interface and the fact that Ruby source code just had too much punctuation characters for my taste. It s a very whimsical reason and I do not put any weight on that. That being said, given how some of the exponents in Ruby/Rails land behave I m very very glad to have chosen Python and Django. While not everything is perfect (it never is) at least those communities agree that trying to behave nicely to ea - My favorite Django packages
Oct 22, 2025 · original
My favorite Django packages Inspired by other posts I also wanted to write up a list of my favorite Django packages. Since I ve been working in this space for so long and since I m maintaining quite a large list of packages I worry a bit about tooting my own horn too much here; that said, the reasons for choosing some packages hopefully speak for themselves. Also, I m sure I m forgetting many many packages here. Sorry for that in advance. Core Django speckenv : Loads environment variables from .env and automatically converts them to their Python equivalent if ast.literal_eval understands it. Also contains implementations for loading database, cache, email and storage configuration from environment variables (similar to dj-database-url). I added this functionality to speckenv when some of the available environment configuration apps maintenance state was somewhat questionable. django-cors - LLMs are making me a better programmer...
Sep 12, 2025 · original
LLMs are making me a better programmer… I m still undecided about LLMs for programming. Sometimes they are very useful, especially when working on a clearly stated problem within a delimited area. Cleaning the code up afterwards is painful and takes a long time though. Even for small changes I m unsure if using LLMs is a way to save (any) resources, be it time, water, energy or whatever. They do help me get started, and help me be more ambitious. That s not a new idea. Simon Willison wrote a post about this in 2023 and the more I think about it or work with AI the more I think it s a good way to look at it. A recent example which comes to mind is writing end to end tests. I can t say I had a love-hate relationship with end to end testing, it was mostly a hate-hate relationship. I hate writing them because it s so tedious and I hate debugging them because of all the timing issues and the
Discovered by the rss-feed-index crawler, which checks each feed at most once a month.
Same record as JSON: https://api.agentalog.com/api/feeds/fd_406_ch_9ae8ddf99c32c891. More from this site: 406.ch in the Feeds tab.