The evolution of nothing
In the beginning, Brian and Dennis created C, and C had the void keyword, and Brian and Dennis saw that this is good. It all went downhill from there. In […]
In the beginning, Brian and Dennis created C, and C had the void keyword, and Brian and Dennis saw that this is good. It all went downhill from there. In […]
This feature has apparently existed for years, but I found out only now. CLR has an equivalent of HTTP redirect for types, it is called You can move a class […]
Instability is bad, but letting me specify a combination of template parameters that cannot possilby work is much worse. In VS 2019 with dotnet core 3.0, I created an ASP.NET […]
I was experimenting with creating new projects out of templates in VS 2019, and to my surprise ran into a lot of trouble and error messages. One time it told […]
“Any sufficiently advanced technology is indistinguishable from magic” Athur C. Clarke While reviewing some code, I stumbled upon a class that receives an ObservableCollection<ILogFormatter> in the constructor. I discovered that this […]
Any programming language gives you plenty of opportunities to shoot yourself in the foot, and C# is probably not the worst, but I ran into an interesting example today. C# […]
I’ve been using Whatsapp for about 2 years now, and it was more or less OK, until I bought a new phone and tried to move my account there. This […]
TL;DR: wrapping existing method DoSomething(MyData data), with an identically named generic extension method DoSomething<T>(T data) is a bad idea, since it erases compile-time type checking. DoSomething() may now be called […]
I have finally memorized one simple mathematical statement that is true for pretty much any number you can think of, but is in fact verifyably false, with known counterexamples. The […]
I created an ASP.NET core project with docker support. Good thing: it works. Bad thing: the “dev” image it creates does not really contain application code. The code is added […]