Rant about Win32 API
Coming back from .NET Framework, it feels like Win32 API was invented by some rather cold people with total disregard for the well being of the application programmers. Every other […]
Coming back from .NET Framework, it feels like Win32 API was invented by some rather cold people with total disregard for the well being of the application programmers. Every other […]
This Friday I wrote a unit test and to my astonishment I have found that “a” < “A” < “ab”, with .NET InvariantCulture and InvariantCultureIgnoreCase string comparers. That means that .NET […]
I have just spent a few fun hours fighting Apache rewrite rules in an .htaccess file. It turns out that temporary redirects just work, but permanent redirects require RewriteBase! Frankly, […]
Over the week-end I created the TaskTimer class that allows to execute code on timer in an async method: static async Task DoStuffOnTimer() { using (var timer = new TaskTimer(1000).Start()) { foreach (var task in timer) { await task; DoStuff(); } } } Source […]
I wrote a tool called “IsItMySource” that can list source files of a binary and, more importantly, check whether particular source directory matches the binary. The description is here: https://www.ikriv.com/dev/dotnet/IsItMySource/index.php. The […]
The default git merge is usually all you need, but if you have to deep deeper, you’ll find that git merge command has very weird looking and confusing options. I […]
As part of one of my projects I needed to use Microsoft DIA SDK. In particular, I wanted to retrieve source files checksums stored in PDB files. DIA SDK is a […]
TL;DR Dynamic “semver” versioning is evil, because it makes it too easy to break things on a global scale. With semver versioning the builds are not-repeatable: you may get one version […]
This is a short summary of differences between WCF and .NET Remoting when they are used to control a Windows service. Complete article is found here: http://www.ikriv.com/dev/dotnet/AspNetCallsWinService/index.php. Complete code examples for WCF and Remoting are […]
It makes things so simple, I really wish other languages had it. Today in five or six places I wrote something like _innerObject?.Dispose(); instead of if (_innerObject != null) _innerObject.Dispose(); […]