Personal blog
Containerized .NET build cache optimizations
Docker Build Cache Reuse Docker utilizes a layering system for its images. Each command in a Dockerfile creates a new layer that is built upon the previous one. This layering system is leveraged by Docker’s build cache. If Docker recognizes that a layer hasn’t changed (i.e., the command is the same and the context hasn’t changed), it reuses the existing layer instead of rebuilding it. When building .NET applications in Docker, one common practice is to restore dependencies as a separate step before the application is built....
No curl, No wget, No Problem - A Bash Script for Container Healthchecks
Alright, let’s get straight to the point: building reliable software is critical. It’s not just a matter of nice-to-haves; it’s about building something that stands the test of time and isn’t prone to constant crashes. Now, this requires us to keep a diligent watch on the software’s health. And when it comes to systems based on microservices, where there are numerous components working in tandem, this becomes even more important. Enter health checks....
ASP.NET Core TypeScript client generation
As web applications become more complex and feature-rich, the need for robust and maintainable APIs has never been greater. In this post, we’ll show you how to use ASP.NET Core and the OpenAPI specification to automatically generate TypeScript clients for your API, making it easier to consume and interact with your API from front-end applications. Generating OpenAPI spec For generating the OpenAPI spec file, the dotnet swagger tool is used. It is necessary to have the Swashbuckle....
No installs - just containers
It can be annoying to install a tool that is only needed a few times, and it would be preferable to avoid the installation process. However, sometimes it is necessary to use a tool to accomplish a specific task Solution To avoid the inconvenience of installing tools that are only needed occasionally, I have started using containerized tools instead. To make it easier to use these containerized tools, I have created a number of ....
A workaround for the solution (file)
Dealing with merge conflicts in the solution (.sln) file is a pain, and it seems I am not the only one annoyed by the cryptic format: [Discussion] Clean up sln (VisualStudio solution) files Nick Craver on Twitter Sadly Microsoft hasn’t done anything to improve the situation (yet), but people in the .NET community has played around with creating a new format for the solution file: JeffCyr/MSBuild.SolutionSdk . While such an approach is very interesting and could be the future of ....
Mounting samba share on Ubuntu 20.04
I recently had to mount a samba share on Ubuntu 20.04 server on a Raspberry Pi 4, and found that piecing things together from examples was a bit of a pain Installing the required packages Installing the required packages is easy, as they are available in the default installed repositories in Ubuntu and most other Linux distributions sudo apt install smbclient cifs-utils Editing fstab To automatically mount the share on boot, the following line must be added to the end of /etc/fstab, with placeholders replaced:...
Containerized Home Assistant setup
I recently migrated my Home Assistant setup from running Home Assistant Operating System on a Hardkernel C2 , to running in containers on my NAS The process was reasonably straight-forward, but finding up-to-date documentation and examples online are always a challenge when the platform moves fast My Home Assistant needs are covered by just three services; home-assistant , deconz and node-red . I use deconz because I have a ConBee II as my ZigBee gateway...
WSL2 + podman
UPDATE: podman desktop is now a thing! I had been having some issues with the docker-desktop service on Windows, where it wouldn’t autostart properly and would start into a broken state where nothing worked. These problems, together with the license change of the docker-desktop product and recommendations to give podman a try, led me to try podman instead. About podman podman is a container runtime like docker but designed with a different philosophy....
Pi Zero Plant Humidifier
I have some plants (philodendrons) that are a bit demanding about humidity, and I want to make sure they don’t dry out and have ample humidity to grow optimally. To solve this, I considered a number of solutions, including finding some ZigBee capable humidifier that I could control with Home Assistant. I didn’t find anything like that and even if such a product existed, it would probably be prohibitively expensive because it’s for a niche of niche....