Migration from boolean to string value using mutations in Sanity

by Karl Solgård

Sanity [https://www.sanity.io/] has a great way to migrate data. I found myself converting a boolean property to a string in a sanity document. My boolean property acts as a feature toggle that I now want to extend to beta users. I'll do my examples as…

Azure app configuration with no secrets using Azure managed identity

by Karl Solgård

Some applications have secrets. Sometimes secrets lie in the app settings. If these gets in the hands of someone evil, it could have dire consequences. We don't want to deal with these app settings at all! That's where TokenCredentials and managed identity comes in!…

Learning F#: How to make a snake game in the console

by Karl Solgård

My favorite way to learn new things is by diving headfirst into a concept and start hacking away! The classic mobile game Snake should be a good challenge for a beginner F# developer.…

Logging SSL certificate data to Azure Log Analytics

by Karl Solgård

There's no built-in way to log SSL data with Azure Application Insights. APIs for SSL analytics exist and that data could be sent in with the "Azure Monitor HTTP Data Collector API".…

.NET Tip: Feature toggling inside DI-containers

by Karl Solgård

A pivotal moment in the history of an application is when a service changes drastically and deployment becomes a subject of stress and uncertainty. The service might be deemed as unhealthy in a production environment whereas it worked just fine in the test environment.…

Supporting multiple valid issuers in identity server with JWT tokens

by Karl Solgård

Changes in software are inevitable. Every part - even the most permanent - of a system might change at some point. The issuers of JWT tokens in your identity server is an example of such a part. When we look at an openid configuration one can find various information about…

Making an arcade cocktail table - Raspberry pi 3B+ and Retropie build

by Karl Solgård

While on a company outing with NOVACARE to a nearby arcade pub, I came across a table with a built-in arcade system. I thought to myself that this would make a great piece of furniture in my house. I already own a Raspberry pi 3 and I have a spare…

BrowserStack Appium & Visual Studio AppCenter test automation

by Karl Solgård

Regression testing for mobile apps can be tough. The wide array of phones and OS versions makes testing for mobile applications a time consuming and tedious task. Luckily, tools like BrowserStack and Appium exist to make our lives a bit easier. App Automate is a product made by BrowserStack and…

Streamlining TypeScript development with webpack dynamic imports

by Karl Solgård

HTTP/2 is upon us. Lazy-loading resources doesn't have the same performance disadvantages as in HTTP/1. This allows us to prefer loading many files on demand rather than loading a big blob of JavaScript on the initial load. Let's look at a pattern that simplifies…

Threading issues in Entity Framework Core 3.0 health check

by Karl Solgård

Following the exciting release of .NET Core 3.0, I was expecting that our services would handle the upgrade from 2.2 to 3.0 with ease. After the upgrade, however, the services sometimes responded with "Unhealthy" and a 503 status code! The connection was not closed. The…