K8s with K3s

Earlier this year I’ve started using K3s regularly for local testing of Kubernetes workloads, APIs, tools, and more. I’ve grown quite fond of k3s for multiple reasons: it’s very easy and fast to install, very easy to use, and so far I have not found a single service designed for K8s that wouldn’t work on K3s. I’ve run it both on Linux machines as well as on Windows machines through WSL2. It just works. I use it in particular also to test my own K8s controllers and operators. Installation typically finishes in 15-20 seconds, and system pods are usually running fine after another at most 30 seconds.

read more →

Signing HTTP Messages in .Net with NSign

Photo by Pixabay: https://www.pexels.com/photo/security-logo-60504/
Photo by Pixabay: https://www.pexels.com/photo/security-logo-60504/

One of the things I have been working on at work over the past few months is an open source implementation for .Net of the standard-to-be for HTTP message signatures. I’ve ended up calling this NSign which granted is a bit broad – the libraries deal only with HTTP signatures – but I found that the name quite fitting.

The general idea of HTTP message signatures is that clients and/or servers can create and verify digital signatures or message authentication codes over HTTP messages, that is either request or response messages. As the standard-to-be puts this:

read more →

Introducing Hash Tool

Hashes are everywhere in the digital world: checksums for file downloads, version control systems, fingerprints, password databases and verification, message authentication, digital signatures, blockchains etc.

As a developer, I often find myself in the situation where I quickly need to verify a hash, or generate a hash for some reason or other. That’s why I built the flrx39 hash tool: it lets you quickly evaluate some popular hashes in the browser. None of the data you input is sent to servers, all of it remains in your browser! It’s your data, after all. Check it out.

read more →

Pretty Printing JSON

Photo by RealToughCandy.com: https://www.pexels.com/photo/man-love-people-woman-11035481/
Photo by RealToughCandy.com: https://www.pexels.com/photo/man-love-people-woman-11035481/

Over the holidays I’ve used some of my time to modernize my JSON pretty printing tool and make it available on flrx39.net too. The new version is available under pretty print json.

Please make sure to check back often, as I will keep adding more tools over time. Also feel free to suggest new tools which you think could be useful 😄 I cannot guarantee that I will add all suggestions, but I will consider them.

read more →

Fast Blog with Hugo

I’ve wanted to get rid of Wordpress for a while now. It’s more of a hassle than anything else, really. And who on earth still uses PHP? Anyway, a while ago I embarked on the journey to find a good replacement. First, I looked at other CMS systems that are similar to Wordpress, but soon realized that they’d all require me to keep them up-to-date all the time, and they’d likely be just about as annoying. At the same time, I’ve gotten so used to creating web content using markdown, that I hoped I could find something where markdown indeed plays a significant role in building the content. In addition, being a developer at heart, I was hoping to also find something with a decent version control system for history and rollbacks (whenever necessary) and the likes.

read more →

Discrete Event Simulator

Photo by Eunice Lui: https://www.pexels.com/photo/blurry-photo-of-a-neon-signage-4151043/
Photo by Eunice Lui: https://www.pexels.com/photo/blurry-photo-of-a-neon-signage-4151043/

Earlier this year we were dealing with an issue in one of our data processing pipelines. Through telemetry we could see where the problem was coming from, but I did wonder if I could model the problem in a simulation too. After all, if we have a tool available to predict certain issues before we implement them, that can be very helpful to adapt the design and/or code upfront. I remembered some lecture from university many years ago, where we were discussing discrete event simulations. So I figured I’d give it a shot and see if I can write a simple simulator for such a producer/consumer scenario with TypeScript.

read more →

Copy files with PowerShell Remoting

Recently at work, I found myself in the situation where I needed to copy some file from my workstation to a jump box. Now of course, on Linux I’d just use rsync or scp. But our IT doesn’t like provisioning Linux boxes and therefore uses Windows for jump servers too, so no luck here. Luckily, I could convince them to turn on and allow PowerShell Remoting, so with some simple scripts I can still easily copy files over without using SMB. Here’s how.

read more →

Cheap and Secure Cloud Backups

I’ve wanted to find a good provider of cheap and secure cloud backups for a while. I’ve compared some cloud drive providers, but didn’t quite like those. They usually have very limited free plans, somewhat pricey paid plans (e.g. 50GB for about 24$ a year for OneDrive), or like in the case of Google no information available at all. By the way, “Google one is coming soon” isn’t an announcement that I want to look at for more than a few days when looking for pricing info. Then, I’ve looked at pricing of cloud storage providers, such as AWS, Azure and Google Cloud. Those offer storage around 1 cent ($0.01) per GB per month. That’s a quarter of the OneDrive cost! It’s even less if you consider their archive offerings (AWS Glacier, Archive in Azure, Coldline Storage for Google). The cheapest offering here is from Microsoft at 0.2 cents ($0.002) per GB per month, but with some usage caveats. Since the point of backups is to keep them for a long time, this quickly adds up though. Now I’ve written a line or two of code before, so I figured I could as well write my own tool for this. So here is bart, the backup and restore tool. Note that at this point I do not offer bart as a ready-to-use executable, but only as MIT-licensed source code. In addition, bart currently works only with Azure Blob Storage - or with storage mounted into the machine’s file system. However, adding other cloud providers/archive destinations should be relatively easy, given the interfaces used in the tool.

read more →

Debug slow kubectl on Windows

Over the last few days I noticed that when I use kubectl to manage a k8s test cluster in Azure, it takes forever to actually carry out the operations remotely. Today I took some time to debug this. Here’s how I debugged and ultimately fixed the slow kubectl commands on Windows.

Get Verbose Output

I started with changing the log level, and capturing the details, like this:

read more →

Offline JSON Pretty Printing

Nowadays when you’re dealing with Web APIs, you often find yourself in the situation of handling JSON, either in the input for these APIs or in the output, or both. Some browsers have the means to pretty print the JSON from their dev tools. But you don’t always have that opportunity. That’s why there are tools to pretty-print JSON. I’ve found quite a few of them on the web, but all the ones I’ve found have one terrible flaw: they actually send the JSON you’re trying to pretty-print to the server 🙀. I don’t want my JSON data (sensitive or not) to be sent to some random servers!

read more →