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 ‘Web Development’ Category

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 »

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 »

html – How to display an unordered list in two columns? – Stack Overflow

Posted by jpluimers on 2025/06/05

For a, I wanted to a HTML ul list the SQL keywords in multiple columns I was afraid this would be a tough CSS job, but in practice it was way easier than even explained in the below Stack Overflow answers that made me find

[Wayback/Archive] columns – CSS: Cascading Style Sheets | MDN

The columns [Wayback/Archive] CSS shorthand property sets the number of columns to use when drawing an element’s contents, as well as those columns’ widths.

TL;DR:

  • I used <ul style="columns:3">...</ul>
  • For setting column width, this failed in Chrome <ul style="column-count: 2; column-width: 15em;">...</ul>
    but this worked: <ul style="column-count: 2; width: 480px;">...</ul>

Here are the answers:

Read the rest of this entry »

Posted in Conference Topics, Conferences, CSS, Development, Event, HTML, Software Development, Web Development | Leave a Comment »

Yes, you can globally block JavaScript and enablpe per-site, but you block Bookmarklets too

Posted by jpluimers on 2025/05/16

Trying to trim down excessive CPU usage of my web browsers, and lessen the risk of intrusion, I experimented with globally disabling JavaScript and only enabling it on sites where it adds value to me.

That is possible (see below), but immediately showed a big side effect: Bookmarklets will not work on sites that have JavaScript disabled.

Disabling JavaScript globally only allows Bookmarklets on sites where you have enabled JavaScript. Not the situation I hoped for (:

I’ll try it for a while though.

Read the rest of this entry »

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

Upptime: GitHub-powered open-source uptime monitor and status page

Posted by jpluimers on 2025/05/14

I wonder how long this can be hosted on GitHub. Will start using it, just to learn more about the GitHub computing infrastructure.

Links:

--jeroen

Posted in Cloud, Development, DVCS - Distributed Version Control, GitHub, Hosting, Infrastructure, Monitoring, Power User, Software Development, Web Development | Leave a Comment »

Coo responses to b0rk no Twitter: “is there an easy way (in the browser, at runtime) to generate a call graph of which functions called which other functions in a javascript program?”

Posted by jpluimers on 2025/05/13

For my reading list, the various responses to [Wayback/Archive] Julia Evans on Twitter: “is there an easy way (in the browser, at runtime) to generate a call graph of which functions called which other functions in a javascript program?”

--jeroen


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

Extracting URLs from the Wayback Machine – Home

Posted by jpluimers on 2025/05/07

For my link archive:

Via [Wayback/Archive] Home: buriedbits which also brought wabarcbot to my attention:

@wabarc_bot: Snapshot webpages to Internet Archive, archive.today, Telegra.ph and IPFS.

Read the rest of this entry »

Posted in archive.is / archive.today, Development, Ghostarchive, Internet, InternetArchive, Power User, Software Development, WayBack machine, Web Development | Leave a Comment »

A signal of the future WebAssembly/emscripten is giving us: a database served on a static web page

Posted by jpluimers on 2025/04/17

From a quite a while back; apparently it ended up in the drafts in stead of the blog queue:

[Wayback/Archive] Ian Miell on Twitter: “A signal of the future WebAssembly/emscripten is giving us: a database served on a static web page: … The possibilities are dizzying. Also, I’ve thought for a while that if I had to put money on it, SQLite will outlast every other database out there.”

The combination of Emscripten and WebAssembly is cool as it allows you to run C/C++ based code in most Web Browsers at near-native speed (though the standard is open and can just as easily outside that realm).

[Wayback/Archive] Hosting SQLite databases on Github Pages – (or any static file hoster) – phiresky’s blog:

Read the rest of this entry »

Posted in Assembly Language, Database Development, Development, JavaScript/ECMAScript, Scripting, Software Development, SQLite, Web Development, WebAssembly | Leave a Comment »

Some HTTP redirect checking sites compared

Posted by jpluimers on 2025/04/02

 

Every now and then I want to check how a URL redirect, for instance when checking out why a domain failed loading in browsers a while ago because of certificate problems:

The thing was that back then, the site officially did not have a security certificate, but somehow the provider had installed a self-signed one. Most web-browsers then auto-redirect from http to https. Luckily the archival sites can archive without redirecting:

When querying [Wayback/Archive] redirect check – Google Search, you get quite some results. These are the ones I use most in descending order of preference and why they are at that position:

Read the rest of this entry »

Posted in *nix, *nix-tools, archive.is / archive.today, Communications Development, Development, Encryption, HTTP, https, HTTPS/TLS security, Internet, Internet protocol suite, ISP, Power User, Security, Software Development, TCP, WayBack machine, Web Development, wget, xs4all | 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 »