The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Email Subscription

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 717 other subscribers

Archive for the ‘.NET’ Category

MVVM notes and links

Posted by jpluimers on 2026/11/11

I used the below links to prepare for my MVVM talk a few years ago (which is linked at my blog post Delphi MVVM links).

Originally, I wrote this post in 2014 as a draft and just found out I never published it. Back then I didn’t add archived links because link rot wasn’t such a big thing. Nowadays it is (more than half the originals links died because of link rot), so I added archived links where possible. All in all just one link that was not archived at all – not a bad score!

Read the rest of this entry »

Posted in .NET, C#, Delphi, Design Patterns, Development, Java, Java Platform, MVVM, Software Development | Leave a Comment »

Curious to this: Sonde — Arriving soon

Posted by jpluimers on 2026/10/08

A friend is starting a new business, so I am curious to what [Wayback/Archive] Sonde — Arriving soon will bring (or brought if this post scheduling arrives later than their release).

Looking at the taglines below, I think is that this is an intelligent (unlike LLM “intelligent”) source analysis/probing tool.

The Arrival animation sequence at [Wayback/Archive] Sonde — Arrival attributes the software development past in 29 stages, all the way back from FORTRAN till the more recent Swift until finally showing the moon, hopefully indicating a release before the Artemis IV will land people on the moon:

Read the rest of this entry »

Posted in .NET, AI and ML; Artificial Intelligence & Machine Learning, bash, BASIC, C, C#, C++, COBOL, CSS, Dart, Database Development, dBase, Delphi, Development, Elixir, Erlang, F#, Fortran, Functional Programming, Generative AI, Go (golang), Groovy, Haskell, History, Java, Java Platform, JavaScript/ECMAScript, Kotlin, Less (Less language), Lightweight markup language, LLM, MarkDown, ObjectiveC, Pascal, PHP, Python, R (R lang), Ruby, Rust, Scala, Scripting, SCSS, Software Development, Swift, Turbo Pascal, TypeScript, VB.NET, VB6, Visual BASIC, Web Development, xBase | Leave a Comment »

The poor mans remapkey.exe. but still maintained is randyrants/sharpkeys: SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key.

Posted by jpluimers on 2026/09/24

A long time ago I mentioned remapkey.exe. It was part of various Microsoft Resource Kit versions and still available from the Wayback Machine at [Wayback rktools.exe: install, then run remapkey.exe as admin].

It however is unmaintained and does not support quite a few keys.

So for more than 20 years now, there has been the still maintained [Wayback/Archive] randyrants/sharpkeys: SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key.

The user interface is not as intuitive as remapkey.exe (which has source and target keyboard layouts), but supports more keys (including Print Screen) and is still maintained and allows to turn off keys completely (which can be useful with for instance the Caps Lock key).

Back when writing this, the most recent release was 3.9.4 fro 2022. You can find the most current at [Wayback/Archive] Releases · randyrants/sharpkeys.

Read the rest of this entry »

Posted in .NET, C#, Development, Power User, Software Development, Windows, Windows 10, Windows 11, Windows 7, Windows 8, Windows 8.1, Windows NT, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022, Windows Vista, Windows XP | Leave a Comment »

Hashtopolis: distributed hashcat password recovery

Posted by jpluimers on 2026/09/23

[Wayback/Archive] Hashtopolis

HashtopolisHashtopolis is a distributed password recovery tool working with hashcat

Via:

–jeroen

Posted in .NET, C#, Development, Encryption, Hashing, HTML, JavaScript/ECMAScript, Passwords/manages, Pen Testing, PHP, Power User, Python, Scripting, Security, Software Development, TypeScript, Web Development | Leave a Comment »

You’re using HttpClient wrong and it is destabilizing your software | ASP.NET Monsters

Posted by jpluimers on 2026/09/16

Reminder to self as I see see people disposing [Wayback/Archive] HttpClient Class (System.Net.Http) instances: [Wayback/Archive] You’re using HttpClient wrong and it is destabilizing your software | ASP.NET Monsters

HttpClient is different. Although it implements the IDisposable interface it is actually a shared object. This means that under the covers it is reentrant and thread safe. Instead of creating a new instance of HttpClient for each execution you should share a single instance of HttpClient for the entire lifetime of the application.

…

Huh, that’s weird…the application has exited and yet there are still a bunch of these connections open to the Azure machine which hosts the ASP.NET Monsters website. They are in the TIME_WAIT state which means that the connection has been closed on one side (ours) but we’re still waiting to see if any additional packets come in on it because they might have been delayed on the network somewhere.

…

If we share a single instance of HttpClient then we can reduce the waste of sockets by reusing them

The second part of the quote is what happens if you keep instantiating and disposing HttpClient instances. Instead, use a global instance and let it pool connections as described in the above post.

It is based on [Wayback/Archive] performance-optimization/ImproperInstantiation/docs/ImproperInstantiation.md at 465514674354c8f833c73882f7405ac22c4fd437 · mspnp/performance-optimization · GitHub (an old commit as the document by now has vanished) and [Wayback/Archive] performance-optimization/ImproperInstantiation/docs/LoadTesting.md at master · mspnp/performance-optimization · GitHub.

–jeroen

Posted in .NET, C#, Development, Software Development, Web Development | Leave a Comment »

bitbonk/DotNetSocialBot: A Mastodon bot that can boost a community

Posted by jpluimers on 2026/09/15

Since Elon is trying to burn some USD 44 billion as rapidly as possible, many on-line communities that grew big on Twitter are now trying to re-establish themselves on other social network services.

One of them is Mastodon, the Fediverse based federated or distributed social network.

Like Twitter (or maybe “unlike Twitter”, because of the tremendous API charges for Twitter bots) Mastodon bots can be of tremendous help on spreading awareness of a community.

One example is [Wayback/Archive] bitbonk/DotNetSocialBot: A Mastodon bot that can boost a community running at [Wayback/Archive] .NET Bot :dotnet: (@bot@dotnet.social) which helps boosting the .NET community on Mastodon (quite a few harrdore .NET developers have an account on [Wayback/Archive] dotnet.social, but you can follow the bot from any Mastodon server: the virtue of a distributed social network).

It is written in quite a generic way, and founded on a solid framework, which means it is easy to extend to other communities. Heck, it might be even be easy to generalise it into a highly configurable universal community bot!

Read the rest of this entry »

Posted in .NET, BASTA!, C#, Conference Topics, Conferences, Development, Event, Mastodon, SocialMedia, Software Development | Leave a Comment »

PowerShell Get-WinEvent XML Madness: Getting details from event logs – Ashley McGlone – disappeared from blogs.technet.microsoft.com

Posted by jpluimers on 2026/07/28

This post originally appeared on [Wayback/Archive] PowerShell Get-WinEvent XML Madness: Getting details from event logs – GoateePFE – Archived, but due to link rot got lost including the images. I restored this post from the Wayback Machine archived version including the comments so the content gets re-indexed in search engines as this was one of the few posts detailing how to filter and extract XML from Windows Event logs using PowerShell.

I needed this content for a future blog post that is going to appear in a day or so: Some links on getting the most recent defragmentation time of a Windows volume

Queries:

Read the rest of this entry »

Posted in .NET, CommandLine, Development, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows | Tagged: | Leave a Comment »

Forensics: Automating Active Directory Account Lockout Search with PowerShell (an example of deep XML filtering of event logs across multiple servers in parallel) – where the images disappeared from blogs.technet.microsoft.com

Posted by jpluimers on 2026/07/22

Yes, the text of this post is still on [Wayback/Archive] Forensics: Automating Active Directory Account Lockout Search with PowerShell (an example of deep XML filtering of event logs across multiple servers in parallel) | Microsoft Learn but the original images from blogs.technet.microsoft.com as well as the code snippet got lost due to link rot and incomplete migration. I restored the blog post with comments from the Wayback Machine archives.

I needed the images and the snippet to be able to write future blog post Some links on getting the most recent defragmentation time of a Windows volume hat is appearing in a week or so.

The script is downloadable from LockoutEventsXML.ps1 or via [Wayback/Archive] TechNetGalleryArchive/LockoutEventsXML.ps1 at master · GoateePFE/TechNetGalleryArchive · GitHub at [WaybackSave/Wayback/Archive] github.com/GoateePFE/TechNetGalleryArchive/raw/refs/heads/master/LockoutEventsXML.ps1 by [Wayback/Archive] GoateePFE (Ashley McGlone) · GitHub.

Note the blog post uses @" strings – with $using.variable to pass local variables to remote sessions. See these entries for more information about that topic:

Queries:

Read the rest of this entry »

Posted in .NET, CommandLine, Development, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows | Tagged: , , , , , , | Leave a Comment »

Delphi/C# reencode textfiles: some links as I thought I published sources, but didn’t

Posted by jpluimers on 2026/06/30

A long time ago (likely around 2009) I remember writing some code to re-encode text files in both Delphi and C#.

Somehow I thought I had published both, but I could only find parts of the C# code back in .NET/C# – converting UTF8 to ASCII (yes, you can loose information with this) using System.Text.Encoding.

So here are some links just in case I ever want to reproduce it in Delphi too (and a reminder to always perform this using TStream derivatives, never use TStrings or derivatives like TStringList for this):

Read the rest of this entry »

Posted in .NET, Ansi, ASCII, C#, Delphi, Development, Encoding, Mojibake, Software Development, UCS-2, UTF-16, UTF-32, UTF-8, UTF16, UTF32, UTF8, Windows-1252 | Leave a Comment »

PowerShell script useful for playing back in Cartrain CP7##BMW devices (currently CP700BMW, CP730BMW, CP740BMW) as these play back in the order in which directories and files have been created.

Posted by jpluimers on 2026/06/10

[Wayback/Archive] This is useful for playing back in Cartrain CP7##BMW devices (currently CP700BMW, CP730BMW, CP740BMW) as these play back in the order in which directories and files have been created. which is related to Elektronik-Idee – CP740BMW – USB wireless MP3 Player (with Bluetooth and Audio/Video in support) and fully PowerShell 2.0 compatible:

Script to recursively copy directories in alphabetical order from source-base-directory to destination-base-directory
while adding an intermediate directory with a single uppercase letter in destination-base-directory for 
each set of directories under source-base-directory starting with that letter.

This is useful for playing back in Cartrain CP7##BMW devices (currently CP700BMW, CP730BMW, CP740BMW)
as these play back in the order in which directories and files have been created, as per:

- https://www.cartain.de/downloads/cp740bmw/CP740BMW-OM.pdf

  Unterordner sind hervorragend geeignet um Musik besser zu organisieren. Dateinamen und Unterverzeichnis sind in der Reihenfolge gleichgestellt. Die Wiedergabe der Titel in sämtlichen Unterordnern erfolgt der Reihe nach wie sie auf den USB Stick kopiert wurde

- https://www.cartain.de/downloads/cp740bmw/CP740BMW-OM-EN.pdf

  Sub folders are a good possibility to organize your music collection. The order of playback is the same order you copied the files onto the card.

- https://www.cartain.de/downloads/cp730bmw/CP730BMW-OM.pdf
- https://www.cartain.de/downloads/cp730bmw/CP730BMW-OM-EN.pdf

–jeroen

Read the rest of this entry »

Posted in .NET, CommandLine, Development, PowerShell, PowerShell, Scripting, Software Development, Windows Development | Leave a Comment »