Weeknotes 2022-11-28
,Did some cleanup after switching to the new wagtail-based django-cast for my homepage and python-podcast.de. Had to rename the users, backup, and remove the old services. Made sure the new backup is working. Then I deployed a self-hosted Mastodon instance and migrated my user there, which worked out well.
Went to the trivago Tech Get Together event to meet with friends and former co-workers. Had a lot of fun and heard about openpodcast.de - an open platform for podcast analytics, which is an interesting and promising project.
Articles
- Stable Diffusion and AI generated art is absolutely wild in every way | Some solid fun with stable diffusion
- Verifying your GitHub profile on Mastodon
- Fedi.Tips - An Unofficial Guide to Mastodon & the Fediverse
- The case for dynamic, functional programming
- Massively increase your productivity on personal projects with comprehensive documentation and automated tests | Writeup of Simon Willisons DjangoCon US 2022 talk
- Lazy loading images in HTML | Hmm, now I have to find out a way to determine the size of images on my website.. I usually use just 100vw, does this work?
- Science and Technology links (November 26 2022) | "Molière’s famous play, Tartuffe, the main characters is outwardly pious but fundamentally deceitful. Are people who insist on broadcasting their high virtue better people, who are they more like Tartuffe. Dong et al. (2022) conclude that people who say that they have good values are not necessarily better people in practice, but they are more likely to be hypocrites according. That is, Tartuffe is a realistic character. It is worth pointing out that Molière’s play was censored by the king." Hehe, we just talked about this in the last podcast episode, right?
- Mastodon on your own domain without hosting a server
TIL this week
Software
- Save Your Threads | High-fidelity capture of Twitter threads as sealed PDFs
- Comfort noise for different use cases
- Twitter Archive Parser | Written in Python
- Pleroma | ActivityPub implementation written in Elixir
- GoToSocial | ActivityPub implementation written in Go
- Mastodon website bookmarklets
Podcasts
- Bits und so #818 (GTO) (Bits und so)
- Folge 1: Einführung – Die Moderne verstehen (Andreas Reckwitz im Gespräch: Die Gesellschaft der Singularitäten)
- #13: Open Source Business Models (TOPP: The Open Podcast Podcast)
- Open Web mit Matthias Pfefferle (Wo wir sind ist vorne) | little bit slow, but lots of interesting resources
- Trööt statt Tweet - mit Leah Oswald (She Likes Tech)
Out of Context Images
TIL: Setting up a Mastodon Instance
,This was easier than expected. For the most part, I followed the official "Installing from source" documentation. But there were some differences, too. Therefore writing this up might be useful for someone with a similar setup.
The Stack I Used
Weeknotes 2022-11-21
,"Better to sink in boundless deeps, than float on vulgar shoals; and give me, ye gods, an utter wreck, if wreck I do." —Mardi
Lots of stuff happened last week besides work. After we finally found time to meet for some podcasting the week before last week, I finished producing our podcast episode about Python 3.11 😎.
Last week I wondered how long it will take to migrate the content after being able to deploy my new wagtail-based django-cast version. Turns out it didn't take that long, because now both this website and python-podcast.de are running the latest Python/Django/Wagtail combination. Ok, I have to admit it was a lot of work, and I broke some stuff, but now it's done. Finally 🍾! I started this project around 2019, so long ago that I don't even remember exactly when!
Articles
- Digital detritus | This is a great idea. I kind of do this with video and pictures, too. But I struggle badly with email and I already have a hoard or two on some external hard drives *sigh*.
- After Twitter | Ok, maybe I give mastodon a try, besides looking very yakish
- Databases on un-RAID-ed storage?
- The Sky Is Falling | Hmm ok, how can I short this?
- Twitter, ActivityPub and The Future | ActivityPub might be good enough and Andrew Godwin is writing a Mastodon-compatible server based on Django. Ok, where do I have to sign?
- Takahē: A New ActivityPub Server | Django, async, and now even htmx! Need to look at the source, soon...
Weeknotes
- Weeklog for Week 45: November 07 to November 13 | Johannes
- Week in Review 2022-11-14 | Luis
Software
- Mastodon release v4.0.0
- Yamanote | Bookmark pages to SQLite, an interesting approach
- Takahē is a new ActivityPub server, designed for efficient use on small- to medium-size installations, and which allows you to host multiple domains on the same infrastructure | Super interesting, by Andrew Godwin
Podcasts
- #333 – Andrej Karpathy: Tesla AI, Self-Driving, Optimus, Aliens, and AGI (Lex Fridman Podcast)
- Revision 545: The State of CSS (Teil 1) (Working Draft)
- Mastodon for Python Devs (Talk Python To Me) | Ok this has pushed me over the edge, now I have to try it 😱
Out of Context Images
No images this week, I was busy sitting inside staring at computer screens.
TIL: Be careful with your wagtail javascript
,Currently I'm busy replacing my home grown content editing solution for my blog software django-cast with Wagtail. I copied the javascript part needed for the wagtail admin to add audio blocks from the video javascript and forgot to replace all occurrences of videoTitle with audioTitle. Besides being wrong this worked for Wagtail2.
But last week I upgraded to Wagtail4 and now audio blocks are discarded without any error message. What happened? Well, now the javascript error causes wagtail to not include the audio block in the block count that it sends to the server when the page is saved. And the wrong block count number then causes the Wagtail edit form handler to just ignore the block completely 🙃.
TLDR: Copy&paste saved me a few minutes in the short run, but did cost me a few hours of debugging a year later.
Weeknotes 2022-11-14
,Lots of stuff to do. Some of the projects I worked on last week:
Homepage
Since last week it's possible to deploy my homepage to staging using the new Wagtail-backed django-cast. I start to wonder how much effort it will be to migrate the content. In the old system, blog posts are just plain Django templates that are stored in the database and will be rendered upon request. This works fine but only if you fully trust the content editors, since they can inject arbitrary javascript code for example. But I want to use it to build a SaaS product and this would make it rather unpleasant I guess. In the new django-cast version I'll use the Wagtail CMS editor which should be safe to use for untrusted editors.
But now I need to convert all my template-based content to StreamField. Which seemed difficult at first, but then my lack of HTML knowledge saved the day: just throwing my old HTML content into a RichTextBlock living in a StreamField worked surprisingly well (see this: from legacy to wagtail conversion notebook). Seems like I can get away with just converting my custom template tags for images, galleries, videos and audio into proper StreamField blocks and keeping the rest of the html basically as it was. Sweet.
Django-Cast
Added a DELETE_WAGTAIL_IMAGES setting to be able to deactivate wagtail delete images physically to be able to test migrations.This only works if cast happens to be placed behind wagtail in INSTALLED_APPS since Django has no way to call a function after all apps were installed. Video posters do now work with wagtail videos. The gallery modal now also works on the blog list page and not only on the post detail page.
django-template
Articles
- Substitute | webcomic
- A Python 3.11 “gotcha”
- The internet is already over
- Curiosity as tourism
- An interactive guide to color & contrast
- Mastodon is just blogs | Ok, I'll probably give mastodon a try, having to host it by myself probably, since masto.host is temporarily unavailable atm
- Inside the mind of a frontend developer: Hero section
Twitter
Weeknotes
- Weeklog for Week 44: October 31 to November 06 | Johannes
- Week in Review 2022-11-07 | Luis
- Designing a write API for Datasette | Simon Willison
Software
- In defense of linked lists
- minestrone | nicer wrapper around
Beautiful Soup
microblog.pub - A self-hosted, single-user, ActivityPub powered microblog
Awesome Htmx
django-unfold - Unfold is a new theme for Django Admin incorporating some most common practises for building full-fledged admin areas
Books
Videos
- DjangoCon 2022 | Data-Oriented Django | Talk by Adam Johnson via Luis
Podcasts
- Episode 131: Exploring the New Features of Python 3.11 (The Real Python Podcast)
- Python Perf: Specializing, Adaptive Interpreter (Talk Python To Me)
- Python 3.11 is here and it's fast (Talk Python To Me)
- DjangoCon US 2022 Recap (Django Chat)
- #307: Your Python just got faster (3.11 is out!) (Python Bytes)
- Episode 129: Using an Ellipsis in Python & Goals for CPython 3.12 (The Real Python Podcast)
- Higher level Python asyncio with AnyIO (Talk Python To Me)