Skip to content

2026

Moviebuff

Moviebuff is a Django application originally written by retiolus that was released last August. I’m not sure how I originally came across it, but I remember it being demonstrated on Mastodon. Moviebuff allows you to track and rate the movies you watch and share them on the Fediverse.

I already have a music site and I’ve been tracking what I watch manually, so I was kind of excited for Moviebuff. I forked it right away, but there wasn’t any installation instructions and I’ve never used Django. I was able to reverse the first few things needed in the .env file, such as the Django secret key, an API key from The Movie Database, but I couldn’t figure out how to get Federation working. The code to add Federation didn’t appear to be in the original repository or any of its branches.

So there it sat. I debated a few times about opening an issue in the Moviebuff repository asking for help, but I didn’t want to bug the maintainer and I was just grateful that anything had been shared and open sourced.

After successfully using Claude Code to help create the circuitpython-bambulabs library, I pointed Claude at Moviebuff and away it went. It surprised me again when it was able to add Federation to the project based on the scaffolding that was already there, no database changes needed.

I’ve done a few projects in Pyramid and FastAPI, so Python based web frameworks weren’t totally new to me. Partnered with Claude, I went to work.

Things I’ve updated and changed:

  • Added dark mode and made it the default with a toggle to change light or dark mode on the home page
  • Added working Federation based on the buiding blocks present in the app
  • Changed Federation to only post when a movie is rated. Also added a Share to Fediverse button using HTMX that appears when a movie is added to the Watched Movies list
  • Added an environment variable and code to enable or disable registration (to avoid spammers)
  • Disabled the registration pages if the user is unauthenticated and registration is disabled
  • Updated the home page to show a legend, the five most recent movies rated, movie posters for the four most recent movies rated, and HTMX to page through the rated movies
  • In the Dashboard, added HTMX to page through all the Watched Movies
  • In each movie card, added the star ratings for the movie
  • Updated the datetime fields to be MON/DAY/YEAR and added commas to the movie's budget
  • Added a Font Awesome film icon in the upper left and made it and Moviebuff clickable to return to the home page
  • Added a custom footer that matches silversaucer.com
  • Added a CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • Added installation instructions in the README

You can see it in action at https://moviebuff.silversaucer.com. I’ve added most of the movies I watched in Feburary and March and I’m still debating about adding earlier movies.

The code lives at Codeberg and I’ve made a synchronized mirror on GitHub. If you like it, give it a star! And if you really want to know what I’ve watched, you can follow me on Mastodon at @prcutler@moviebuff.silversaucer.com.

I’m so grateful to retiolus for creating the app and releasing it under an open source license. I’m looking forward to rating, cataloging, and sharing the movies I watch.

Moviebuff homepage screenshot

What I'm Watching - Q1 2026

It's a new year and I'm still tracking what I'm watching. I have a number of television shows still in progress. I don't write them down until the season I'm watching has finished.

Highlights include finally getting around to For All Mankind season 4 with season five having just started. I highly recommend this show if you haven't seen it. I also enjoyed Predator: Badlands, Have Fun, Don't Die, Good Luck, and The Rip. Whatever you do, don't watch Mercy. I still need to catch up on some of the Oscar nominees.

Legend

  • The Criterion Channel = *

  • 4K UHD = +

  • AppleTV+ = ^

  • Netflix = ~

January

  • Predator: Badlands (2025)
  • Boogie Nights+ (1997)
  • The Rip~ (2026)
  • Dust Bunny (2025)
  • Landman S2
  • What Lies Beneath~ (2000)
  • For All Mankind S4^
  • If I Had Legs, I’d Kick You (2025)

February

  • Loot S3^
  • The Wrecking Crew (2026)
  • The Ballad of Wallis Island (2025)
  • The Assessment (2025)
  • The Lazarus Project S2
  • Is This Thing On? (2026)
  • Mercy (2026)
  • The Housemaid (2025)
  • Eternity (2026)^
  • Industry S1
  • Honey Don’t (2025)~

March

  • Crazy Stupid Love (2011)~
  • Mission: Impossible 2 (2001)+
  • Dracula (2027)
  • A Man on the Inside S2~
  • Good Luck, Have Fun, Don’t Die (2027)
  • Pacific Rim (2013)+
  • Firefly (2001)
  • Serenity (2005)+
  • Send Help (2026)
  • How to Make a Killing (2026)

circuitpython-bambulabs Published!

Following up on my blog post from yesterday, I spent Sunday preparing the circuitpython-bambulabs library to be published.

Unfortunately, I ran into an issue with the CI where it was failing to build. Thanks to some pointers from todbot, I was able to refactor the library and move the MQTT setup into the BambuPrinter class. This makes me happy as the user doesn't have to set up MQTT, assuming they've entered their printer settings in settings.toml, the library handles connecting for you.

I also heard from Brent Rubell at Adafruit who confirmed that the MQTT library for CircuitPython uses MQTT 3.1.1 - which is odd, because while MQTTX would connect locally using 3.1.1 (and not 5.0), CircuitPython would not connect locally. I'll investigate this more as I'm guessing some people would rather connect locally instead of through Bambu Cloud.

Other things I learned:

  • The Creating and sharing a CircuitPython library Learn Guide needs some updates. The process to create docs on ReadtheDocs has changed, libraries use ruff now for linting instead of Pylint and black, and sharing in the Library bundle needs some updates.
  • The Learn Guide doesn't cover publishing to PyPi, though the cookiecutter template does include the GitHub Actions to publish the library. It took me longer than it probably shoudl to figure out how to enter the secrets in GitHub to allow it to build and upload. This would be helpful to add to the Learn Guide.
  • The section in the Learn Guide on Sharing in a Bundle also needs an update. The section on verifying didn't work for me, though Updating the Library list did.

Lastly, a big thank you to Foamyguy who merged my pull request to add the library to the Community Libraries right away! You can find more about the library by:

  • Install via circup: circup install bambulabs to install on your microcontroller. (Just tested it and it's so cool to see that work!)
  • PyPi
  • ReadtheDocs
  • GitHub repository (And if you like it, give it a ā­ļø)

Bambu Labs CircuitPython Library

I follow a number of people on GitHub and one of them is my good friend todbot. I noticed in my feed he he had starred an Arduino program called Bambu Helper that displays information and statistics from your Bambu Labs printer, such as the percentage progress of the current print, nozzle temperature, fan speed, and more.

That got me thinking - if it can be done in Arduino, it can be done in CircuitPython. It's been a couple years since I had a good CircuitPython project, so away I went. I started researching the Bambu API and more GitHub repositories than I can count, mostly Python projects that connect to a Bambu Printer using MQTT.

I then used MQTTX to connect to my printer and test the various MQTT methods. I was able to successfully connect to my P1P printer both through Bambu Cloud and locally over my network.

And then I cheated - I used Claude to bootstrap the project by pointing it at the API Docs and the BambuHelper Arduino app to create a proof of concept in CircuitPython. (I know, I know... the AI skeptic just used AI) It got pretty close - it did get the MQTT command to request a full status update wrong, but that was an easy fix.

I had the proof of concept working on my S3 Qualia board and 4" display:

Bambu Labs info displayed on a 4" screen

One thing I learned, though I'm waiting to confirm, is that CircuitPython only uses MQTT 5.0, and not 3.1.1. Connecting via Bambu Cloud will connect on both MQTT standards, but the local connection only will connect using 3.1.1, which CircuitPython doesn't appear to use that I could figure out. That means you have a few extra hoops to jump through to get a token and user ID, but it wasn't that hard and I've documented the process.

Unfortunately I appear to have fried both my S3 and S2 Reverse TFTs (thanks macOS) which I wanted to prototype with. Using a $50 worth of equipment is a bit much for a project like this. But that got me thinking - what if I could create a library so people could just get the info from the printer and then build their own UI on top of it to match their choice of microcontroller and screen?

So that's what I did next, by creating the CircuitPython_bambulabs library. This is the first time I've ever created a library and I'm following along with both the Learn Guide and the design reference. Parts of the Learn Guide are outdate (hello Ruff), but overall it hasn't been bad, though I loathe writing reStructured Text and much prefer Markdown. At least the cookiecutter setup makes it easy to edit.

Assuming you've got all the settings correct in settings.toml, the library handles the MQTT setup and querying the printer to get the JSON response and breaking down that response into individual methods.

It is also possible to send commands to your printer, for example to set the bed temperature or turn the light on or off. I purposefully did not include commands, this library is only for viewing the various status messages available from the printer.

I created a simpletest that connects to the printer and prints to serial a nicely formatted list of all the information returned from the printer and a raw dump of the JSON.

The GitHub Actions for the library are currently failing as it doesn't import the bambulabs library or the wifi module. I'm not sure why yet and have asked for some help. If you want to test it out, you can clone the repo and copy the bambulabs.py file to your /lib directory or the root directory of your CircuitPython microcontroller.

When the library is finally published and is available via circup, I'll post an update to the blog. And if you have any feedback, please let me know by dropping me an email or leaving an issue or comment in the repository.

What I'm Watching - Q4 2025

Wrapping up the year, here's everything I watched in October, November, and December, excluding sports. Because there is a lot of football that isn't accounted for, which is why my total watchlist is down. Well, that and a bit of gaming took out a chunk in November and I was traveling half of December.

I plan on continuing to track my watchlist monthly, though I'm unsure if I'll keep blogging it. A small part of me is tempted to do what Steven Soderbergh does, and track everything. But I probably really don't want to know how much time I spend watching baseball and football.

Highlights include K-Pop Demon Hunters, Peacemaker S2, Task, Wake Up Dead Man, One Battle After Another, and Pluribus. I was disappointed with A House of Dynamite, The Roses, Relay, and Good Fortune.

Legend:

  • The Criterion Channel = *

  • 4K UHD = +

  • AppleTV+ = ^

  • Netflix = ~

October

  • Peacemaker S2
  • K-Pop Demon Hunters~
  • Task
  • The Parallax View (1974)*
  • Punch Drunk Love (2002)*
  • Mission: Impossible (1996)+
  • A House of Dynamite (2025)~
  • Platonic S2
  • The Roses (2025)

November

  • The Toxic Avenger (2025)
  • Chad Powers S1
  • Panic Room (2002)*

December

  • Tron: Ares (2025)
  • A Man on the Inside (2024) S1~
  • Parish (2024)~
  • Fatman (2020)~
  • Good Fortune (2025)
  • One Battle After Another (2025)
  • Relay (2024)
  • Mayor of Kingstown S1
  • The Running Man (2025)
  • Wake Up, Dead Man (2025)~
  • F1
  • Pluribus (S1)
  • The Copenhagen Test S1
  • Dogma (2000)+