Plurrrr

home

A bug in tumblelog

Yesterday I noticed that the Archive section of this blog had a 2026 link while I hadn't blogged yet thanks to the email notification I got from Ahrefs. Inside the message it mentioned a critical 4XX page. When I checked my blog, I noticed that the 404 was caused by the Archive section: the first week of januari 2026 starts in 2025, hence there was already a 2026 link.

Today I came up with a solution: keeping track of years blogged and using that to decide if the year is a link or not. So I increased the version to 6.0.0. The change log is as follows:

  • Fix year bug in archive creation: a year could show up while it wasn't available
  • Use utf-8 in read_entries to make it more consistent in tumblelog.py

As usual the latest version is available on GitHub.

Hot Pursuit (2015)

An uptight and by-the-book cop tries to protect the outgoing widow of a drug boss as they race through Texas pursued by crooked cops and murderous gunmen.

In the evening Alice, Esme, and I watched Hot Pursuit. I liked the movie and rate it a 7 out of 10.

Unfinished Business (2015)

A hard-working small business owner and his two associates travel to Europe to close the most important deal of their lives. But what began as a routine business trip goes off the rails in every way imaginable, and unimaginable.

In the evening Esme and I watched Unfinished Business. I liked the movie and rate it a 7 out of 10.

The Curious Cat

Just before the end of the year Jaiden had lighted two candles. Our cat, Lina, was very curious and ended up examining one close up. Jaiden managed to take a photo.

Lina the cat gazing at a candle
Lina the cat gazing at a candle. Photo taken by Jaiden.

Later she got even closer to a candle so we shooed her away before she could hurt herself.

Lina handled the fireworks outside quite well. Only close to 12 o'clock she became restless.

A new router: GL.iNet GL-AX1800 Flint

At the end of the afternoon the router I ordered yesterday at Amazon arrived: a GL.iNet GL-AX1800 Flint. Setting up the router was a piece of cake and soon it had replaced the TP-Link TL-WDR4300 with OpenWrt. The latter was causing unexplained disconnects very often. At least, I suspected the router. The Flint is noticeable faster and seems to have a slightly stronger signal.

The Tainted Cup

In Daretana’s greatest mansion, a high imperial officer lies dead—killed, to all appearances, when a tree erupted from his body. Even here at the Empire’s borders, where contagions abound and the blood of the leviathans works strange magical changes, it’s a death both terrifying and impossible.

Assigned to investigate is Ana Dolabra, a detective whose reputation for brilliance is matched only by her eccentricities. Rumor has it that she wears a blindfold at all times, and that she can solve impossible cases without even stepping outside the walls of her home.

At her side is her new assistant, Dinios Kol, magically altered in ways that make him the perfect aide to Ana’s brilliance. Din is at turns scandalized, perplexed, and utterly infuriated by his new superior—but as the case unfolds and he watches Ana’s mind leap from one startling deduction to the next, he must admit that she is, indeed, the Empire’s greatest detective.

As the two close in on a mastermind and uncover a scheme that threatens the Empire itself, Din realizes he’s barely begun to assemble the puzzle that is Ana Dolabra—and wonders how long he’ll be able to keep his own secrets safe from her piercing intellect.

In the evening I started in The Tainted Cup by Robert Jackson Bennett.

A Time for Bravery (2025)

A psychoanalyst is sentenced to community service following a traffic accident and is assigned to provide therapeutic support to a police agent devastated by his wife's infidelity. The two will face unimaginable dangers together.

In the evening Esme and I watched A Time for Bravery. I liked the movie and rate it a 7 out of 10.

Wake Up Dead Man (2025)

Detective Benoit Blanc teams up with an earnest young priest to investigate a perfectly impossible crime at a small-town church with a dark history.

In the evening Esme and I watched Wake Up Dead Man. The movie was very slow in the beginning but got better and I rate it a 7 out of 10.

Beetlejuice Beetlejuice (2024)

After a family tragedy, three generations of the Deetz family return home to Winter River. Still haunted by Beetlejuice, Lydia's life is turned upside down when her teenage daughter, Astrid, accidentally opens the portal to the Afterlife.

In the evening Alice, Esme, and I watched Beetlejuice Beetlejuice. I liked the movie and rate it a 7 out of 10.

Jingle Bell Heist (2025)

At the height of the holiday season, two strangers team up to rob one of London's most famous department stores while accidentally falling in love.

In the evening Esme and I watched Jingle Bell Heist. The movie was OK and I rate it a 6 out of 10.

Genie

The film is a fairy-tale comedy about a workaholic man who enlists the help of a magical genie to help win his family back before Christmas.

In the evening Alice, Esme, and I watched Genie. The movie was OK and I rate it a 6 out of 10.

A Merry Little Ex-Mas (2025)

A separated couple tries celebrating one last Christmas together with their kids before their divorce. However, the husband's new girlfriend joins the festivities, causing tension and chaos during the holidays.

In the evening Alice, Esme, and I watched A Merry Little Ex-Mas. The movie was OK and I rate it a 6 out of 10.

Two releases of tumblelog

In the afternoon I did two releases of tumblelog. After I had made several small code changes and pushed those to GitHub as version 5.8.0 I decided to make a new style as well.

The change log for 5.8.0 is as follows:

  • Avoid needless object creation in HTML generation in tumblelog.py
  • Don't keep track of tag count twice in create_tag_pages
  • Remove year_week construct from create_archive

And the change log for 5.9.0 is as follows:

  • Add a new style mocha

I used ChatGTP to create a style based on the Catppuccin Mocha palette.

Some improvements to tumblelog

Today I continued with making some small improvements to tumblelog. Yesterday, inspired by "The Story of Python", I added the walrus operator to the Python version where it made sense. And today I did some other changes. The complete change log for tumblelog 5.7.0 is as follows:

  • Use the walrus operator in tumblelog.py
  • Use tuple unpacking in create_year_pages in tumblelog.py
  • Use sorted() without keys in tumblelog.py
  • Precompute years list in create_year_pages in tumblelog.py
  • Make create_blog cleaner in both tumblelog.pl and tumblelog.py

As usual the latest version is available on GitHub.

The Hustle (2019)

Two con women - one low rent and the other high class - team up to take down the men who have wronged them.

In the evening Esme and I watched The Hustle. The movie was less funny than expected and I rate it a 6 out of 10.

A Matter of Style

In the afternoon I replaced the deprecated @import with @use in all styles of tumblelog. I had planned to do so for quite some time and today I finally could find the time. I also generated a new screenshot for each style.

The change log for tumblelog 5.6.0 is as follows:

  • Switch to @use instead of deprecated @import in all styles
  • Generate new screenshots
  • Update README
  • Bump version to 5.6.0

Nothing spectacular but a most needed update. As usual the latest version is available on GitHub.

Video Trouble

In the afternoon, when I wanted to watch "The Story of Python" I discovered that LibreELEC, at least the version I have on my Raspberry Pi, didn't support the file format. It crashed each time when I opened the file. So I decided to download the file as an MP4 as follows:

youtube-dl \
  -f "bv*+ba/b" \
  --merge-output-format mp4 \
  https://youtu.be/GfH4QL4VqJ0
  • bv*: best available video-only stream
  • ba: best available audio
  • bv*+ba/b: combine video+audio, fall back to best single file
  • --merge-output-format mp4: final file is MP4

Note that youtube-dl is an alias for yt-dlp in the above command.

The download video and the merging took 17 minutes and 32 seconds.

But, alas, this video also didn't work with LibreELEC. So I ended up watching the video on the Apple TV using the YouTube app. I liked the documentary, it was nice to see the people I knew only by name. And the commercials? Only once somewhat in the middle.

Kill Bill: Volume 2 (2004)

The Bride continues her quest of vengeance against her former boss and lover Bill, the reclusive bouncer Budd, and the treacherous, one-eyed Elle.

In the evening Alice, Esme, and I watched Kill Bill: Volume 2. I liked the movie more than the first one and rate it a solid 8 out of 10.

Some small changes to tumblelog

In the evening I pushed a new version of tumblelog to GitHub. Most of the changes I had done in the evening but the Docker related ones I had done earlier. The complete change log for tumbelog 5.5.0 is as follows:

  • Pin Alpine version to avoid gcc 15 issue in perl.Dockerfile
  • Pin versions and optimize sass.Dockerfile
  • Make sass.Dockerfile distroless resulting in a smaller image
  • Use say instead of print "...\n"; in tumblelog.pl
  • Obtain current year using year method in tumblelog.pl
  • Optimize create_tag_pages by using a defaultdict in tumblelog.py
  • Use meta.get('id'); more Pythonic, in tumblelog.py
  • Use f-string in get_tag_path in tumblelog.py
  • Use generator expression instead of list comprehension tumblelog.py
  • Use groupby from itertools in create_tag_pages in tumblelog.py

I also posted an announcement to the Usenet group comp.lang.python. Yes, I am back on Usenet after like 15 years or so. It's still not dead but not much traffic. Some of the groups I was subscribed to in the past hardly get any messages if any.

Downloading "The Story of Python" from YouTube

Yesterday I installed yt-dlp from MacPorts as follows:

sudo port install -v yt-dlp

After a very long wait the installation of yt-dlp was ready.

The program can be used to download videos from a large number of sites, including YouTube. It is a fork of youtube-dl. Since I can recall that command easier, I added the following to my .zshrc:

alias youtube-dl='yt-dlp'

And today I used the following command to download The Story of Python:

youtube-dl \
  https://youtu.be/GfH4QL4VqJ0

Note that youtube-dl is an alias for yt-dlp in the above command.

I downloaded the movie so I can watch it without commercials on our TV via a Raspberry PI running an older version of LibreELEC. The download of the video and merging took 33 minutes and 31 seconds. The resulting video has extension webm so I hope LibreELEC can play it.