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

Some testla.com artifacts indicate it runs on PHP being deployed from a git repository

Posted by jpluimers on 2025/06/24

A few years back, a few interesting files turned up that are directly served from the testla.com web-site right in the middle when Musk used their software engineers to asses twitter.com code quality:

Some do not exist (of which some any more):

Read the rest of this entry »

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

zxcvbn: Low-Budget Password Strength Estimation | USENIX

Posted by jpluimers on 2025/06/19

Many web-sites and password managers have a strength indicator built-in.

This is a really good example (with open source JavaScript code!) of one: [Wayback/Archive] zxcvbn: Low-Budget Password Strength Estimation | USENIX

Be aware though that it stores a plain text file named passwords.txt on your system (this seems to confuse some users, especially when their password is in it).

Homans password behaviour does not change much over time, so this half hour 2016 presentation on it is still current: [Wayback/Archive] USENIX Security ’16 – zxcvbn: Low-Budget Password Strength Estimation – YouTube for which you can download:

Read the rest of this entry »

Posted in Chrome, Development, Edge, Firefox, JavaScript/ECMAScript, Power User, Safari, Scripting, Software Development, Web Browsers, Windows, Windows 10, Windows 11 | 2 Comments »

GitHub parody poster (but actually truth): “We trained copilot on your code. That’s why it sucks”

Posted by jpluimers on 2025/06/18

The image [Wayback/Archive] GjXf0EPWEAAaAoz.jpg:orig (1528×2048) posted by [WaybackSave/Archive] Deepak Kumar (दीपक) 😷💉 on X: “@Grady_Booch @jsngr” was a response to [Wayback/Archive] Grady Booch on X: “@jsngr …”

«

And what to we call a language with sufficient expressiveness and precision able to construct executable artifacts?

We call it a “programming language”.

At best, AI will revolutionize software development on the same manner as did the invention of compilers. The entire history

»

which also spared these interesting responses:

  1. [WaybackSave/Archive] Adiva 🏳️‍⚧️ on X: “@Grady_Booch @jsngr Also: libraries/packages. It’s been ages since anybody has needed to write every single thing by themselves. Lots of software writing is already creating logic that connects more specialized code written by other people without having understand its internals fully.”
  2. [WaybackSave/Archive] Fast Magpie on X: “@Grady_Booch @jsngr This is the correct take. The number of software engineers required to produce software will decline. The breadth and depth of skill required of those engineers will likely increase. The overall demand for software will increase.”

The library problem is even bigger than the XKCD single dependency one, as there are so many of those fragile dependencies which I discussed in Every conversation about dependencies since 2020 uses the same XKCD 2347 based image, which is a problem on multiple levels. AI will introduce even more dependencies and likely many of them from unknown background causing huge copyright issues.

Image (full size below) from [Wayback/Archive] Tweet JSON

--jeroen


Posted in AI and ML; Artificial Intelligence & Machine Learning, Conference Topics, Conferences, Development, Event, GitHub Copilot, LLM, Software Development | Leave a Comment »

Delphi 10 and up install notes

Posted by jpluimers on 2025/06/18

I try to keep an eye on older Delphi versions as, despite lacking features of newer versions, they do not suffer from issues (hi-dpi, language server, refactoring, stability).

Some notes below.

Tools to always install after Delphi

Install in this order so that GExperts gets the Alt-X menu shortcut and MMX the Alt-M menu shortcut.

  1. GExperts
  2. MMX (Model Maker code eXplorer)
  3. Project Magician
  4. TestInsight

Then download at least these libraries:

Delphi 10 Seattle requires .NET 3.5

You’d think the easiest to install it is through Chocolatey via [Wayback/Archive] Chocolatey Software | Dot Net 3.5 3.5.20160716

choco install dotnet3.5

This fails (Windows 11 is lacking wmic.exe)

The solution in Deploy .NET Framework 3.5 by using Deployment Image Servicing and Management (DISM) | Microsoft Learn still works (and still takes a long time, even on fast hardware with a fast internet connection):

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All

License manager fails to import registration .txt file

It loads the .txt file, but after closing the license manager it is not really imported.

Cause: you renamed the .txt file so that it contains more readable meta-information in the filename.

Solution: put the license file into a directory that has a readme.md file with the meta-information (like computername: that is what the license binds itself to in the online registration wizard).

This brought me an aha moment, as I had encountered it in the past and solved it, but forgot to make a note of it.

So this time, there was no need to follow the steps in either of these:

Delphi 12 still has the same icons for all 3 personalities

Icons in C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\bds.exe

Icons in C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\bds.exe

By now, I had hoped the devteam had finally ensured there were three different icons for the personalicties:

  • Delphi
  • C++ Builder
  • RAD Studio

False hope:

Icons for Delphi 12, C++ Builder 12 and RAD Studio 12: they are all the same.

Icons for Delphi 12, C++ Builder 12 and RAD Studio 12: they are all the same.

And very easy to fix as bds.exe includes all the needed icons and more – see image on the right.

Images:

Delphi 12.1 offline installer bugs not fixed in Delphi 12.2

[Administrator] RAD Studio 12

Java JDK not found on this machine. Please, install Java JDK before.

OK

image

image

If I ever get this to work, I want to use the OpenJDK; some links for that:

This was introduced in Delphi 12.1:

…………………………………………………………………………………………………………………………………………………………………………………

In addition, these Delphi 12.0 installation issues have not been fixed in Delphi 12.2 either (but the C++ Builder path issue seems fixed in the 12.2 Path 1 inline ISO of the off-line installer):

  • [Wayback/Archive] Installation Notes – RAD Studio (12.0 Athens, 20231207)

    Installation performed with Offline Installer results in missing subdirectories

    • Delphi
      When using the offline installer, the Browsing path for Delphi/64bit Linux lacks various directories.
    • C++ Builder
      When using the offline installer, the System include path for C++ / 32-bit Windows is missing the FMX subfolder.

    Note the “64bit” should be spelled “64-bit” and the “C++ / 32-bit” should be spelled “C++/32-bit” to be consistent with “Delphi/64-bit”.

    Similarly, the documentation misses that there is an intermediate node “Language” missing befer you get to either “Delphi” or “C++”, and that the “Compiler” mentioned tab for “C++” does not exist. It is this lack of attention to detail which you see all over the product, including the RTL library source code.

    Also note that these are not just a few “various” subdirectories or just “the FMX subfolder”, and besides in Delphi 12.0, you still have to fix them in Delphi 12.1 and 12.2 directly when you run it the first time after installation:

    • Delphi – add these 42 (FORTY TWO!) directories to the System include path field under Tools > Options > Language > Delphi > Library > 64-bit Linux:

      $(BDS)\source\rtl\common;$(BDS)\source\rtl\sys;$(BDS)\source\rtl\linux;$(BDS)\source\ToolsAPI;$(BDS)\source\IBX;$(BDS)\source\Internet;$(BDS)\source\Property Editors;$(BDS)\source\soap;$(BDS)\source\xml;$(BDS)\source\Indy10\Core;$(BDS)\source\Indy10\system;$(BDS)\source\Indy10\Protocols;$(BDS)\source\fmx;$(BDS)\source\databinding\components;$(BDS)\source\databinding\engine;$(BDS)\source\databinding\graph;$(BDS)\source\data;$(BDS)\source\data\ado;$(BDS)\source\data\cloud;$(BDS)\source\data\datasnap;$(BDS)\source\data\dbx;$(BDS)\source\data\dsnap;$(BDS)\source\data\Test;$(BDS)\source\data\vclctrls;$(BDS)\source\rtl\posix;$(BDS)\source\rtl\posix\linux;$(BDS)\source\data\datasnap\connectors;$(BDS)\source\data\datasnap\proxygen;$(BDS)\source\DataExplorer;$(BDS)\source\Experts;$(BDS)\source\indy\abstraction;$(BDS)\source\indy\implementation;$(BDS)\source\indyimpl;$(BDS)\source\Property Editors\Indy10;$(BDS)\source\soap\wsdlimporter;$(BDS)\source\Visualizers;$(BDS)\source\data\rest;$(BDS)\source\data\firedac;$(BDS)\source\tethering;$(BDS)\source\DUnitX;$(BDS)\source\data\ems;$(BDS)\source\rtl\net

      Likely there is one more directory missing as the Embarcadero documentation page has TWO semicolons here: $(BDS)\source\Visualizers;;$(BDS)\source\data\rest

    • C++ Builder – add these 8 directories to the System include path field under Tools > Options > Language > C++ > Paths and Directories > 32-bit Windows:

      $(BDSINCLUDE);$(BDSINCLUDE)\dinkumware64;$(BDSINCLUDE)\windows\crtl;$(BDSINCLUDE)\windows\sdk;$(BDSINCLUDE)\windows\rtl;$(BDSINCLUDE)\windows\vcl;$(BDSINCLUDE)\windows\fmx;$(BDSCOMMONDIR)\hpp\$(Platform)

  • ………………………………………………………………………………………………………………………

Delphi 12 (and 11) don’t really search for Git/Hg/Svn, but just complain they can’t be found

It does not matter if you use the offline installer or on-line getit installer.

Note I will personally never trust getit: Embarcadero is known for not being able to keep their infrastructure working without long outages, and known for not communicating about infrastructure changes, see for instance:

Their single most stable server is the altd one. Don’t tell them, as it might make them too self confident and start making modifications to it forgetting this lessen: never fiddle with a thing that has been very stable for a very long time.

Upon first start of Delphi 12.2 patch 1 after installation, you get these warning messages:

  • ⚠ Git executable not found
  • ⚠ Hg executable not found
  • ⚠ Subversion folder not found

This despite these being available on the search PATH:

C:\Users\jeroenp>where git.exe
C:\Program Files\Git\cmd\git.exe

C:\Users\jeroenp>where hg.exe
C:\Program Files\Mercurial\hg.exe

C:\Users\jeroenp>where svn.exe
C:\Program Files (x86)\Subversion\bin\svn.exe

Note you have to enter them as full paths to git.exehg.exe and svn-folder (without svn.exe):

C:\Program Files\Git\cmd\git.exe
C:\Program Files\Mercurial\hg.exe
C:\Program Files (x86)\Subversion\bin

Note this has been an issue for Delphi 11 as well, and not responded to in comments it also being present in Delphi 12, see:

Delphi 12.2 inline release cannot be modified after install

A modification (like installing more/less features) requires a full re-install when doing the off-line installer. The steps are referred to by [Wayback/Archive] Adding or Removing Features Using the Offline Installer – RAD Studio:

After you install an initial set of RAD Studio features using the Offline Installer, you can use the installer again to add or remove RAD Studio features.

To add or remove features from your RAD Studio installation:

  1. Run the Offline Installer.
  2. On the Welcome page, check the Modify option and select Next.
  3. On the following pages, configure the features that you want to add or remove from your installation.

Detailed steps are at [WaybackSave/Archive] Using the Offline Installer – RAD Studio are also wrong:

To install RAD Studio using the Offline Installer:
  1. Open the Offline Installer:
    1. Download the ISO image that contains the Offline Installer.
    2. Mount the ISO image in the system where you want to install RAD Studio.
      You can do either of the following to mount the image:
      • Burn the ISO image on a double-layer high-capacity DVD, and put that DVD on the optical disk drive of the target system.
      • Mount the ISO image as a virtual disk with a software solution like WinCDEmu.
    3. Open install_RADStudio.exe in the mounted ISO image to start the Offline Installer.

There is no install_RADStudio.exe any more. The installer .exe filename depends on the Delphi version you install. For Delphi 12.2 inline Patch 1, the offline installer name is radstudio_12_esd_119782a.exe.

I forgot during which Delphi version Embarcadero changed the installer technology, but it has been at least since Delphi 10.4, as reported by Brian Long in [Wayback/Archive] It’s a blong, blong, blong road…: Installer tip.

Note that the online getit installer enables the [Wayback/Archive] Using the Feature Manager – RAD Studio, which is not available when installing using the offline installer..

Links

Some lists of off-line installers are here:

  1. [Wayback/Archive] Pliki instalacyjne RAD Studio (obraz ISO i instalator Webowy) | BSC Polska is way more complete than the below one, but lacks XE3 and 12.2 patch 1 and has the wrong location https://altd.embarcadero.com/download/RADStudioXE/delphicbuilder_xe_3953B_win.iso for XE
  2. [Wayback/Archive] RAD Studio Installation links (ISO and Web installers) – Barnsten.com misses XE3, includes 12.2 patch 1 – which has download issues – and has a link for 12.0 that used to work in the past, but has download issues as well: https://altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_2_i_0329_C2CC.iso fails for 12.2 inline https://altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_0_inline_116924a.iso fails for 12.0 and  https://altd.embarcadero.com/download/RADStudioXE/delphicbuilder_xe_3953B_win.iso for XE
  3. [Wayback/Archive] alfasoft.com/wp-content/uploads/RAD-Studio-Installation-links.pdf [PDF View] misses XE3 and 12.2, has the wrong download link http://altd.embarcadero.com/download/radstudio/10.3/delphicbuilder10_3_0_94364.is for 10.3 (definitely not tested with the .is extension instead of .iso)
  4. [Wayback/Archive] RAD Studio 2010/xe/xe2/xe3/xe4/xe5 official ISO Download address (updated 2013-12-12) has not been updated for a long time, but had a lot of intermediate versions, but has these wrong links: https://altd.embarcadero.com/download/radstudio/xe2/delphicbuilder_xe2_win_dl.iso and https://altd.embarcadero.com/download/RADStudioXE/delphicbuilder_xe_3953_win.iso

Somewhere in the future, I will try to make a complete list as not all of these altd links work. For now, this has to do: [WaybackSave/Archive] altd site:wiert.me – Google Suche

This one for instance didn’t always work (they failed at least from 20241102 until 20241104 downloading way too short files):

Just look at the download sizes and you understand why – his is also why people should publish URL, size and hashes (preferably sha1 or sha256, optionally md5) – filtered on M (mebibyte) sizes – yes, Delphi 7 was that small:

12M  ./altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_2_i_0329_C2CC.iso
22M  ./altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_0_inline_116924a.iso
649M ./altd.embarcadero.com/download/delphi/d7/english/ent/delphi_7_ent_en.iso

I need to check all of the above and especially the two below, which means first finding hashes for them as the sizes match:

https://web.archive.org/web/20240929231113if_/https://altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_0_inline_116924a.iso
https://web.archive.org/web/20241104165704if_/https://altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_2_i_0329_C2CC.iso

Probably the 12.0 one is OK, but the 12.2 inline got truncated to 2 gibibytes:

2.0G ./web.archive.org//web/20241104165704if_/https:/altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_2_i_0329_C2CC.iso
7.1G ./web.archive.org//web/20240929231113if_/https:/altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_0_inline_116924a.iso

I need to check which HTTP header fields in the HTTP request will help alleviate this. Hopefully just a HTTP referer header works fine. A job for somewhere in the future, as I already had obtained copies of these files from someone that already had them downloaded a while ago.

Sizes from:

du -h `find ./altd.embarcadero.com/ | grep iso` | grep M && du -h `find ./web.archive.org/ | grep iso` | grep G

These ones for instance didn’t work at all:

  • https://altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_0_inline_116924a.iso (not available any more)
  • https://altd.embarcadero.com/download/radstudio/xe2/delphicbuilder_xe2_win_dl.iso (missing a build number)
  • https://altd.embarcadero.com/download/RADStudioXE/delphicbuilder_xe_3953_win.iso (missing the b at the end of the build number)
  • https://altd.embarcadero.com/download/RADStudioXE/delphicbuilder_xe_3953B_win.iso (yes, case is important with unix filenames people!)
  • https://altd.codegear.com/download/radstudio2007/CodeGearRADStudio2007_Dec2007.iso (invalid certificate because of the domain name)
  • https://altd.codegear.com/download/radstudio2007/CodeGearRADStudio2007setup.exe (invalid certificate because of the domain name)

These ones do:

This one was missing completely in the first two lists:

Queries:

--jeroen

Posted in Delphi, Delphi 10 Seattle, Development, GetIt, Java, Java Platform, Software Development, Web Development | Tagged: | 1 Comment »

Of interest – GitHub – t-d-k/LibreCrypt: LibreCrypt: Transparent on-the-fly disk encryption for Windows. LUKS compatible.

Posted by jpluimers on 2025/06/17

Of interest – despite the known issues and LUKS workaround through WSL – mainly as the majority was written in Delphi: [Wayback/Archive] GitHub – t-d-k/LibreCrypt: LibreCrypt: Transparent on-the-fly disk encryption for Windows. LUKS compatible.

Found when researching TFrame – What is the accepted way to use frames in Delphi? – Stack Overflow.

Related: Read the rest of this entry »

Posted in Delphi, Development, Encryption, Power User, Software Development, Windows Development | Leave a Comment »

🔎Julia Evans🔍 on Twitter: “debugging strategy: use sounds or pictures I’m still not satisfied with the examples in this one, I’d love to hear examples of how you use visualizations or sounds to debug https://t.co/5DOxshi8QN” / Twitter

Posted by jpluimers on 2025/06/17

[Wayback/Archive] Julia Evans on Twitter: “debugging strategy: use sounds or pictures I’m still not satisfied with the examples in this one, I’d love to hear examples of how you use visualizations or sounds to debug”

title: use sounds or pictures When you're dealing with a lot of data (like in a game for example), sometimes text isn't the best way for your brain to process it! computer: "<thousands of lines of log messages>" person: "ugh I can't read all this!" computer: boop boop beep beep boop person: "wait, that pattern is super irregular..." Some things you could try: * play a sound every time an event happens! * add red outlines around every HTML element! * display an image representing some data!

Posted in Debugging, Development, Software Development | Leave a Comment »

A PDF can run JavaScript, which means it can hosts a VM for Linux or Doom

Posted by jpluimers on 2025/06/12

A few years back, this question popped up: [Wayback/Archive] Embedding JS into PDF : cybersecurity

The answer is yes, and you can take this far. Virtualisation far. Which is what these repositories – both by [Wayback/Archive] ading2210 · GitHub – did:

Via [Wayback/Archive] Angry Nerds Podcast – YouTube -> [Wayback/Archive] Angrynerds 235 – Automasturbator – YouTube -> 1540 seconds at [Wayback/Archive] Angrynerds 235 – Automasturbator – YouTube – t=5040s

1:24:00 Hadden we Doom in PDF-vorm al eens genoemd? https://github.com/ading2210/doompdf Er is een vervolg, nu gewoon linux draaien in een PDF https://github.com/ading2210/linuxpdf Dus in feite gewoon een PDF-VMetje

Related:

Read the rest of this entry »

Posted in *nix, Development, JavaScript/ECMAScript, Linux, Power User, Software Development, Virtualization | Leave a Comment »

Sequoiaview altrnatives

Posted by jpluimers on 2025/06/12

I wrote about Sequoiaview in depth in SequoiaView Homepage, made some research notes in “cushion treemap” delphi – Google Search and touched it slightly in A choco install list.

I never heard back from my request for Sequoiaview source code, and given ever increasing local storage media sizes, the speed of it now has become an issue, so I started looking to see if more alternatives have appeared and what sets them apart.

TL;DR

  1. There is the open source WinDirStat that runs as non-admin and is about as slow as Sequoiaview
  2. There is the closed source but free for personal use WizTree that requires admin elevation and is much faster than Sequoiaview and WinDirStat

Neither of them allow for a view that is cushion treemap only.

The reason that WizTree is fast is that it directly uses the NTFS MFT (Master File Table) to read the information from. This requires elevated permissions.

This is the same mechanism used by the Everything search tool, but unlike Everything, WizTree:

Read the rest of this entry »

Posted in C++, Development, Encoding, Mojibake, Software Development, UTF-8, Windows Development | Tagged: | Leave a Comment »

unix – How come is this command returning “GET A LIFE!”? – Stack Overflow

Posted by jpluimers on 2025/06/11

Didn’t know nx had a scriptable RPN command-line calculator dc (for Desk Calculator) which does not seem to need white space characters in the input stream or input file.

It likely is a source for command-injection attacks given the question [Wayback/Archive] unix – How come is this command returning “GET A LIFE!”? – Stack Overflow, so I did a bit of digging and found this great platform:

Read the rest of this entry »

Posted in *nix, *nix-tools, Development, Power User, PowerShell, Python, Scripting, Software Development | Leave a Comment »

An Interactive Guide to Flexbox in CSS

Posted by jpluimers on 2025/06/11

For my link archive (as interactive stuff works way better for me than learning from plain reading) [Wayback/Archive] An Interactive Guide to Flexbox in CSS

Via:

–jeroen

Posted in CSS, Development, Software Development, Web Development | Leave a Comment »