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

Archive for the ‘Event’ Category

Disabling the ever returning screens after Windows install/upgrade, and advertisements/feeds

Posted by jpluimers on 2025/07/21

This started out ad a post to make things easier for my mentally brother, but then I figured it makes it so much easier for myself as well: getting rid of the evern returning Windows nag screens. Not just the ones after logon during initial Windows install that get back about every other Windows 20H update (thank god they stepped away from 19## version numbering that felt so, ehm, last millennium), but also the various “suggestions” in start menu, on the taskbar and elsewhere.

I understand that basically giving Windows 10 and 11 for free to many Windows 7/8 licensed machines or Windows-preinstalled machines induces Microsoft to see Windows as an advertising environment, but hey: many users can do without these distractions.

It is hard to solve, as even the underlying registry settings seem to be reset every once in a while, and solving it globally is not an option: the settings are a per-user one. Which means you need to run script early during every Windows logon to overwrite these settings.

Read the rest of this entry »

Posted in Batch-Files, CommandLine, Conference Topics, Conferences, Development, Event, Power User, PowerShell, PowerShell, Registry Files, Scripting, Software Development, Windows, Windows 10, Windows 11, Windows Development | Tagged: | Leave a Comment »

Installing and authenticating the GitHub CLI gh and GitLab CLI glab on Windows

Posted by jpluimers on 2025/07/16

As a keyboard person, I prefer to live on the CLI (command-line interface), so when possible I prefer command-line tools over GUI tools (especially since command-line tool are way easier to script).

In the past on non-Windows systems I used gist (see below), but that is not available on Windows unless you have a Ruby environment.

Some notes on Windows to install and authenticate GitHub CLI (gh) and GitLab CLI (glab), both of which I previously mentioned in Tribal Knowledge? Getting the public keys from github and gitlab users from their username.

For me, installing is easiest through Chocolatey (version numbers from the time of writing; the non-archived URLs point to the most current version available):

This was my install script:

Read the rest of this entry »

Posted in Conference Topics, Conferences, Development, DVCS - Distributed Version Control, Event, git, GitHub, GitLab, Power User, Software Development, Source Code Management | Tagged: | Leave a Comment »

SQL: WHERE versus HAVING

Posted by jpluimers on 2025/07/08

While writing Some SQLite things I recently learned a while ago I bumped into SQLite extending the SQL syntax allowing SELECT column aliases in WHERE and ON conditions of JOIN clauses whereas standard SQL only allows it in the HAVING clause (some other DMBS allow this as well).

It reminded I never wrote a blog post about WHERE versus HAVING, which can be phrased into just two points:

  • WHERE is applied before the SELECT is assembled
  • HAVING is applied after the SELECT is assembled

This also means WHERE has a lot more influence on performance than HAVING, so using HAVING just so you can use aliases there instead of in the WHERE clauses is not a smart idea unless you verify in the query plan and query optimisation output of our DBMS this has no influence (some DBMS even allow you to see the results of query rewriting which you can use to verify if two queries really are equivalent from the DBMS perspective).

Since HAVING can be used without GROUP BY, many people work around the WHERE alias limitation. Given the above effects on performance, this is not a wise idea, despite the same end-results. See the example below that uses the [Wayback/Archive] MySQL :: Sakila Sample Database: customer table.

Luckily there has been enough other material explaining WHERE versus HAVING, so I can reference it from here, for instance (note note limited to MySQL/MariaDB) [Wayback/Archive] mysql – WHERE vs HAVING – Stack Overflow (thanks [Wayback/Archive] baloo and [Wayback/Archive] Fishdrowned):

Read the rest of this entry »

Posted in Conference Topics, Conferences, Database Development, Development, Event, MariaDB, MySQL, SQL, SQLite | Tagged: , | Leave a Comment »

GitHub – PascalCorpsman/FPC_DOOM: FPC Port of DOOM

Posted by jpluimers on 2025/07/03

Indeed: DOOM in Pascal. Not Delphi: Free Pascal.

Repository: [Wayback/Archive] GitHub – PascalCorpsman/FPC_DOOM: FPC Port of DOOM

It is based on [Wayback/Archive] GitHub – fabiangreffrath/crispy-doom: Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom..

Hopefully, this summer I can play around with it a bit.

Via [Wayback/Archive] International Pascal Congress on X: “DOOM in Pascal!! 😍👏👏 Do you want to play or compile it? 😉 #Pascal #ObjectPascal …”.

--jeroen

Posted in Conference Topics, Conferences, Delphi, Development, Event, FreePascal, Pascal, Power User, Retrocomputing, Software Development | Tagged: , | Leave a Comment »

Undergraduate Upends a 40-Year-Old Data Science Conjecture : programming – Andrew Krapivin et all invente a faster hashing algorithm

Posted by jpluimers on 2025/06/26

From a while back: [Wayback/Archive] Undergraduate Upends a 40-Year-Old Data Science Conjecture : programming which has a “TL;DR for non CS people” and a “Here’s an explanation” well worth reading.

It’s about the work of Andrew Krapivin with co-authors Martín Farach-Colton and William Kuszmaul.

A young computer scientist and two colleagues show that searches within data structures called hash tables can be much faster than previously deemed possible.

Reminder to self to find any real world implementations of this new hashing algorithm.

Materials are the “easier” article [Wayback/Archive] Undergraduate Upends a 40-Year-Old Data Science Conjecture | Quanta Magazine which refers to the actual paper:

Read the rest of this entry »

Posted in Algorithms, Conference Topics, Conferences, Development, Event, Software Development | Tagged: , , | Leave a Comment »

GitHub: finding the oldest commit on large repositories

Posted by jpluimers on 2025/06/25

The manual process of getting back to the earliest commit of a GitHub repository is easy for small repositories, but for a large one it is very tedious.

TL;DR: there are various ways, but the easiest was the INIT Bookmarklet below.

Note: 2 weeks before the scheduled post made it to the front of the queue, I got a report¹ that it started to fail. Here it still works.

It’s hard to debug because of the functional programming approach taken.

Read the rest of this entry »

Posted in Bookmarklet, C, Conference Topics, Conferences, Development, DVCS - Distributed Version Control, Event, git, GitHub, Go (golang), JavaScript/ECMAScript, Power User, Scripting, Software Development, Source Code Management, Web Browsers | Tagged: , , | Leave a Comment »

“C# emits .callvirt instructions, even if the method isn’t virtual. That forces a call site null check.” (Immo Landwerth on Twitter)

Posted by jpluimers on 2025/06/25

From a while back, which I initially missed because it was in the midst figuring out my ver increasing bowel problems leading up to all my cancer treatments, but still relevant:

[Wayback/Archive] Immo Landwerth @terrajobst@hachyderm.io on Twitter: “That’s why C# emits .callvirt instructions, even if the method isn’t virtual. That forces a call site null check.”

Except inside [Wayback/Archive] Extension Methods, referring to this will never return null.

Yes you can work around this using things like reflection, but the C# compiler will emit .callvirt for any method call which does an implicit null check by the caller which means you never have to check that in callees.

The above tweet quoted the first message of the [Wayback/Archive] Thread by @MStrehovsky on Thread Reader App on working around this .callvirt protection:

Read the rest of this entry »

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

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 »

TFrame – What is the accepted way to use frames in Delphi? – Stack Overflow

Posted by jpluimers on 2025/06/10

From a while ago: [Wayback/Archive] TFrame – What is the accepted way to use frames in Delphi? – Stack Overflow.

Besides me referring to my blog post Delphi – Frames as visual Components – don’t forget your Sprig!, these were important comments and answers with notes by myself:

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software 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 »