Today I learned to setup GitHub Actions to continuously integrate (build and test) my blog, along the way I encountered some blockers so I'm putting everything noteworthy in this post.
My Visual Studio stopped working after upgrading to latest, none of my projects could be loaded in VS after the upgrade. Plus, "dotnet --list-sdks" shows no SDKs at command prompt.
Today I learned that Git is case-sensitive and Windows being a case-insensitive OS silently merges folders different just in casing into one.
The Admin Panel of my blog is a Mini-SPA and in this post I explain its basic architecture and development process.
The Azure Storage Blobs is the client library for accessing Azure Blob Storage, I use it to save uploaded images for this blog in production. In this post, I'm going to show how to work with it from the perspectives of tools, code and test.
IMemoryCache has its issues, notably it has the following method which is not thread safe. LazyCache is designed to address this very problem.
For caching previously I used IDistributedCache, but I have since switched to IMemoryCache. I have also abstracted this implementation detail away behind a new ICacheProvider interface.
If you use a Samsung phone with S Pen and take screenshots, by default the format it saves into is jpg, in this post I show you how to set the default format to png and why you may want to do that.
I'm creating a Disqus plugin for a Blazor WebAssembly theme that I'm designing for my blog.
Razor Components are normally used like HTML tags placed in .razor files, but they can also be built manually in C# code through a RenderTreeBuilder class. This class has methods that take in a sequence number as a parameter, in this post I look at how to use this number.