Tag: Cloudflare
Bridging This Blog into the Fediverse with Bridgy Fed
I have been using the Fediverse more and more and decided I would like to make this blog part of it. Why? Well, if I am honest it is “because I can” so I went down the rabbit hole of how to make that happen.
It turns out that what I actually wanted was for this site to be a fediverse account in its own right. It would be something people on Mastodon can follow, reply to and boost directly, with the real post living here the whole time. That is a different problem to solve, and the tool for it is Bridgy Fed.
Tag: Dns
Bridging This Blog into the Fediverse with Bridgy Fed
I have been using the Fediverse more and more and decided I would like to make this blog part of it. Why? Well, if I am honest it is “because I can” so I went down the rabbit hole of how to make that happen.
It turns out that what I actually wanted was for this site to be a fediverse account in its own right. It would be something people on Mastodon can follow, reply to and boost directly, with the real post living here the whole time. That is a different problem to solve, and the tool for it is Bridgy Fed.
Tag: Fediverse
Bridging This Blog into the Fediverse with Bridgy Fed
I have been using the Fediverse more and more and decided I would like to make this blog part of it. Why? Well, if I am honest it is “because I can” so I went down the rabbit hole of how to make that happen.
It turns out that what I actually wanted was for this site to be a fediverse account in its own right. It would be something people on Mastodon can follow, reply to and boost directly, with the real post living here the whole time. That is a different problem to solve, and the tool for it is Bridgy Fed.
Tag: Gitlab
Bridging This Blog into the Fediverse with Bridgy Fed
I have been using the Fediverse more and more and decided I would like to make this blog part of it. Why? Well, if I am honest it is “because I can” so I went down the rabbit hole of how to make that happen.
It turns out that what I actually wanted was for this site to be a fediverse account in its own right. It would be something people on Mastodon can follow, reply to and boost directly, with the real post living here the whole time. That is a different problem to solve, and the tool for it is Bridgy Fed.
Tag: Hugo
Bridging This Blog into the Fediverse with Bridgy Fed
I have been using the Fediverse more and more and decided I would like to make this blog part of it. Why? Well, if I am honest it is “because I can” so I went down the rabbit hole of how to make that happen.
It turns out that what I actually wanted was for this site to be a fediverse account in its own right. It would be something people on Mastodon can follow, reply to and boost directly, with the real post living here the whole time. That is a different problem to solve, and the tool for it is Bridgy Fed.
Tag: Indieweb
Bridging This Blog into the Fediverse with Bridgy Fed
I have been using the Fediverse more and more and decided I would like to make this blog part of it. Why? Well, if I am honest it is “because I can” so I went down the rabbit hole of how to make that happen.
It turns out that what I actually wanted was for this site to be a fediverse account in its own right. It would be something people on Mastodon can follow, reply to and boost directly, with the real post living here the whole time. That is a different problem to solve, and the tool for it is Bridgy Fed.
Tag: Ai
openGym on Kubernetes
For a while I have been looking for a good self-hosted solution for recording my gym sessions. I have a good solution for tracking my cardio sessions (cycling and running mainly) in Endurain, but never for strength training. I have tried a few:
- wger - a good solution, but the UI is a bit dated and it is also geared towards managing a gym rather than a single user.
- Wingfit - also good, but I just did not click with it. Shame, because the developer is from Brittany, which is my adopted home.
- A multitude of different open source Android apps. These all had UX issues and no syncing, so kind of sucked for me.
As a result, I stayed on Strong for much longer than I would have liked.
Running Hugging Face models on Ollama
As part of my continuing experiments with AI, I regularly use models from Hugging Face. Ollama makes it really easy to run models locally from their own repo, but sometimes they do not have exactly the model one wants.
Why Use Hugging Face
While Ollama has its own curated repository of models you can use, Hugging Face has kind of become the community default. The choice is much larger and opens up possibilities that are not available if you just stick with Ollama’s own repository. For mainstream models, there maybe quantization that are not available in Ollama’s own repo. There are plenty of fine-tunes of more mainstream models that are only on Hugging Face.
N8n with Ollama on Kubernetes
Once again I have a new tool I have been playing with, once again AI related. One of the tools I have been using is n8n which is a workflow automation platform. It enables us to integrate multiple applications and services through a visual interface. While it is very much an enterprise solution, it is FLOSS and we can deploy it at home, albeit with some caveats and/or workarounds.
One of the really powerful parts of N8n is that we can integrate with various AI platforms, including all the usual suspects: Claude, ChatGPT, etc. Of course I want to keep things local, which N8n caters for with Ollama.
My initial plan is to do react to an alert from Prometheus and give myself some advise about what to do. The plan is pretty simple and adds to my existing Alerts through Telegram:
Alertmanager
├─► Telegram (existing)
└─► n8n webhook
└─ Python Code (build prompt)
└─ HTTP Request → Ollama
└─ Telegram (post analysis)
- Alertmanager fires a webhook to n8n alongside the existing Telegram notification
- n8n builds a prompt from the alert payload and sends it to Ollama
- Ollama analyses the alert and suggests a fix
- n8n posts the analysis back to Telegram
So let’s start by getting it installed
Installing n8n on Kubernetes
There is no official Helm chart, but the community-maintained chart is excellent and well maintained. To get started we need:
- Redis which we will install with Helm
- PostgreSQL for which we will use Cloudnative-PG
- Some storage (I will use Longhorn as usual)
- n8n itself
Dependencies first
Before we can do anything else, let’s get Redis and PostgreSQL setup. The simplest is Redis using the Cloud Pirates Helm Chart:
helm --namespace n8n install n8n-redis \
oci://registry-1.docker.io/cloudpirates/redis \
-f redis-values.yaml
The contents of redis-values.yaml is very simple:
architecture: standalone
master:
persistence:
enabled: true
auth:
enabled: true
That will create a secret (n8n-redis) to we use later.
OpenClaw: My first experience with a self-hosted AI Assistant
Recently, I decided to jump on the latest AI bandwagon. While cloud-based large language models are powerful and convenient, I wanted complete control over my data, plus the satisfaction of running everything on my own infrastructure. Enter OpenClaw — a personal AI assistant that runs locally and integrates with messaging platforms you already use.
Tag: Fitness
openGym on Kubernetes
For a while I have been looking for a good self-hosted solution for recording my gym sessions. I have a good solution for tracking my cardio sessions (cycling and running mainly) in Endurain, but never for strength training. I have tried a few:
- wger - a good solution, but the UI is a bit dated and it is also geared towards managing a gym rather than a single user.
- Wingfit - also good, but I just did not click with it. Shame, because the developer is from Brittany, which is my adopted home.
- A multitude of different open source Android apps. These all had UX issues and no syncing, so kind of sucked for me.
As a result, I stayed on Strong for much longer than I would have liked.
Tag: Kubernetes
openGym on Kubernetes
For a while I have been looking for a good self-hosted solution for recording my gym sessions. I have a good solution for tracking my cardio sessions (cycling and running mainly) in Endurain, but never for strength training. I have tried a few:
- wger - a good solution, but the UI is a bit dated and it is also geared towards managing a gym rather than a single user.
- Wingfit - also good, but I just did not click with it. Shame, because the developer is from Brittany, which is my adopted home.
- A multitude of different open source Android apps. These all had UX issues and no syncing, so kind of sucked for me.
As a result, I stayed on Strong for much longer than I would have liked.
N8n with Ollama on Kubernetes
Once again I have a new tool I have been playing with, once again AI related. One of the tools I have been using is n8n which is a workflow automation platform. It enables us to integrate multiple applications and services through a visual interface. While it is very much an enterprise solution, it is FLOSS and we can deploy it at home, albeit with some caveats and/or workarounds.
One of the really powerful parts of N8n is that we can integrate with various AI platforms, including all the usual suspects: Claude, ChatGPT, etc. Of course I want to keep things local, which N8n caters for with Ollama.
My initial plan is to do react to an alert from Prometheus and give myself some advise about what to do. The plan is pretty simple and adds to my existing Alerts through Telegram:
Alertmanager
├─► Telegram (existing)
└─► n8n webhook
└─ Python Code (build prompt)
└─ HTTP Request → Ollama
└─ Telegram (post analysis)
- Alertmanager fires a webhook to n8n alongside the existing Telegram notification
- n8n builds a prompt from the alert payload and sends it to Ollama
- Ollama analyses the alert and suggests a fix
- n8n posts the analysis back to Telegram
So let’s start by getting it installed
Installing n8n on Kubernetes
There is no official Helm chart, but the community-maintained chart is excellent and well maintained. To get started we need:
- Redis which we will install with Helm
- PostgreSQL for which we will use Cloudnative-PG
- Some storage (I will use Longhorn as usual)
- n8n itself
Dependencies first
Before we can do anything else, let’s get Redis and PostgreSQL setup. The simplest is Redis using the Cloud Pirates Helm Chart:
helm --namespace n8n install n8n-redis \
oci://registry-1.docker.io/cloudpirates/redis \
-f redis-values.yaml
The contents of redis-values.yaml is very simple:
architecture: standalone
master:
persistence:
enabled: true
auth:
enabled: true
That will create a secret (n8n-redis) to we use later.
Alertmanager Telegram integration in Kubernetes
Some more Prometheus content now, this time I will share how I do my alerting. I want to to receive alerts from my homelab, but I do not care about them too much. If something goes wrong at 2am, I really could not careless. In fact, there is no reason why I would want to be disturbed by them under any circumstances.
To that end, the whole point of my homelab is that I can use the same techniques I would use in production. To that end, I do want to set up alerts, I just want to keep them as non-intrusive as possible. A good solution for my alerts then is Telegram, as I can have them sent to a channel that I mute. Now I can see them, but I am never actually disturbed by them.
Local Thanos on Kubernetes
I run Kubernetes in my homelab and use the (now classic) Prometheus/Grafana stack for monitoring everything. In my experience, the thing that Prometheus does not do well is long-term storage. Prometheus’ own database is fine for a few days storage, but performance and reliability quickly degrade. There are quite a few solutions to this problem, but I choose to use Thanos, partly because Kube Prometheus Stack has very good support for it.
New Home Lab
Where better to start than how my lab is working.
My home lab is not one that has really been planned, rather I acquire/buy things as the opportunity arises. It really has 2 things:
- NAS
- Kubernetes
Tag: Self-Hosting
openGym on Kubernetes
For a while I have been looking for a good self-hosted solution for recording my gym sessions. I have a good solution for tracking my cardio sessions (cycling and running mainly) in Endurain, but never for strength training. I have tried a few:
- wger - a good solution, but the UI is a bit dated and it is also geared towards managing a gym rather than a single user.
- Wingfit - also good, but I just did not click with it. Shame, because the developer is from Brittany, which is my adopted home.
- A multitude of different open source Android apps. These all had UX issues and no syncing, so kind of sucked for me.
As a result, I stayed on Strong for much longer than I would have liked.
OpenClaw: My first experience with a self-hosted AI Assistant
Recently, I decided to jump on the latest AI bandwagon. While cloud-based large language models are powerful and convenient, I wanted complete control over my data, plus the satisfaction of running everything on my own infrastructure. Enter OpenClaw — a personal AI assistant that runs locally and integrates with messaging platforms you already use.
Tag: 3D Printing
Opencode and Visual Analysis
I have been using Opencode to work on a couple of ESP32 projects that are of a more “Maker” nature. At some point I realised that I also needed a case and decided to set Opencode loose on it too.
The workflow for this is simple, but awful:
- describe the case in words
- Opencode (using Big Pickle because FREE) creates an OpenSCAD model
- Render the OpenSCAD model
- Wonder what the hell Opencode was thinking
- GOTO 10 and the cycle continues ad nauseam
What you need is some way for Opencode to verify what it has done and iterate.
I use Opencode with oh-my-openagent which, amongst other things, gives you sub-agents. One of those sub-agents is the “multimodal-looker” which can look at images and provide feedback. I thought I could use this to create a feedback loop for Opencode to verify its own work.
The idea is simple:
- I describe the case in words
- Opencode creates an OpenSCAD model and renders it
- The multimodal-looker “looks” at the rendered image and provides feedback.
- Opencode uses the feedback to iterate on the design
This is great in theory, but falls apart in practice because Big Pickle does not support visual analysis. So, I needed to do two things:
- route visual analysis to another model
- decide which model to use
I decided to use gemma4:e4b because it has the feature I need and is not only free, but I can run it on my own hardware with reasonable performance.
The performance isn’t interactive-speed, but it is good enough that I can set the agent working while I go away and have a meal or chat with my wife for a bit.
Tag: Opencode
Opencode and Visual Analysis
I have been using Opencode to work on a couple of ESP32 projects that are of a more “Maker” nature. At some point I realised that I also needed a case and decided to set Opencode loose on it too.
The workflow for this is simple, but awful:
- describe the case in words
- Opencode (using Big Pickle because FREE) creates an OpenSCAD model
- Render the OpenSCAD model
- Wonder what the hell Opencode was thinking
- GOTO 10 and the cycle continues ad nauseam
What you need is some way for Opencode to verify what it has done and iterate.
I use Opencode with oh-my-openagent which, amongst other things, gives you sub-agents. One of those sub-agents is the “multimodal-looker” which can look at images and provide feedback. I thought I could use this to create a feedback loop for Opencode to verify its own work.
The idea is simple:
- I describe the case in words
- Opencode creates an OpenSCAD model and renders it
- The multimodal-looker “looks” at the rendered image and provides feedback.
- Opencode uses the feedback to iterate on the design
This is great in theory, but falls apart in practice because Big Pickle does not support visual analysis. So, I needed to do two things:
- route visual analysis to another model
- decide which model to use
I decided to use gemma4:e4b because it has the feature I need and is not only free, but I can run it on my own hardware with reasonable performance.
The performance isn’t interactive-speed, but it is good enough that I can set the agent working while I go away and have a meal or chat with my wife for a bit.
Tag: Visual Analysis
Opencode and Visual Analysis
I have been using Opencode to work on a couple of ESP32 projects that are of a more “Maker” nature. At some point I realised that I also needed a case and decided to set Opencode loose on it too.
The workflow for this is simple, but awful:
- describe the case in words
- Opencode (using Big Pickle because FREE) creates an OpenSCAD model
- Render the OpenSCAD model
- Wonder what the hell Opencode was thinking
- GOTO 10 and the cycle continues ad nauseam
What you need is some way for Opencode to verify what it has done and iterate.
I use Opencode with oh-my-openagent which, amongst other things, gives you sub-agents. One of those sub-agents is the “multimodal-looker” which can look at images and provide feedback. I thought I could use this to create a feedback loop for Opencode to verify its own work.
The idea is simple:
- I describe the case in words
- Opencode creates an OpenSCAD model and renders it
- The multimodal-looker “looks” at the rendered image and provides feedback.
- Opencode uses the feedback to iterate on the design
This is great in theory, but falls apart in practice because Big Pickle does not support visual analysis. So, I needed to do two things:
- route visual analysis to another model
- decide which model to use
I decided to use gemma4:e4b because it has the feature I need and is not only free, but I can run it on my own hardware with reasonable performance.
The performance isn’t interactive-speed, but it is good enough that I can set the agent working while I go away and have a meal or chat with my wife for a bit.
Tag: Homelab
Running Hugging Face models on Ollama
As part of my continuing experiments with AI, I regularly use models from Hugging Face. Ollama makes it really easy to run models locally from their own repo, but sometimes they do not have exactly the model one wants.
Why Use Hugging Face
While Ollama has its own curated repository of models you can use, Hugging Face has kind of become the community default. The choice is much larger and opens up possibilities that are not available if you just stick with Ollama’s own repository. For mainstream models, there maybe quantization that are not available in Ollama’s own repo. There are plenty of fine-tunes of more mainstream models that are only on Hugging Face.
N8n with Ollama on Kubernetes
Once again I have a new tool I have been playing with, once again AI related. One of the tools I have been using is n8n which is a workflow automation platform. It enables us to integrate multiple applications and services through a visual interface. While it is very much an enterprise solution, it is FLOSS and we can deploy it at home, albeit with some caveats and/or workarounds.
One of the really powerful parts of N8n is that we can integrate with various AI platforms, including all the usual suspects: Claude, ChatGPT, etc. Of course I want to keep things local, which N8n caters for with Ollama.
My initial plan is to do react to an alert from Prometheus and give myself some advise about what to do. The plan is pretty simple and adds to my existing Alerts through Telegram:
Alertmanager
├─► Telegram (existing)
└─► n8n webhook
└─ Python Code (build prompt)
└─ HTTP Request → Ollama
└─ Telegram (post analysis)
- Alertmanager fires a webhook to n8n alongside the existing Telegram notification
- n8n builds a prompt from the alert payload and sends it to Ollama
- Ollama analyses the alert and suggests a fix
- n8n posts the analysis back to Telegram
So let’s start by getting it installed
Installing n8n on Kubernetes
There is no official Helm chart, but the community-maintained chart is excellent and well maintained. To get started we need:
- Redis which we will install with Helm
- PostgreSQL for which we will use Cloudnative-PG
- Some storage (I will use Longhorn as usual)
- n8n itself
Dependencies first
Before we can do anything else, let’s get Redis and PostgreSQL setup. The simplest is Redis using the Cloud Pirates Helm Chart:
helm --namespace n8n install n8n-redis \
oci://registry-1.docker.io/cloudpirates/redis \
-f redis-values.yaml
The contents of redis-values.yaml is very simple:
architecture: standalone
master:
persistence:
enabled: true
auth:
enabled: true
That will create a secret (n8n-redis) to we use later.
Alertmanager Telegram integration in Kubernetes
Some more Prometheus content now, this time I will share how I do my alerting. I want to to receive alerts from my homelab, but I do not care about them too much. If something goes wrong at 2am, I really could not careless. In fact, there is no reason why I would want to be disturbed by them under any circumstances.
To that end, the whole point of my homelab is that I can use the same techniques I would use in production. To that end, I do want to set up alerts, I just want to keep them as non-intrusive as possible. A good solution for my alerts then is Telegram, as I can have them sent to a channel that I mute. Now I can see them, but I am never actually disturbed by them.
Local Thanos on Kubernetes
I run Kubernetes in my homelab and use the (now classic) Prometheus/Grafana stack for monitoring everything. In my experience, the thing that Prometheus does not do well is long-term storage. Prometheus’ own database is fine for a few days storage, but performance and reliability quickly degrade. There are quite a few solutions to this problem, but I choose to use Thanos, partly because Kube Prometheus Stack has very good support for it.
Tag: N8n
N8n with Ollama on Kubernetes
Once again I have a new tool I have been playing with, once again AI related. One of the tools I have been using is n8n which is a workflow automation platform. It enables us to integrate multiple applications and services through a visual interface. While it is very much an enterprise solution, it is FLOSS and we can deploy it at home, albeit with some caveats and/or workarounds.
One of the really powerful parts of N8n is that we can integrate with various AI platforms, including all the usual suspects: Claude, ChatGPT, etc. Of course I want to keep things local, which N8n caters for with Ollama.
My initial plan is to do react to an alert from Prometheus and give myself some advise about what to do. The plan is pretty simple and adds to my existing Alerts through Telegram:
Alertmanager
├─► Telegram (existing)
└─► n8n webhook
└─ Python Code (build prompt)
└─ HTTP Request → Ollama
└─ Telegram (post analysis)
- Alertmanager fires a webhook to n8n alongside the existing Telegram notification
- n8n builds a prompt from the alert payload and sends it to Ollama
- Ollama analyses the alert and suggests a fix
- n8n posts the analysis back to Telegram
So let’s start by getting it installed
Installing n8n on Kubernetes
There is no official Helm chart, but the community-maintained chart is excellent and well maintained. To get started we need:
- Redis which we will install with Helm
- PostgreSQL for which we will use Cloudnative-PG
- Some storage (I will use Longhorn as usual)
- n8n itself
Dependencies first
Before we can do anything else, let’s get Redis and PostgreSQL setup. The simplest is Redis using the Cloud Pirates Helm Chart:
helm --namespace n8n install n8n-redis \
oci://registry-1.docker.io/cloudpirates/redis \
-f redis-values.yaml
The contents of redis-values.yaml is very simple:
architecture: standalone
master:
persistence:
enabled: true
auth:
enabled: true
That will create a secret (n8n-redis) to we use later.
Tag: Alerting
Alertmanager Telegram integration in Kubernetes
Some more Prometheus content now, this time I will share how I do my alerting. I want to to receive alerts from my homelab, but I do not care about them too much. If something goes wrong at 2am, I really could not careless. In fact, there is no reason why I would want to be disturbed by them under any circumstances.
To that end, the whole point of my homelab is that I can use the same techniques I would use in production. To that end, I do want to set up alerts, I just want to keep them as non-intrusive as possible. A good solution for my alerts then is Telegram, as I can have them sent to a channel that I mute. Now I can see them, but I am never actually disturbed by them.
Tag: Monitoring
Local Thanos on Kubernetes
I run Kubernetes in my homelab and use the (now classic) Prometheus/Grafana stack for monitoring everything. In my experience, the thing that Prometheus does not do well is long-term storage. Prometheus’ own database is fine for a few days storage, but performance and reliability quickly degrade. There are quite a few solutions to this problem, but I choose to use Thanos, partly because Kube Prometheus Stack has very good support for it.
Tag: Prometheus
Local Thanos on Kubernetes
I run Kubernetes in my homelab and use the (now classic) Prometheus/Grafana stack for monitoring everything. In my experience, the thing that Prometheus does not do well is long-term storage. Prometheus’ own database is fine for a few days storage, but performance and reliability quickly degrade. There are quite a few solutions to this problem, but I choose to use Thanos, partly because Kube Prometheus Stack has very good support for it.
Tag: Ollama
OpenClaw: My first experience with a self-hosted AI Assistant
Recently, I decided to jump on the latest AI bandwagon. While cloud-based large language models are powerful and convenient, I wanted complete control over my data, plus the satisfaction of running everything on my own infrastructure. Enter OpenClaw — a personal AI assistant that runs locally and integrates with messaging platforms you already use.
Tag: OpenClaw
OpenClaw: My first experience with a self-hosted AI Assistant
Recently, I decided to jump on the latest AI bandwagon. While cloud-based large language models are powerful and convenient, I wanted complete control over my data, plus the satisfaction of running everything on my own infrastructure. Enter OpenClaw — a personal AI assistant that runs locally and integrates with messaging platforms you already use.
Tag: Privacy
OpenClaw: My first experience with a self-hosted AI Assistant
Recently, I decided to jump on the latest AI bandwagon. While cloud-based large language models are powerful and convenient, I wanted complete control over my data, plus the satisfaction of running everything on my own infrastructure. Enter OpenClaw — a personal AI assistant that runs locally and integrates with messaging platforms you already use.
Tag: DIY
Cheap Yellow Display and Home Assistant
As I have mentioned previously I have been been gradually Home Assistant-ifying my home. Of course, part of that means having a some control panels around. I have tried an old tablet, but was not really happy with the results. At some point I leaned about the so-called “Cheap Yellow Display” (CYD). This is a small TFT display bolted directly to an ESP32 microcontroller.
There are a few things that make this interesting:
- ESPHome support: This means it is very easy to integrate into Home Assistant.
- LVLGL support: This is a powerful graphics library that allows for complex user interfaces.
- Cheap: You can get one for about 10-15 euros.
I ordered one from AliExpress without really knowing much about it and decided I would just roll with any problems that came up. As is often the case with AliExpress, the first problem was identifying exactly what arrived. I ordered a “Freenove Bitcoin Miner NMMiner NerdMinder … something something CYD ESP32 Something”. What I got was a small yellow PCB with a ILI9341 TN TFT display on one side, and an ESP32 on the other with a bunch of other stuff:
- A microSD card slot
- A battery connector
- A couple of buttons
- A few headers for GPIO access
After some searching I found out that this was indeed a CYD board, specifically this one. So now I had it, I need to figure out what to use it for to start with. Anything for my office has a much standard of Wife Acceptance Factor, so I decided to start with a control panel for my office temperature. This is already controlled using Home Assistant using a few things:
- Target temperature is variable based on presence and time of day/week
- Current temperature is from a Dallas temperature sensor (DS18B20) that sits on my desk - still in a breadboard naturally.
Experience Buying a Chinese Bike Frame
I’ve recently decided to change my bike frame as I developed a tendonitis due to my beloved Felt F95 actually being too big. As we are also looking to buy a house, my budget was quite limited. This put a nice shiney Cannondale SystemSix well out of my reach, so I decided to give a Chinese frame a try.
This is not as shocking as it sounds because of the realities of the bike market.
Tag: Electronics
Cheap Yellow Display and Home Assistant
As I have mentioned previously I have been been gradually Home Assistant-ifying my home. Of course, part of that means having a some control panels around. I have tried an old tablet, but was not really happy with the results. At some point I leaned about the so-called “Cheap Yellow Display” (CYD). This is a small TFT display bolted directly to an ESP32 microcontroller.
There are a few things that make this interesting:
- ESPHome support: This means it is very easy to integrate into Home Assistant.
- LVLGL support: This is a powerful graphics library that allows for complex user interfaces.
- Cheap: You can get one for about 10-15 euros.
I ordered one from AliExpress without really knowing much about it and decided I would just roll with any problems that came up. As is often the case with AliExpress, the first problem was identifying exactly what arrived. I ordered a “Freenove Bitcoin Miner NMMiner NerdMinder … something something CYD ESP32 Something”. What I got was a small yellow PCB with a ILI9341 TN TFT display on one side, and an ESP32 on the other with a bunch of other stuff:
- A microSD card slot
- A battery connector
- A couple of buttons
- A few headers for GPIO access
After some searching I found out that this was indeed a CYD board, specifically this one. So now I had it, I need to figure out what to use it for to start with. Anything for my office has a much standard of Wife Acceptance Factor, so I decided to start with a control panel for my office temperature. This is already controlled using Home Assistant using a few things:
- Target temperature is variable based on presence and time of day/week
- Current temperature is from a Dallas temperature sensor (DS18B20) that sits on my desk - still in a breadboard naturally.
Tag: Home Assistant
Cheap Yellow Display and Home Assistant
As I have mentioned previously I have been been gradually Home Assistant-ifying my home. Of course, part of that means having a some control panels around. I have tried an old tablet, but was not really happy with the results. At some point I leaned about the so-called “Cheap Yellow Display” (CYD). This is a small TFT display bolted directly to an ESP32 microcontroller.
There are a few things that make this interesting:
- ESPHome support: This means it is very easy to integrate into Home Assistant.
- LVLGL support: This is a powerful graphics library that allows for complex user interfaces.
- Cheap: You can get one for about 10-15 euros.
I ordered one from AliExpress without really knowing much about it and decided I would just roll with any problems that came up. As is often the case with AliExpress, the first problem was identifying exactly what arrived. I ordered a “Freenove Bitcoin Miner NMMiner NerdMinder … something something CYD ESP32 Something”. What I got was a small yellow PCB with a ILI9341 TN TFT display on one side, and an ESP32 on the other with a bunch of other stuff:
- A microSD card slot
- A battery connector
- A couple of buttons
- A few headers for GPIO access
After some searching I found out that this was indeed a CYD board, specifically this one. So now I had it, I need to figure out what to use it for to start with. Anything for my office has a much standard of Wife Acceptance Factor, so I decided to start with a control panel for my office temperature. This is already controlled using Home Assistant using a few things:
- Target temperature is variable based on presence and time of day/week
- Current temperature is from a Dallas temperature sensor (DS18B20) that sits on my desk - still in a breadboard naturally.
Tag: Smart Home
Cheap Yellow Display and Home Assistant
As I have mentioned previously I have been been gradually Home Assistant-ifying my home. Of course, part of that means having a some control panels around. I have tried an old tablet, but was not really happy with the results. At some point I leaned about the so-called “Cheap Yellow Display” (CYD). This is a small TFT display bolted directly to an ESP32 microcontroller.
There are a few things that make this interesting:
- ESPHome support: This means it is very easy to integrate into Home Assistant.
- LVLGL support: This is a powerful graphics library that allows for complex user interfaces.
- Cheap: You can get one for about 10-15 euros.
I ordered one from AliExpress without really knowing much about it and decided I would just roll with any problems that came up. As is often the case with AliExpress, the first problem was identifying exactly what arrived. I ordered a “Freenove Bitcoin Miner NMMiner NerdMinder … something something CYD ESP32 Something”. What I got was a small yellow PCB with a ILI9341 TN TFT display on one side, and an ESP32 on the other with a bunch of other stuff:
- A microSD card slot
- A battery connector
- A couple of buttons
- A few headers for GPIO access
After some searching I found out that this was indeed a CYD board, specifically this one. So now I had it, I need to figure out what to use it for to start with. Anything for my office has a much standard of Wife Acceptance Factor, so I decided to start with a control panel for my office temperature. This is already controlled using Home Assistant using a few things:
- Target temperature is variable based on presence and time of day/week
- Current temperature is from a Dallas temperature sensor (DS18B20) that sits on my desk - still in a breadboard naturally.
Tag: Bible
Including Bible Passages in Hugo
I have a few posts in my mind that will need me to include bible passages in the pages. I could just quote them, but that is no fun and I am happy make a lot of effort to be lazy.
I am using Hugo to power this site, so I decided I would add a shortcode that would allow me to do it via an API. There are a few decisions to be made first.
Tag: Christianity
Including Bible Passages in Hugo
I have a few posts in my mind that will need me to include bible passages in the pages. I could just quote them, but that is no fun and I am happy make a lot of effort to be lazy.
I am using Hugo to power this site, so I decided I would add a shortcode that would allow me to do it via an API. There are a few decisions to be made first.
Tag: Audio
The Current state of Linux Audio Production
A few years ago (becoming many years ago now) I was a Linux loving sound engineer. I am also a guitar player with a family which means I have not been much of a guitar player for a while now.
Well, I recently got a new (to me) laptop to replace my Pinebook Pro and I have decided to dip my feet back into music production. With that in mind I feel I can add to the conversation by giving how things are going after a few years away.
I always lean towards Fedora for my personal workstations, so this will be Fedora-centric. There are definitely other options:
- Arch Linux has a detailed Wiki page for Professional Audio here
- Ubuntu Studio has been around for years and works really well by all accounts
- AVLinux has also been around for ages, but seems to be less active that Ubuntu Studio
As I said though, I like Fedora, so I will stick with that.
What I need
I want to be able to record guitar, piano (including MIDI) and vocals. Neither I nor my wife can play drums, so I will need a drum machine (ideally a virtual drummer of some form). I also want to be able to play guitar just for fun. So I need
- Real-time audio
- A Digital Audio Workstation
- Guitar amp modelling
- Drum machine
- Synths
I have a Behringer UMC202HD which I already know works out-of-the-box. Back in the day this was the biggest hurdle, but USB class-compliance has completely changed the game here.
I also use a cheap MIDI interface that allows me to use my wife’s old (pre-USB MIDI) digital piano. Like the audio interface, this is USB class-compliant and worked flawlessly out of the box.
The Fedora Music Ecosystem
The first place to look is for a Special Interest Group (SIG) that could be helpful. Sure enough, Fedora has the Music & Audio SIG that is geared towards exactly this. From this I discovered a few things:
- Yann Collette is maintaining a COPR dedicated to music production
- Audinux also has some excellent resources
- Linux Musicians has an excellent thread that covers basically everything “under the hood”
Getting Good Latency
Latency need to be very low in order to actually play anything.
Tag: Linux
The Current state of Linux Audio Production
A few years ago (becoming many years ago now) I was a Linux loving sound engineer. I am also a guitar player with a family which means I have not been much of a guitar player for a while now.
Well, I recently got a new (to me) laptop to replace my Pinebook Pro and I have decided to dip my feet back into music production. With that in mind I feel I can add to the conversation by giving how things are going after a few years away.
I always lean towards Fedora for my personal workstations, so this will be Fedora-centric. There are definitely other options:
- Arch Linux has a detailed Wiki page for Professional Audio here
- Ubuntu Studio has been around for years and works really well by all accounts
- AVLinux has also been around for ages, but seems to be less active that Ubuntu Studio
As I said though, I like Fedora, so I will stick with that.
What I need
I want to be able to record guitar, piano (including MIDI) and vocals. Neither I nor my wife can play drums, so I will need a drum machine (ideally a virtual drummer of some form). I also want to be able to play guitar just for fun. So I need
- Real-time audio
- A Digital Audio Workstation
- Guitar amp modelling
- Drum machine
- Synths
I have a Behringer UMC202HD which I already know works out-of-the-box. Back in the day this was the biggest hurdle, but USB class-compliance has completely changed the game here.
I also use a cheap MIDI interface that allows me to use my wife’s old (pre-USB MIDI) digital piano. Like the audio interface, this is USB class-compliant and worked flawlessly out of the box.
The Fedora Music Ecosystem
The first place to look is for a Special Interest Group (SIG) that could be helpful. Sure enough, Fedora has the Music & Audio SIG that is geared towards exactly this. From this I discovered a few things:
- Yann Collette is maintaining a COPR dedicated to music production
- Audinux also has some excellent resources
- Linux Musicians has an excellent thread that covers basically everything “under the hood”
Getting Good Latency
Latency need to be very low in order to actually play anything.
Tag: Lab
Using Umami with Hugo
Umami is a self-hostable web analtics system similar to Google Analytics. From my point-of-view it has several advantages compared to Google Analytics:
- Data Ownership: it is self-hosted so the data is stored on my own server
- Privacy: Google Analytics uses cookies, so can be problematic to comply with certain privacy laws such as GDPR.
- Simplicity: I am a sysadmin, not a data scientist. Umami’s interface is very simple compared to Google Analytics. Granted, this is partly because it does less, but it is fine for me.
This site is hosted on Gitlab Pages and I run Umami on my K3s which has an ingress controller accessible from outside.
New Home Lab
Where better to start than how my lab is working.
My home lab is not one that has really been planned, rather I acquire/buy things as the opportunity arises. It really has 2 things:
- NAS
- Kubernetes
Tag: Stats
Using Umami with Hugo
Umami is a self-hostable web analtics system similar to Google Analytics. From my point-of-view it has several advantages compared to Google Analytics:
- Data Ownership: it is self-hosted so the data is stored on my own server
- Privacy: Google Analytics uses cookies, so can be problematic to comply with certain privacy laws such as GDPR.
- Simplicity: I am a sysadmin, not a data scientist. Umami’s interface is very simple compared to Google Analytics. Granted, this is partly because it does less, but it is fine for me.
This site is hosted on Gitlab Pages and I run Umami on my K3s which has an ingress controller accessible from outside.
Tag: Cycling
Experience Buying a Chinese Bike Frame
I’ve recently decided to change my bike frame as I developed a tendonitis due to my beloved Felt F95 actually being too big. As we are also looking to buy a house, my budget was quite limited. This put a nice shiney Cannondale SystemSix well out of my reach, so I decided to give a Chinese frame a try.
This is not as shocking as it sounds because of the realities of the bike market.