-
Argo Workflows - Proven Patterns from Production
Argo Workflows provides an excellent platform for infrastructure automation, and has replaced Jenkins as my go tool for running scheduled or event-driven automation tasks. In growing my experience with Argo Workflows, I’ve killed clusters, broken workflows and generally made a mess of things. I’ve also built a lot of workflows that needed refactoring as they became difficult to maintain. This blog post aims to share some of the lessons I’ve learned, and some of the...…
-
Downloading a file with PowerShell without specifying its name
I’m going to show you how to download a file from the web using PowerShell without having to specify the filename on download. This definately falls into the category of “why is this so hard in PowerShell?”. Looks like some other folks agree: github.com/PowerShell/issues/11671. Usually you would need to use -Outfile to download a file, for example: Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=2109047&Channel=Stable&language=en&consent=1" -Outfile "MicrosoftEdgeSetup.exe" How does the browser know what file to give the download though? Let’s...…
-
Creating a VSCode Second Brain
I have been diving into the topic of a “second brain”, a method of saving and linking our ideas, insights and thoughts. I was interested in this for a few reasons: To assist in active reading. I’ve read a lot of books and blog posts which often resonate with me. I find one week later, I’ve forgotten the advice or ideas that the reading inspired. I wanted to reduce the amount of reading (and re-reading)...…
-
Securing Home Assistant with Cloudflare
Updated: Aug 22nd, 2021 due to a HTTP Proxy breaking change in Home Assistant. I’ve just started using Home Assistant through building my own smart garage door opener that I could control using my phone. It’s an amazing piece of open source software, and very easy to get setup locally, but I wanted to expose it to the internet so I could see the status of my garage door when away from the house using...…
-
Automating Semantic Versioning for any Project
Semantic versioning is the best known and most widely adopted convention for versioning software. If you aren’t familiar with it, read up on it before continuing. Once you start implementing semantic versioning for a project, you realize that you have just given yourself a small check list of items to go through for every release: Look through the commits since last release and determine if this will be a major, minor or patch release Decide...…