Ephes Blog

Miscellaneous things. Mostly Weeknotes and links I stumbled upon.

Date -

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


Weeknotes 2023-02-13

, Jochen
The logic of the world is prior to all truth and falsehood. —Ludwig Wittgenstein

Been sick for the umpteenth time this winter. Tried to do some chores on django-cast to pass the time:

  • The test coverage is now at 100% (failed to configure codecov.io to report the right number..)
  • Nearly complete type annotations, which created a bug in production (failing isinstance call which got necessary to make mypy pass)
  • Wagtail 4.2 compatibility, which led to this bug report
  • Fixed the pagination feature

Updated my self-hosted mastodon instance to 4.1, which was just a redeploy - smooth.

Articles

Software

  • Mypy 1.0 Released | And it's faster 🥳
  • SiYuan | An obsidian alternative
  • slippers - Build reusable components in Django without writing a single line of Python

Mastodon

Video

Podcasts


Weeknotes 2023-02-06

, Jochen
I am wondering what should be the color of this bikeshed? --@kushal

The usual work and usual chores. Nothing interesting here.

Finally tried out Obsidian - wow, this is a deep rabbit hole. Syncing also works with iCloud folders between iOS and macOS. It's not great but sufficient for my needs (sharing links with the daily note).

Split the blog and podcast model and released a new django-cast version.

Articles

Weeknotes

Software

Mastodon / Twitter

Podcasts