<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>TotalDebug</title>
  <subtitle>Technology. Inside Out</subtitle>
  <link href="https://totaldebug.uk/feed.xml" rel="self"/>
  <link href="https://totaldebug.uk/"/>
  <updated>2026-07-19T13:01:59+01:00</updated>
  <id>https://totaldebug.uk/</id>
  <author><name>Steven Marks</name></author>
  
  <entry>
    <title>Run your own ChatGPT: self-hosted LLMs with Docker Compose</title>
    <link href="https://totaldebug.uk/posts/self-hosted-llms-ollama-open-webui-docker-compose/"/>
    <updated>2026-07-06T10:00:00+01:00</updated>
    <id>https://totaldebug.uk/posts/self-hosted-llms-ollama-open-webui-docker-compose/</id>
    <category term="Docker"/><category term="Homelab"/>
    <summary>I use Claude Code every day but not everything belongs in the public domain: personal data, private notes, half-formed ideas. For those I’d rather keep the conversation local.</summary>
  </entry>
  
  <entry>
    <title>A self-tuning write throttle for batch Postgres jobs</title>
    <link href="https://totaldebug.uk/posts/adaptive-write-throttle-for-batch-postgres-jobs/"/>
    <updated>2026-06-22T10:00:00+01:00</updated>
    <id>https://totaldebug.uk/posts/adaptive-write-throttle-for-batch-postgres-jobs/</id>
    <category term="Python"/><category term="Database"/>
    <summary>I have a background job that writes a lot of rows. It chunks a big import into batches and upserts each batch into Postgres. On its own that’s fine. The problem is that it doesn’t run on its own: the same database is serving live traffic and a handful of other workers at the same time. When my import goes full tilt, everyone else feels it.</summary>
  </entry>
  
  <entry>
    <title>Reviving an Abandoned Open-Source Project: 6 Years of Atomic Calendar Revive</title>
    <link href="https://totaldebug.uk/posts/reviving-an-abandoned-open-source-project/"/>
    <updated>2026-06-12T10:00:00+01:00</updated>
    <id>https://totaldebug.uk/posts/reviving-an-abandoned-open-source-project/</id>
    <category term="Open Source"/><category term="Home Assistant"/>
    <summary>There’s a particular kind of sinking feeling you get as a user of open-source software. You’ve built your setup around a tool you love, it does exactly what you need, and then you notice the last commit was eighteen months ago. The issues are piling up. A platform update breaks it. And the maintainer, understandably, has moved on with their life.</summary>
  </entry>
  
  <entry>
    <title>Ditch the Manual Chore: Automating Releases and Versioning with release-please</title>
    <link href="https://totaldebug.uk/posts/ditch-the-manual-chore-automating-releases-and-versions/"/>
    <updated>2025-11-03T10:14:35+00:00</updated>
    <id>https://totaldebug.uk/posts/ditch-the-manual-chore-automating-releases-and-versions/</id>
    <category term="Automation"/><category term="Git"/>
    <summary>I love coding, I love seeing new features come to life, and I genuinely enjoy writing documentation (I know, weird right?). But if there’s one part of the development lifecycle that consistently makes me want to scream into my pillow, it’s the tedious, error-prone chore of creating a new release.</summary>
  </entry>
  
  <entry>
    <title>Getting Started with OpenTofu: Infrastructure as Code for Cloud Providers</title>
    <link href="https://totaldebug.uk/posts/opentofu-getting-started/"/>
    <updated>2024-07-19T10:14:35+01:00</updated>
    <id>https://totaldebug.uk/posts/opentofu-getting-started/</id>
    <category term="Automation"/>
    <summary>In August 2023, the infrastructure-as-code community was sent into a frenzy when HashiCorp announced that Terraform would be shifting to a Business Source License (BSL). This move sparked widespread concern among developers and DevOps professionals who had grown accustomed to the open-source nature of Terraform. However, in the face of this change, a remarkable opportunity arose: the chance to create an open-source alternative that would preserve the spirit of collaboration and innovation that Terraform had embodied.</summary>
  </entry>
  
  <entry>
    <title>Automatically Join Octopus Energy Saving Sessions</title>
    <link href="https://totaldebug.uk/posts/automatically-join-octopus-energy-saving-session/"/>
    <updated>2024-03-15T09:14:35+00:00</updated>
    <id>https://totaldebug.uk/posts/automatically-join-octopus-energy-saving-session/</id>
    <category term="Home Automation"/>
    <summary>After missing a few saving sessions with them being announced last minute or the notifications not appearing from the Octopus app I decided to work on automating joining the sessions to avoid missing out.</summary>
  </entry>
  
  <entry>
    <title>Automated release with Semantic Release and commitizen</title>
    <link href="https://totaldebug.uk/posts/automated-release-with-semantic-release-and-commitizen/"/>
    <updated>2023-09-29T10:14:35+01:00</updated>
    <id>https://totaldebug.uk/posts/automated-release-with-semantic-release-and-commitizen/</id>
    <category term="Automation"/>
    <summary>When working with JavaScript projects, managing version numbers and commit messages is important for the maintainability of the project. Since 2020 I have been the main developer of Atomic Calendar Revive a highly customisable Home Assistant calendar card, I found maintaining versions and releases to be cumbersome until recently. In this article, I will introduce the commitizen and semantic-release packages for creation or appropriate commit messages and semantic versioning. I will also provide examples of how I am currently using these packages to streamline my release workflow and project maintenance.</summary>
  </entry>
  
  <entry>
    <title>Hell Let Loose, better performance and visibility settings</title>
    <link href="https://totaldebug.uk/posts/hll-better-performance-visibility/"/>
    <updated>2023-08-18T10:14:35+01:00</updated>
    <id>https://totaldebug.uk/posts/hll-better-performance-visibility/</id>
    <category term="Gaming"/>
    <summary>This article has been updated to include some new config improvements and remove the nVidia filters as these are now disabled.</summary>
  </entry>
  
  <entry>
    <title>Setup the Sunsynk Power Flow Card with a Lux Inverter</title>
    <link href="https://totaldebug.uk/posts/sunsynk-power-flow-card-with-lux-inverter/"/>
    <updated>2023-08-15T10:14:35+01:00</updated>
    <id>https://totaldebug.uk/posts/sunsynk-power-flow-card-with-lux-inverter/</id>
    <category term="Home Automation"/>
    <summary>If you haven’t already, I recommend going back to the first article in the series and following it through otherwise some options in this article may not work as expected.</summary>
  </entry>
  
  <entry>
    <title>Integrate Solcast API with Home Assistant</title>
    <link href="https://totaldebug.uk/posts/solcast-api-home-assistant/"/>
    <updated>2023-08-14T10:14:35+01:00</updated>
    <id>https://totaldebug.uk/posts/solcast-api-home-assistant/</id>
    <category term="Home Automation"/>
    <summary>As I further integrate my solar solution into my home, I have now added the Solcast API.</summary>
  </entry>
  
  <entry>
    <title>Integrating a Lux Power Inverter with Home Assistant</title>
    <link href="https://totaldebug.uk/posts/integrate-lux-inverter-with-home-assistant/"/>
    <updated>2023-08-08T12:05:51+01:00</updated>
    <id>https://totaldebug.uk/posts/integrate-lux-inverter-with-home-assistant/</id>
    <category term="Home Automation"/>
    <summary>After having solar installed I wanted to get it integrated into home assistant to enable historical monitoring and also automation around my home.</summary>
  </entry>
  
  <entry>
    <title>A Pythonic way to alias methods?</title>
    <link href="https://totaldebug.uk/posts/python-method-aliases/"/>
    <updated>2023-08-08T10:39:37+01:00</updated>
    <id>https://totaldebug.uk/posts/python-method-aliases/</id>
    <category term="Python"/>
    <summary>An alias method allows accesses to the original method via a different name. You can define your own alias method by adding the statement a = b to your class definition. This creates an alias method a() for the original method b().</summary>
  </entry>
  
  <entry>
    <title>Add series links to Jekyll posts</title>
    <link href="https://totaldebug.uk/posts/jekyll-post-series-links/"/>
    <updated>2023-06-09T09:06:40+01:00</updated>
    <id>https://totaldebug.uk/posts/jekyll-post-series-links/</id>
    <category term="Website"/>
    <summary>Creating blog posts for my website I sometimes find that I want top create multiple articles as part of a series, usually because I have done some research and got to a stage that makes sense to have an article to itself, something like my recent post on Proxmox Template with Cloud Image and Cloud Init.</summary>
  </entry>
  
  <entry>
    <title>Last4Solar - My solar nightmare!</title>
    <link href="https://totaldebug.uk/posts/last4solar-my-solar-nightmare/"/>
    <updated>2023-06-02T22:13:35+01:00</updated>
    <id>https://totaldebug.uk/posts/last4solar-my-solar-nightmare/</id>
    <category term="Musings"/>
    <summary>At the end of 2022 I came into some inheritance, with the massive energy price increase in the UK I decided to spend this money on a solar and battery installation on my house.</summary>
  </entry>
  
  <entry>
    <title>Automating deployments using Terraform with Proxmox and ansible</title>
    <link href="https://totaldebug.uk/posts/automating-proxmox-with-terraform-ansible/"/>
    <updated>2023-05-06T10:03:29+01:00</updated>
    <id>https://totaldebug.uk/posts/automating-proxmox-with-terraform-ansible/</id>
    <category term="Automation"/>
    <summary>Over the years my home lab has grown and become more and more difficult to maintain, especially because some servers I build and forget as they function so well.</summary>
  </entry>
  
  <entry>
    <title>Use Python pandas NOW for your big datasets</title>
    <link href="https://totaldebug.uk/posts/use-python-pandas-now/"/>
    <updated>2023-03-29T17:00:00+01:00</updated>
    <id>https://totaldebug.uk/posts/use-python-pandas-now/</id>
    <category term="Python"/>
    <summary>Over the past few years I have been working on processing large analytical data sets requiring various manipulations to produce statistics for analysis and business improvement.</summary>
  </entry>
  
  <entry>
    <title>How I host this site</title>
    <link href="https://totaldebug.uk/posts/how-i-host-this-site/"/>
    <updated>2023-02-25T19:22:00+00:00</updated>
    <id>https://totaldebug.uk/posts/how-i-host-this-site/</id>
    <category term="how-to"/>
    <summary>My site isn’t anything special, but I thought I’d like to share how I create and host things for others who may be interested in sharing their own words with a very simple and easy to maintain structure.</summary>
  </entry>
  
  <entry>
    <title>Home Assistant medication notification using Node-RED</title>
    <link href="https://totaldebug.uk/posts/home-assistant-medication-notification-node-red/"/>
    <updated>2023-01-06T19:22:00+00:00</updated>
    <id>https://totaldebug.uk/posts/home-assistant-medication-notification-node-red/</id>
    <category term="Home Automation"/><category term="Node-RED"/>
    <summary>For around 4 years I have had to take medication for Rheumatoid Arthritis once every two weeks, I always forget when I last took the medication and end up skipping which causes me pain.</summary>
  </entry>
  
  <entry>
    <title>Creating a standalone zigbee2mqtt hub with alpine linux</title>
    <link href="https://totaldebug.uk/posts/creating-standalone-zigbee2mqtt-hub-with-alpine-linux/"/>
    <updated>2022-12-15T14:13:00+00:00</updated>
    <id>https://totaldebug.uk/posts/creating-standalone-zigbee2mqtt-hub-with-alpine-linux/</id>
    <category term="Home Automation"/>
    <summary>I have began sorting out my smart home again, I let it run to ruin a year or so ago and now I’m getting solar installed I wanted to increase my automation to make life easier and utilise my solar more efficiently once it’s installed.</summary>
  </entry>
  
  <entry>
    <title>Configuring Homer Dashboard</title>
    <link href="https://totaldebug.uk/posts/configuring-homer-dashboard/"/>
    <updated>2022-10-16T10:15:00+01:00</updated>
    <id>https://totaldebug.uk/posts/configuring-homer-dashboard/</id>
    <category term="Containers"/>
    <summary>In my last article I talked about how to setup Homer dashboard with Docker, now I will walk through some of the features and how to use them.</summary>
  </entry>
  
</feed>
