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

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

    Join 1,862 other subscribers

Archive for the ‘Software Development’ Category

Windows: extracting CD-audio for a funeral: CDex, MP3Gain (a replaygain like implementation which modifies MP3 metadata) plus UI wrapper and audacity (for combining tracks)

Posted by jpluimers on 2025/03/27

It has been a very long time since I played around with ripping audio from audio CDs and wrote software for audio handling. I lost access to that source code some 20 years ago, so part of this post is from memory. Hopefully that is still good memory (:

Yes, I am one of those old farts that still has computing equipment with optical drives (:

Much has improved since then, so one needs to write far less code nowadays as a of tooling is now open source or has been open source for quite some time. The hardest part was finding back CDex (which I think is still very useful especially as it handles not-so-well-handled audio CDs quite OK).

Anyway: I didn’t document much of my audio history. The only post I mentioned CDex in was Streaming your mp3 collection through an Icecast server using ezstream, which does not does it justice as back then it had been reliable for such a long time.

Funeral web-site

That web-site was horrible, especially as it was picky on audio formats. In the end, it handled 128-bit fixed bit-rate MP3 files best.

CDEX

Read the rest of this entry »

Posted in Audacity, Audio, Development, Media, Normalisation of audio, Power User, Software Development | Tagged: | Leave a Comment »

Nartac Software – IIS Crypto

Posted by jpluimers on 2025/03/26

Not just for IIS, but for hardening any Windows system including ones running http.sys (like ADFS): [Wayback/Archive] Nartac Software – IIS Crypto

Read the rest of this entry »

Posted in .NET, Communications Development, Development, Encryption, HTTP, HTTPS/TLS security, Software Development, TCP, Web Development | Leave a Comment »

Note for future self if .NET hash calculations from `ComputeHash()` are slower than expected

Posted by jpluimers on 2025/03/26

Normally when calculating hashes in .NET you use the [Wayback/Archive] HashAlgorithm.ComputeHash Method (System.Security.Cryptography) | Microsoft Learn.

This can be slow as [Wayback/Archive] cmcginty showed while answering the question [Wayback/Archive] How to get an MD5 checksum in PowerShell – Stack Overflow by [Wayback/Archive] Luke101 posing a faster solution (in this case for md5, but it can be generalised):

Read the rest of this entry »

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

Workaround for “embedding” external scripts in JavaScript bookmarklets (thanks @ben_alman).

Posted by jpluimers on 2025/03/25

Bookmarklets are basically URLs that execute a JavaScript function.

Sometimes you want to rely on external JavaScript files (for instance jQuery), but Bookmarklets themselves cannot do that.

Bookmarklets can modify the current page though, and use those to load a script, wait until it is loaded, then continue executing.

Often that is OK as you want to operate the Bookmarklet on that page anyway, but be careful though that you do not mess up the page by loading an incompatible script: test, test, test!

Read the rest of this entry »

Posted in Bookmarklet, Development, JavaScript/ECMAScript, jQuery, Power User, Scripting, Software Development, Web Browsers | Leave a Comment »

GitHub: creating a directory while adding on-line adding a file or uploading file(s)

Posted by jpluimers on 2025/03/20

Since git doesn’t have the notion of directories as entities, neither does GitHub.

This makes it counter-intuitive to add a sub-directory when creating a new file on-line in the GitHub web-UI or uploading file(s) there.

I wanted to do this as instead of taking the local route, it was easier to on-line add and edit [Wayback/Archive] GitHub – jpluimers/https-imgur.com-a-bmw-e61-remote-fix-sWdk0: Content from https://imgur.com/a/bmw-e61-remote-fix-sWdk0 for Wayback Machine archival.

The GitHub web-UI can indeed do this:

Further reading

You can also do this from the git command-line, by adding an empty file in the directory first. By convention, usually a .gitkeep file is used for that though others use .gitignore files for it.

Read the rest of this entry »

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Source Code Management | Tagged: | Leave a Comment »

Some notes on recursive lambda expressions in case I ever want to try this myself (spoilers: a lot of study time ahead; many of these links are not live any more)

Posted by jpluimers on 2025/03/20

A sidestep of the series around Writing a tool that restarts the Google Chat desktop app Window (and hopefully the Google Duo desktop app Window too):

Enumerating Windows and especially Child Windows is a recursive endeavour, so I wondered if it was possible to write a self referencing delegate, anonymous method or lambda in C#.

That turns out to be way more complicated than I hoped for.

Some notes below, as:

  • one day I might want to rewrite the core to use this technique just for learning purposes
  • finding these links was quite a bit harder than expected due to link rot often caused by missing redirects (especially on the Microsoft blog sites: for one as not all their blog members are still with them which means content got ditched, and also because they moved through a couple of blog platforms so the really old links to not redirect, not even while tracking them through the Wayback Machine, or the content is incomplete which is why all below links are both in the Wayback Machine and Archive.is)

Here we go:

Read the rest of this entry »

Posted in .NET, C#, Conference Topics, Conferences, Development, Event, Software Development | Tagged: , , , | Leave a Comment »

Laurensvanrun/Delphi-Promises: Delphi implementation of promises for asynchronous programming.

Posted by jpluimers on 2025/03/19

On my research list after making this short note April 2024: [Wayback/Archive] GitHub – Laurensvanrun/Delphi-Promises: Delphi implementation of promises for asynchronous programming.

My first impression is that this might be on the same level of usefulness and influention as these two:

Notes:

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Development, EKON, Event, ITDevCon, Software Development | Tagged: , | Leave a Comment »

Writing a tool that restarts the Google Chat desktop app Window (and hopefully the Google Duo desktop app Window too) and some EnumWindows/EnumChildWindows tricks

Posted by jpluimers on 2025/03/19

Earlier this months I wrote Writing a tool that restarts the Google Chat desktop app Window (and hopefully the Google Duo desktop app Window too) promising I would rewrite the Delphi code into C# and integrate it into PowerShell.

This is the beginning on porting the basics of the Delphi code (which had a flaw!) to C# and contains EnumWindows/EnumChildWindows and error handling tricks and tips.

Read the rest of this entry »

Posted in .NET, C#, Conference Topics, Conferences, Delphi, Development, Event, PowerShell, Scripting, Software Development, __Unfinished | Tagged: , , | Leave a Comment »

Ben Dicken on X: “You asked for it, so here it is. Visualizing CPU cache speeds relative to RAM. Cache optimization is important too!”

Posted by jpluimers on 2025/03/18

CPU Cache and RAM performance slowed down many magnitudes for better comparison

CPU Cache and RAM performance slowed down many magnitudes for better comparison

[WaybackSave/Archive] Ben Dicken on X: “You asked for it, so here it is. Visualizing CPU cache speeds relative to RAM. Cache optimization is important too!”

Cover .jpg: [WaybackSave/Archive] Bo3x-4alnGEqj-1I.jpg (1200×675).

The graph was made using [Wayback/Archive] GitHub – d3/d3: Bring data to life with SVG, Canvas and HTML. :bar_chart::chart_with_upwards_trend::tada:.

The underlying data is from [Wayback/Archive] Memory Performance in a Nutshell.

It was kind of a follow-up on a similar animation for Memory lookup versus SSD read speed (links at the end of this blog post)

Videos via [WaybackSave/Archive] Tweet JSON:

Read the rest of this entry »

Posted in Development, Software Development | Leave a Comment »

Enabling XML Auto Commenting C# in Visual Studio Code is in an odd setting (via Stack Overflow)

Posted by jpluimers on 2025/03/18

In Visual Studio Code I already had [Wayback/Archive] C# – Visual Studio Marketplace: C# for Visual Studio Code (powered by OmniSharp) installed in (through code --install-extension ms-dotnettools.csharp), and wanted automatic XML documentation comments generation just like Visual Studio does:

[Wayback/Archive] XML documentation comments – document APIs using /// comments | Microsoft Learn

Read the rest of this entry »

Posted in .NET, C#, Development, Hardware, Java, Java Platform, Keyboards and Keyboard Shortcuts, KVM keyboard/video/mouse, Power User, Software Development, XML, XML/XSD | Tagged: , , , , , | Leave a Comment »