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 4,152 other subscribers

Archive for the ‘Delphi’ Category

Ask Delphi

Posted by jpluimers on 2023/02/21

LOL, Ionica taught me about a [Wayback/Archive] Ask Delphi “oracle”.

So I could not resist:

Ask Delphi:
Is Delphi a programming language?
Delphi speculates:
“It’s expected”

Don’t take the ethics of this “oracle” too seriously, as it is based on AI and we all know how that depends on the data it has been trained with.



Posted in Awareness, Delphi, Development, Software Development | Leave a Comment »

State machines in Delphi and .NET

Posted by jpluimers on 2023/02/15

Forgot to schedule this in 2014, so here it finally is, as the content is still relevant:

A long time ago (almost 10 years) I did some stuff with State Machines in .NET.

Since then the world has changed, and a lot more libraries have become available.

As I mainly use .NET and Delphi and there is a reasonable chance I need to do some more state machine work, here are some links about State Machines in both environments.

Read the rest of this entry »

Posted in .NET, C#, Conference Topics, Conferences, Delphi, Development, Diagram, Event, Java, Java Platform, Software Development, UML | Leave a Comment »

Enabling GitHub pages to a HTML or markdown GitHub project is dead easy: Delphi deadlockempire is now hosted on

Posted by jpluimers on 2023/01/10

A while ago I wrote about Setting up a GitHub project so it is served over https as a and a custom subdomain.

Doing the full “host on your custom domain” route was a big tougher than I hoped for, so I totally forgot how easy it is to convert an existing HTML or markdown documentation repository to use GitHub pages without a custom domain.

I needed it for the Delphi version of the DeadLockEmpire (see links below, originally it was an interactive tutorial game focusing on the C# language and .NET runtime), as I am trying to get as much as my stuff published and hosted in a manner that will outlive me (I still have a pretty high chance of the rectum cancer metastases returning).

Enabling GitHub Pages on your repository is almost as easy as hosting a page through (where I already hosted as and

This is how easy it was to get it hosted as [Wayback/Archive]

  1. In my [Wayback/Archive] jpluimers/ The Deadlock Empire: Slay dragons, learn concurrency! repository, go to the Settings tab, then click on Pages:
    DeadLockEmpire Settings tab, Pages configuration None

    DeadLockEmpire Settings tab, Pages configuration None.

    Here you see “None” as value for the branch to be published as GitHub Pages.

  2. Here I have chosen the Branch “feature/Delphi-language-and-Delphi-RTL” to be published, and am about to press “Save” (full screenshot below):
    DeadLockEmpire Pages selecting the correct branch

    DeadLockEmpire Pages selecting the correct branch

  3. After pressing “Save“, the site gets published (it takes about a minute for that to complete) at [Wayback/Archive]
    DeadLockEmpire Pages the correct branch has been saved

    DeadLockEmpire Pages the correct branch has been saved which will automagically publish it.

That was it. No more steps.

Each new commit in the selected branch will auto-publish as well.

Related DeadLockEmpire posts

  1. 2016 – If you thought you could do multi-threading, then play “The Deadlock Empire” games.
  2. 2017 – ThreadBarrier/ThreadBarrier.pas at master · lordcrc/ThreadBarrier
  3. 2020 – Davidlohr Bueso on Twitter: A programmer had a problem. He thought to himself, “I know, I’ll solve it with threads!”. has Now problems. two he
  4. [WayBack] One second code: Do YOU know how much your computer can do in a second? is a quiz version of the [WayBack] Numbers Every Programmer Should Know By Year. [WayBack] About this game revealed…Source: One second code: Do YOU know how much your computer can do in a second? « The Wiert Corner – irregular stream of stuff

Read the rest of this entry »

Posted in .NET, About, C#, Conference Topics, Conferences, Delphi, Development, Event, Personal, Software Development, Web Development | Leave a Comment »

Thinking about you today Paweł

Posted by jpluimers on 2022/12/13

Today it is 5 years ago that Paweł passed away. For me it is hard to believe that I’m still around and this post feels like yesterday: R.I.P. Paweł Głowacki – you will be dearly missed, not just in the Delphi community

Thinking about you today Paweł!


Posted in About, borland, Delphi, Development, Health, History, Personal, Power User, Software Development | Leave a Comment »

Reminder to self: write a more extensive blog post on Delphi style guides and code style in general

Posted by jpluimers on 2022/11/30

A while ago, Uwe Raabe reminded me about the Delphi Style Guide which is on-line at the Embarcadero document wiki:

He reminded me to write a bit more about Delphi Style Guides, as there are a few and I used them on past conference sessions.

I thought either the blog post or the conference sessions were already online.

Nope, no 2010 conference sessions at [Wayback/Archive] jpluimers/Conferences: Materials for the conferences that Jeroen Wiert Pluimers spoke on., and no blog post yet.

Hopefully over time I will update that repository, but for now: here is a summary of Delphi Style Guides and a short hint on why to get naming conventions right.

I might extend both in a later blog post, health and time permitting.

Delphi Style Guides

Style guides I found in the past as files named in those session materials:

The above also made me find this interesting post: [Wayback/Archive] Delphi-PRAXiS – Einzelnen Beitrag anzeigen – Delphi Einrücken ::: ::: Wie rückt ihr ein? which mentions these style guides (I modified all links to point to the most recent WayBack machine version that is complete)):

  • Borland empfiehlt folgende Formatierungsregeln:,1410,10280,00.html
    Der Punkt 3 “naming conventions” schweigt sich aber über Deine Frage aus 
  • Deutsche Übersetzung der Borland Style Guides
    Unsere Freunde von haben sich die Mühe gemacht und dem Text ins deutsche Übersetzt.
    Damit gibt es nun keine Ausreden mehr sich nicht an die Richtlinien zu halten 
  • Delphi 4 Developer’s Guide Coding Standards Document
    von Econos – Stefan Hoffmeister (1998)
    basiert auf dem Coding standard von Xavier Pacheco and Steve Teixeira
    Hier gibt es auch eine Liste mit Präfixen zu den einzelnen Komponenten
  • Delphi Object Pascal Coding and Project Organization Standard
    von Michael P. Hollis and Mark S. Lauter
    Hier wird zwar auch nicht auf die Präfixe eingegangen, aber es wird unter anderem auch eine Verzeichnisstruktur vorgeschlagen.
    Solch ein Dokument mit den einzuhaltenden Regeln sollte in jedem Projekt / Team existieren.
  • Delphi coding Standards
    Maintained by Mustafa GÖKMEN…/delphi/cs.php
    Hier ist auch eine Liste mit Präfixen enthalten
  • Delphi Identifier Naming Conventions
    von Zarko Gajic
    it made it into the WayBack machine
    Dieser Artikel befasst sich nur mit der Benamung von Variablen

The dstgroup version is based on WayBack:

Mixed emotions conventions

Anyway, this is the piece of code by Uwe Raabe that made me frown as it mixes two Delphi styles at once and uses improper meanings in names:

procedure TSearchForm.StartSearch;
  StatusBar.SimpleText := '';
  SearchFolder(edtRootFolder.Text, edtSearchPattern.Text);
procedure TSearchForm.SearchFolder(const APath, ASearchPattern: string);
  arr: TArray;
  dir: string;
  arr := TDirectory.GetFiles(APath, ASearchPattern);
  { release memory as early as possible }
  arr := nil;
  for dir in TDirectory.GetDirectories(APath) do begin
    if not TDirectory.Exists(dir) then Continue;
    SearchFolder(dir, ASearchPattern);
procedure TSearchForm.AddFiles(const AFiles: TArray);
  dspFiles.Items.Count := Files.Count;
  StatusBar.SimpleText := Format('%d files found', [Files.Count]);

This is the start of technical debt, and resulted in the below cool Twitter thread.

Note that I intentionally used “Digital Signal Processor” as dsp abbreviations are very context sensitive, causing truckloads of problems especially when switching between functionality at front and technical stuff at front in naming conventions.

Functionally, it could have made very much sense to add files into a list to be passed onto a Digital Signal Processor for pre- or post-processing of signals.

Uwe uses this Style Guide (which regrettably does not pay tribute to the original author):

So yes, Uwe posted a cool example on how to apply technology properly, and I retweeted it as this: [Archive] Jeroen Wiert Pluimers on Twitter: “Async Tasks in VCL Projects. Cool example on how to properly to Async in VCL. Important thought: please do not mix naming conventions like Uwe does, as it is substantially adds to your technical debt.… “

It is also a reminder for me to phrase this into the positive form: stick to one naming convention as it makes less technical debt creep in. Like Uwe, I learn new things every day and be reminded it is hart to not follow old habbits.


Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »

%d bloggers like this: