Posts
Thomas Stringer
Cancel

Complete Binary Tree

A complete binary tree is a really interesting data structure. It is the starting point of a heap sort and in this blog post I want to illustrate what a complete binary tree is and the properties o...

Using xargs to Construct Dynamic Commands

Without a doubt, one of my most-used commands in the terminal is xargs. This utility takes standard input and can dynamically build and execute commands. In this blog post I’ll show common usages o...

Nginx Error - key values mismatch

The following error message may be thrown when trying to start nginx: nginx: [emerg] SSL_CTX_use_PrivateKey_file(“/etc/ssl/private/cert1.key”) failed (SSL: error:0B080074:x509 certificate routi...

8 Reasons Why I Like git Repositories for Documentation (Personal and Team)

Writing code is hard. So is writing documentation. And I am a big fan of creating your own documentation. At this point in my life I’ve been writing documentation for a long time, both in a team a...

Show and Browse the Kubernetes API Reference Documentation in the Terminal

Did you know it’s possible to search the Kubernetes API reference docs right from kubectl? I had no clue until recently I learned about this pretty cool (and I think, not-so-well-known) feature. T...

Renew Azure Key Vault Certificates from Let's Encrypt

In a recent blog post, I wrote about how to create Azure Key Vault Certificates with Let’s Encrypt as the Issuer CA. This is a great start to utilizing a non-partnered Certificate Authority to issu...

Run Python Code in a Shell Script

I’m a big fan of “the right tool for the right job”. For some things, the right tool is a shell script. For others, it is Python. But sometimes… it is both. A lot of times I find myself writing a ...

Azure Key Vault Certificates with Let's Encrypt as the Issuer CA

Azure Key Vault is a great product for managing data protection, and one of the main features is the ability to handle TLS/SSL certificates. The way Azure Key Vault works with certificates is that ...

Setting Conditional Breakpoints in Go

Being able to debug your code is a necessary skill for any programmer. Setting conditional breakpoints allows you to efficiently and effectively inspect your code workflow. Take this simple (but co...

Query Azure Resources by Tags with the Azure CLI

Azure resource tags are one of the really great features that I don’t think gets talked about as much as it should. Tags are key-value pairs that you can put on your Azure resources. Although tags...