Ephes Blog

Miscellaneous things. Mostly Weeknotes and links I stumbled upon.


Wagtail - Splitting up Posts and Episodes

Until now, posts and episodes were the same things in django-cast. But there are some attributes needed for podcast episodes that don't make much sense for normal blog posts like iTunes keywords or whether an episode should be excluded from iTunes or even the audio object that should be used for the episodes enclosure tag in the podcast feed. Maybe it is possible to move the podcast-specific attributes into a new episode page model and get rid of them in a normal blog post? This would make django-cast more usable for people who don't want to set up a podcast but a normal blog.

The stream is a little bit rougher this time, because I wasn't able to prepare anything beforehand. And I had to end the stream early because of other duties. But about an hour after the stream ended, I had the new episode model live in production 🎉.


Weeknotes 2023-01-16

"Stealing “quietly a bit crap” for my bio." --@GunnarBj

First work week of the year. Had less time for my projects but got some stuff done nonetheless:

A business idea I thought about for some time seems to be implemented by Adobe: Enhance voice recordings for free (via Adobe Podcast Enhance: KI macht vollautomatischen Audio-Cleanup). It's about taking crappy audio and improving it by passing it through some ML-model. What makes this idea more interesting than other applications is that training data comes for free in this case. Just take good-quality audio and re-record it using a phone or a bad room. Now you have a pair of bad audio input with a good audio target. It's even possible to parallelize this training data generation.

Articles

Videos

Weeklogs

Software

Podcasts


Podlove Share Sheet Fixing + Wagtail Code Blocks

This week's programming stream was about fixing the share sheet for the Podlove Player on the Python Podcast website and adding code blocks to Wagtail.

The second part about adding code blocks to Wagtail starts at 01:12:30. Here's an example of a code block 😎:

class CodeBlock(StructBlock):
    language = CharBlock(help_text="The language of the code block")
    source = TextBlock(rows=8, help_text="The source code of the block")

    def render_basic(self, value, context=None):
        if value:
            lexer = get_lexer_by_name(value["language"], stripall=True)
            highlighted = highlight(value["source"], lexer, HtmlFormatter())
            return mark_safe(highlighted)
        else:
            return ""

Weeknotes 2023-01-09

in 2023 i have decided to become worse and more unhinged and more of a hater. maybe i will start yelling and biting. i am going chihuahua mode --@punished_cait

Still on vacation. Fixed some bugs in django-cast:

  • The slim version of jQuery broke the comments feature
  • API overview was broken due to a broken reverse lookup for 'image_list'
  • Fixed a bad spam filter bug and recorded a stream fixing it. This was the first programming stream I recorded after about a year and it was surprisingly difficult to get the whole setup up and running again 😆. And it worked: No false positive "ham" comments since 2023-01-04 (should make a badge out of this..)
  • New django-cast release 0.2.1

Other packages:

Articles

Mastodon / Twitter

Books

Software

Podcasts

Out of Context Images


Fixing a Spam Filter Bug

Lately, I had to delete a few spam comments per day on the Python Podcast website. I already built some spam filter for the site, but it didn't work as planned. In this stream I locate the bug and fix it, bringing up the F1 value for "ham" from 0.4 up to about 0.95, which will be enough for some time, hopefully.

Full disclosure: I found the bug before recording the stream because I'm experimenting with a small change in the stream format. I'd like to give it a little bit more story instead of just poking around randomly in the codebase 😁. The goal is to have more structure and a more relaxed schedule. Let's see how this works out.

The actual bug fixing starts around 01:31:00 and the stream language is german.