Ephes Blog

Miscellaneous things. Mostly Weeknotes and links I stumbled upon.


Weeknotes 2023-03-13

, Jochen
Whenever someone at work tries to make you do something hard, simply because "you did it last time", remember that Elrond had been to Mount Doom before.
Sometimes you need to make the hobbits do the work so they stop seeing it as a zero-cost action. --John Bull

Covid has returned for a second round. Considering the amount of work to do, I hope it will be mild this time. We already had to cancel two podcast appointments because of sickness, so no podcast episode this month.

But I'm pleased about the progress achieved on django-cast last week. It's now possible to switch between themes using the wagtail admin (for the complete site or a single blog). You can also add your own bunch of theme templates in a new directory and select it in the admin. At the moment this only works with Django template loaders that are filesystem based. I also fixed a little bug causing a broken backlink when you commented on a post without Javascript (wagtail pages do not implement get_absolute_url by default).

Articles

Weeknotes

Books

Videos

Software

Podcasts

Out of Context Images


Weeknotes 2023-03-06

, Jochen
CATHOLIC CHURCH: No meat on Fridays
PEOPLE: Ok so no eggs for breakfast
CC: No, eggs are ok
P: But eggs are chicken
CC: Not until they hatch
P: So the thing isn't the thing until it's born?
CC: Correct—um, no, wait. --Sean Kelly

Lots of work. Didn't have time to do much else. At least the weather is getting better.

Released django-cast 0.2.7 with:

  • New API endpoints for pages and images
  • A noindex option for excluding a blog and all posts from search engines
  • Some small bug fixes

Articles

Video

Mastodon / Twitter

Software

Podcasts

Out of Context Images


Weeknotes 2023-02-27

, Jochen
"Maintaining a successful open source project is Good Will Hunting in reverse. You start out as a respected genius, and end up being a janitor who gets into fights." — Byrne Hobart (@ByrneHobart@twitter.com)

Good progress on work-related stuff. Didn't have much luck with my own projects this week. I tried to lower the number of database queries django-cast has to do to show the list of all posts for a blog, but it went nowhere. Then I spent way too much time trying to add a pages endpoint to the django-cast API. At least I found out how to integrate a Wagtail API into a local namespace. And finally, there was this cool PR from Dorthe Luebbert I got to merge adding Paprika-Export-Support for kptncook 🎉.

Last Thursday, I had a chaotic neutral encounter at a print shop. As I was getting some documents printed, I noticed a struggling man trying to navigate his iPad. Being the good Samaritan that I am, I offered to help by connecting his device to my phone. But little did I know, I was about to embark on a wild ride of confusion and identity crisis. The man turned out to be none other than Jochen Busse, and as fate would have it, he had also named his phone "Jochens iPhone" just like I had. I couldn't believe it - a Jochen convention right in the middle of the print shop! And to add insult to injury, I now have to change my phone name because apparently, I'm just a regular Jochen. (credits to chatGPT for making this paragraph more "accentuated" 😅).

Articles

Mastodon / Twitter

Software

Weeknotes

Podcasts


TIL: Integrate Wagtail API into Local Namespace

, Jochen

I wanted to incorporate a wagtail pages endpoint into django-cast. Although I successfully added it to the global URLConf as per the official documentation, django-cast serves as a third-party library, and its API should likely exist within the cast namespace. This didn't work and I ended up always seeing an error like this:

NoReverseMatch at /cast/api/pages/
'wagtailapi' is not a registered namespace

After a significant amount of experimentation, I eventually discovered a method to successfully employ the WagtailAPIRouter in the local URLConf:

# api views.py
from wagtail.api.v2.router import WagtailAPIRouter
from wagtail.api.v2.views import PagesAPIViewSet

wagtail_api_router = WagtailAPIRouter("cast:api:wagtail")
wagtail_api_router.register_endpoint("pages", PagesAPIViewSet)

# local urls.py
app_name = "api"
urlpatterns = [
    ...,
    # wagtail api
    path("wagtail/", include((views.wagtail_api_router.get_urlpatterns(), "api"), namespace="wagtail")),
]

Here's how the pages endpoint reversal works now:

reverse("cast:api:wagtail:pages:listing")

Weeknotes 2023-02-20

, Jochen
“Raw data is both an oxymoron and a bad idea; to the contrary, data should be cooked with care.”—Geoffrey Bowker

Work, carnival, and some progress on my side projects. Finally managed to try out the cool new openpodcast stack for podcast analytics. Hmm, first I have to find a way to get it to work with postgres instead of MySQL. Looking forward to shooting some pictures again, since I forgot the charging cable for my camera two months ago and now got it back 📸.

django-cast release 0.2.6:

  • Got codecov.io to show 100% coverage (fixed the GitHub action submitting the coverage results)
  • The release of django-crispy-forms broke tests and comments and stuff -> I was able to fix it after reading the migration guide
  • Documentation for Pagination

homepage / python-podcast:

  • Tuned down traces/performance metrics for sentry
  • Fixed date facets breaking out of the form-control container for python-podcast.de

kptncook:

Articles

Software

Mastodon / Twitter

Podcasts