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

Archive for the ‘Delphi’ Category

Oh boy, VB.NET and JavaScript both have a `with` keyword too!

Posted by jpluimers on 2024/03/05

Last year, within a week, I saw two tweets of languages that, like Pascal, have a with statement as well:

  1. [Archive.is] Shawn Wildermuth 💻☕🎸🎥🎮 on Twitter: “JavaScript’s Forgotten Keyword (with)”
  2. [Archive.is] John Kaster #BlackLivesMatter on Twitter: “@suited_aces @marcocantu @delphijunkie @JimMcKeeth @jpluimers I present “with”… “

The first points to an article that shows the JavaScript implementation of with is very similar to the Pascal one: [Wayback] JavaScript’s Forgotten Keyword (with) – DEV Community.

Just in case some of my readers do not know my opinion of the Pascal with statement  (it even has it’s own blog category), I really think you should not use it Delphi: you should avoid the with statement as it makes your code less future proof.

The reason not to use it is called [Wayback] Accidental Shadowing in computer language speak (it also can rear its head when you define variables at different block levels like for instance this golang example: [Wayback] Warning for accidental variable shadowing with block scope – Technical Discussion – Go Forum).

Even the JavaScript specification advises against using the with keyword in [Wayback] with – JavaScript | MDN

**Warning:**Use of the with statement is not recommended, as it may be the source of confusing bugs and compatibility issues. See the “Ambiguity Contra” paragraph in the “Description” section below for details.

There have been various proposals to extend the Delphi implementation of the with statement to make it more resilient to Accidental Shadowing by forcing the usage to be prepended by a . (dot) or alias, as for instance seen in [Wayback] Re: “with” Coders are Monsters – delphi / [Wayback] delphi • View topic • “with” Coders are Monsters:

This is in fact what the second twitter messages pointed to: a VB.NET example doing just that: prepend with a dot: [Wayback] Maarten Balliauw on Twitter: “Looks like using With makes it pretty clean!… “

I was not even aware that VB.NET had it, but it has: [Wayback] With…End With Statement – Visual Basic | Microsoft Docs

And it has similar debugging issues as with Delphi as per [Wayback] The VB.NET ‘With’ Statement – embrace or avoid? – Stack Overflow:

Find the beginning of a With statement and set a breakpoint. Step to the next line (so you’re hiding the first line right under the if block). Highlight it, then ‘Add Watch’. You should see this: ‘With’ contexts and statements are not valid in debug windows.

–jeroen

Posted in .NET, Delphi, Development, Go (golang), JavaScript/ECMAScript, Pascal, Scripting, Software Development, VB.NET, With statement | Leave a Comment »

In memory of Matthias Eißing (Embarcadero, formerly Borland/Inprise/Borland/CodeGear)

Posted by jpluimers on 2024/02/16

Earlier today, I got the sad news that my friend Matthias Eißing suddenly passed away in the night from Tuesday to Wednesday.

Valentines day will never be the same.

Rest in Peace dear Matthias Eißing. Hope you will virtually keep drinking beer and keep the great conversations that made you so many friends going.

🕯️

[Wayback/Archive] Eine sehr traurige Nachricht – Delphi-PRAXiS

Mit einer Mischung aus blankem Entsetzen und großer Trauer muss ich Euch leider mitteilen, dass unser langjähriges Community-Mitglied Matthias Eißing in der Nacht zu Mittwoch plötzlich und völlig unerwartet verstorben ist.

Helping others with is technical knowledge was what Matthias loved doing so much: in person (see [Wayback/Archive] Matthias Eißing – Entwickler Konferenz and [Wayback/Archive] Programm | EKON 27 – Die Entwickler Konferenz für Delphi & more), virtual (watch  [Wayback/Archive] Magdeburger Developer Days 2021 03.09.2021 – Matthias Eißing “Delphi Community Edition” – YouTube), individually (uncountable chat messages, phone and video calls, e-mails and in-company meetings), white papers / blog posts (like [Wayback/Archive] HighDPI Entwicklung unter Windows) and forum messages (just see the list at [Wayback/Archive] Delphi-PRAXiS – Ergebnis der Suchanfrage).

I had hoped to meet at EKON28 again, as our story goes back to the very first [Wayback/Archive] EKON – The Conference for Delphi & More in 1997 @ the Raunheim Astron Hotel Rhein-Main organised by Masoud Kamali ([Wayback/Archive] Massi Kamali (@MasoudMassi) / Twitter).

EKON was the first conference by Masoud/S&S. It and later conferences helped the Astron Hotels in the southern Frankfurter area (a few years Raunheim, Rüsselsheim and many years Mörfelden) grow a lot and it was the base were Matthias and a lot of other developers kept meeting up and started to know about each others personal lives as well.

Read the rest of this entry »

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

Watching “Why is C# Evolving This Way?” strengthened my realisation that the Delphi 12 language by now is light years behind C# 12

Posted by jpluimers on 2023/12/07

Though after C# 4 (covariance and contravariance) and C# 5 (async/await) the evolvement of C# might have seemed to slow down a bit, the big picture hasn’t as shown in the [Wayback/Archive] Why is C# Evolving This Way? – YouTube video by Zoran Horvat which comes down to:

Read the rest of this entry »

Posted in .NET, C#, Delphi, Development, Software Development | 9 Comments »

Happy birthday Turbo Pascal! Some marketing and Borland Conference videos

Posted by jpluimers on 2023/11/20

Some of you might remember [WayBack] Borland – Wikipedia, that today in 1983 shipped the first version of Turbo Pascal [Wikipedia].

It was of great influence, leading to other Turbo languages, Delphi, and – through it’s creator Anders Hejlsberg – eventually C#, .NET and TypeScript.

From the mid 1990s until the early 2000s, the Borland organised conferences (having various names, like Borland Language Conference, Borland Conference, Borland Developers Conference, Inprise Conference) had famous opening videos, and product marketing videos.

Some of them are below the signature.

Hopefully by the time of publishing, all of them are still there.

Edit 20231202:

I scheduled this post back in Winter 2019/2020 in between radiation therapy and surgery.

By now, more information on the anniversary has appeared online.

For more Turbo Pascal history, including – in reverse chronological order – old screenshorts and the first advertisements (and how quickly they changed from the pink on white to full colour ones), see my 2021 blog post Much Turbo Pascal history (via What is a Delphi DCU file? – Stack Overflow). It had many screenshots including a Turbo Pascal 1.0 screenshot, which I have added it here to the right. By now  Turbo Pascal – Wikipedia and Borland Graphics Interface – Wikipedia are quite complete history of Turbo Pascal.

Read the rest of this entry »

Posted in .NET, C#, Delphi, Development, Pascal, QC, Software Development, Turbo Pascal | Leave a Comment »

Memories of the Twitter Fail Whale that got discontinued 10 years ago (HT @YiyingLu, @failwhale).

Posted by jpluimers on 2023/11/01

From 2008 to fall 2013, Twitter used the Fail Whale, a 2006 artwork by Yiying Lu originally titled “Lifting A Dreamer”, to indicate problems on their site.

Now that it is about a year after Musk burned some 44 milliard USD buying Twitter, it is also 10 years ago they phased out the Fail Whale, so it is a good time to remember it and a reminder to check out how Twitter faired during Elon’s ownership.

With Twitter down, you’d see the image from [Wayback/Archive] Yiying Lu 🐳 🥟🧋 on Twitter: “It has been 10 years since my art piece “Lifting a Dreamer” became the Twitter Fail Whale, a symbol as @Twitter’s service outrage during 2008-2013. It has inspired hundreds, probably thousands, of funny, clever & amusing homages and take-offs from users globally. Here are a few: …”:

Read the rest of this entry »

Posted in Delphi, Development, History, SocialMedia, Software Development, Twitter | Leave a Comment »

Bruce Tate on Twitter: “What’s the most unique feature of your favorite programming language?”

Posted by jpluimers on 2023/08/24

For my link archive: [Wayback/Archive] Bruce Tate on Twitter: “What’s the most unique feature of your favorite programming language?” / Twitter

From the languages that I have been using most:

It was a kind of follow-up on his earlier tweet that also sparked nice responses at [Archive] Bruce Tate on Twitter: “What is a #programming technique or construct that other people like but you think is overused?” / Twitter.

In my respons I phrased my decades long pet peeve [Archive] Jeroen Wiert Pluimers on Twitter: “@redrapids OOP: inheritance over composition. This leads to deep hierarchies that eventually nobody understands.” / Twitter.

Whereas with OOP (object-oriented programming) one should use composition over inheritance, often the reverse is true.

Actually my take can be generalised into two directions as these hierarchies:

  1. often crowd a single namespace, so: crowding namespaces is bad.
    One does see this outside the Object Oriented realm a well.
  2. often have many levels of indirection, so: overdoing indirection is bad
    One does see this outside the Object Oriented realm a well, just not as pronounced.

–jeroen

Posted in .NET, C#, Conference Topics, Conferences, Delphi, Development, Event, JavaScript/ECMAScript, Pascal, Scripting, Software Development | Leave a Comment »

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.

Via:

jeroen

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 github.io

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 github.io 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 raw.githack.com (where I already hosted raw.githack.com/jpluimers/deadlockempire.github.io/feature/Delphi-language-and-Delphi-RTL/index.html as raw.githack.com/jpluimers/deadlockempire.github.io/feature/Delphi-language-and-Delphi-RTL/index.html and rawcdn.githack.com/jpluimers/deadlockempire.github.io/feature/Delphi-language-and-Delphi-RTL/index.html).

This is how easy it was to get it hosted as [Wayback/Archive] jpluimers.github.io/deadlockempire.github.io:

  1. In my [Wayback/Archive] jpluimers/deadlockempire.github.io: 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] jpluimers.github.io/deadlockempire.github.io:
    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 | 1 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ł!

–jeroen

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