Beware of the evil Paint
I noticed that whenever I pressed arrow keys on the keyboard, my mouse cursor moves in funny ways. This felt quite creepy, as if some software was trying to intercept […]
I noticed that whenever I pressed arrow keys on the keyboard, my mouse cursor moves in funny ways. This felt quite creepy, as if some software was trying to intercept […]
Iran is all over the news these days, however this post is not about politics. On a photograph of a press conference in Tehran, I noticed something curious: the backdrop […]
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 […]