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,839 other subscribers

Archive for the ‘Software Development’ Category

When you bump into Mojibake in your development, don’t use table-based solutions to solve it

Posted by jpluimers on 2026/05/14

A while ago I bumped into [Wayback/Archive] Unicode weirdness – VCL – Delphi-PRAXiS [en].

This sketched a mojibake problem where PDF to text converted files had odd looking character sequences.

The solution – replacing these sequences with more correctly looking text – worked at first, but then failed because the underlying source code got “corrected” from containing the Mojibake character sequences into the correct Unicode text.

A better solution is to figure out what series of encoding/decoding steps will give the correct text.

This is where – again – [Wayback/Archive] Home – ftfy: fixes text for you comes up: a still indispensable tool.

–jeroen

Posted in Delphi, Development, Encoding, Mojibake, PDF, Software Development | Leave a Comment »

Beeper — All your chats in one app

Posted by jpluimers on 2026/05/13

[Wayback/Archive] Beeper — All your chats in one app

Via a friend that mentioned Beeper to me.

On the list to try out somewhere during the year.

It is open source; some more links:

Read the rest of this entry »

Posted in Chat, Development, Discord, DVCS - Distributed Version Control, Facebook, git, GoogleChat, IRC, LinkedIn, Power User, Signal messenger, SocialMedia, Software Development, Source Code Management, Telegram, Twitter, WhatsApp | Leave a Comment »

An easier to understand first time Scoop install command

Posted by jpluimers on 2026/05/13

The Scoop repository lists this first time Scoop install command at [Wayback/Archive] ScoopInstaller/Scoop: A command-line installer for Windows. – installation:

Run the following command from a non-admin PowerShell to install scoop to its default location C:Users<YOUR USERNAME>scoop.

iwr -useb get.scoop.sh | iex

[Wayback/Archive] ScoopInstaller/Install: 📥 Next-generation Scoop (un)installer is very similar:

Run this command from a non-admin PowerShell to install scoop with default configuration, scoop will be install to C:Users<YOUR USERNAME>scoop.

irm get.scoop.sh | iex
# You can use proxies if you have network trouble in accessing GitHub, e.g.
irm get.scoop.sh -Proxy 'http://<ip:port>' | iex

The Scoop homepage at [Wayback/Archive] Scoop.sh is not much better:

Read the rest of this entry »

Posted in Batch-Files, CommandLine, Development, Power User, PowerShell, PowerShell, Scoop, Scripting, Software Development, Windows | Leave a Comment »

Ontdek alle Nederlandse bedrijven uit het Handelsregister – OpenKvK.nl

Posted by jpluimers on 2026/05/12

Weet altijd waar je zaken mee doet: [Wayback/Archive] Ontdek alle Nederlandse bedrijven uit het Handelsregister – OpenKvK.nl

Er is een API van in totaal 4 datasets volgens [Wayback/Archive] API documentatie – overheid.io:

Gerelateerd: [Wayback/Archive] Hacken voor Democratie | Hack de Overheid!

--jeroen

Posted in Communications Development, Development, HTTP, Internet protocol suite, REST, Software Development, TCP | Leave a Comment »

Know your TypeScript/JavaScript operators… or why having little ceremony sometimes makes programmers life harder

Posted by jpluimers on 2026/05/12

const a = undefined; const result1 = a ?? 0 + 10; const b = 100; const result2 = b ?? 0 + 10;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:

  1. 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 »

default settings – How do I disable all AI features in Chrome? – Super User

Posted by jpluimers on 2026/05/11

Few places have the configuration for various platforms on how to prevent Google Chrome from installing the 4GB LLM model that got traction over the last few days. Luckily it is at [Wayback/Archive] default settings – How do I disable all AI features in Chrome? – Super User (thanks [Wayback/Archive] A-Tech and [Wayback/Archive] cachius):

Read the rest of this entry »

Posted in AI and ML; Artificial Intelligence & Machine Learning, Chrome, Development, Google, LLM, Power User, Software Development | Leave a Comment »

Devs of VS Code extensions are leaking secrets en masse • The Register

Posted by jpluimers on 2026/05/07

Reminder from a while back: all your development tools are belong to us: [Wayback/Archive] Devs of VS Code extensions are leaking secrets en masse • The Register

--jeroen

Posted in Development, JavaScript/ECMAScript, Scripting, Software Development, TypeScript, vscode Visual Studio Code | Leave a Comment »

Wondering if the takeown/icacls/del trick still work to screw up %windir%\system32 (via Patrick Doyle on Twitter)

Posted by jpluimers on 2026/05/07

A few years back this trick was shown to screw up %windir%\system32 [Wayback/Archive] Patrick Doyle on Twitter: “@SwiftOnSecurity @RoseAreaZero Delete any file in three easy steps: > takeown /F "example.ext" > icacls "example.ext" /grant "%USERNAME%":F > del "example.ext".

Like [Wayback/Archive] SwiftOnSecurity (@SwiftOnSecurity) / Twitter (see the long thread further below), I was expecting that Windows would either prevent you from doing this at all, or allow for easy recovery with System File Protection (now Source: Windows File Protection).

That didn’t prevent or recover it back then.

I wonder if that has been changed by now.

From the above Tweet:

Delete any file in three easy steps:
> takeown /F "example.ext"
 > icacls "example.ext" /grant "%USERNAME%":F
 > del "example.ext"

Read the rest of this entry »

Posted in Batch-Files, Development, Power User, Scripting, Security, Software Development, Windows, Windows 10, Windows 11, Windows Development | Leave a Comment »

AbortController is your friend

Posted by jpluimers on 2026/05/06

Cool post [Wayback/Archive] AbortController is your friend starting with

One of my favorite new features of JS is the humble AbortController, and its AbortSignal. It enables some new development patterns, which I’ll cover below, but first: the canonical demo.

It’s to use AbortController to provide a fetch() you can abort early:

It then continues with a series of nice use cases.

Via [Wayback/Archive] Roderick Gadellaa on Twitter: “Late to the party here (was published in June last yr) but great read if you (like me) missed it”.

Video at [Wayback/Archive] AbortController is your friend – YouTube.

–jeroen

Read the rest of this entry »

Posted in Development, JavaScript/ECMAScript, Scripting, Software Development, Web Development | Leave a Comment »

bash script for $* loop accept command line with spaces in wildcard file names at DuckDuckGo

Posted by jpluimers on 2026/05/05

Back when I wanted a more universal solution [Wayback/Archive] bash script for $* loop accept command line with spaces in wildcard file names at DuckDuckGo I got into a mess of tips that either did not work at all, or were very convoluted.

As back then I only needed a one-time solution, I just listed the filenames with ls into a text file, did some sed and editing steps, then had each file execute in a separate step. Low tech, non-repeatable when new files appeared, but good enough.

In case I want to go for a more universal solution, below are some links to investigate further. Will likely take me hours, so most of the time this is not worth it. Maybe the subshell plus $IFS (Input Field Separators) is a good start, though it gives me a feeling that in the future it will break something else that was expecting a default $IFS value, as is using while read loop. Both types of solutions feel too convoluted. Same for the array solution below.

I might have just been spoiled with PowerShell piping objects instead of strings having made life so much easier.

Read the rest of this entry »

Posted in *nix, *nix-tools, ash/dash, bash, bash, Development, Power User, Scripting, Software Development | Leave a Comment »