Archive for the ‘Software Development’ Category
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 »
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 »
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 »
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/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 »
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 »
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 »