Archive for the ‘C#’ Category
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 »
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 »
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 »
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 »
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 »
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 »
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 »
Posted by jpluimers on 2026/05/12
Take this cool example I extended from [Wayback/Archive] Thomas 🅰️🇨🇵 on Twitter: “#Typescript quizz What will be the value of result1 and result2 ?” which lacked alt-badge, so I [Wayback/Archive] responded with the image on the right that has alt-text.
Based on that, I added a bit of logging:
const a = undefined;
const result1 = a ?? 0 + 10;
const b = 100;
const result2 = b ?? 0 + 10;
console.log(result1);
console.log(result2);
Two questions:
- What is the output of both log lines?
Read the rest of this entry »
Posted in .NET, C#, Conference Topics, Conferences, Continuous Integration, Delphi, Development, Event, Java, Java Platform, JavaScript/ECMAScript, Maven, Scripting, Software Development, TypeScript | Leave a Comment »
Posted by jpluimers on 2026/02/11
A while ago I bumped into [Wayback/Archive] Quick Accent steals the WordPress classic editor space after a hyphen-minus sign or asterisk · Issue #24623 · microsoft/PowerToys.
In the WordPress Classic Editor, the * or - combinations quickly generate an empty bulleted list:
When enabling the PowerToys Quick Accent (formerly [Wayback/Archive] PowerAccent) with their default settings this fails (but it does work in the WordPress Gutenberg editor, Word and some other tools I tested).
The easiest way to work around this is to switch from the default “Activation Keys” setting “Left, Right or Space” to “Left/Right Arrow”.
Hopefully besides the workaround there will also be a full fix.
The related C++ and C# source files:
Read the rest of this entry »
Posted in .NET, C#, C++, Classic editor, Development, Gutenberg editor, Power User, PowerToys, SocialMedia, Software Development, Windows, WordPress | Leave a Comment »
Posted by jpluimers on 2026/02/03
This method sparked a lot of discussion on social media:
private static string GetPercentageRounds(double percentage)
It is part of [Wayback/Archive] woo-besluit-broncode-digid-app/NFCService.cs at master · MinBZK/woo-besluit-broncode-digid-app which was published after a request according to the Dutch Open Government Act (WOO: Wet Open Overheid).
Even though it services the iOS app, it is written in C# not Swift despite it being client-side code, but that’s not why it sparked a lot of discussion costing more man-hours than the code is worth.
This is the code:
Read the rest of this entry »
Posted in .NET, C#, Development, Software Development, Swift, xCode/Mac/iPad/iPhone/iOS/cocoa | Leave a Comment »