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

Archive for the ‘.NET’ Category

Not sure I like this without tail recursion

Posted by jpluimers on 2024/05/07

A while ago Andy Gocke posted this bit of C# 11 code:

[Wayback/Archive] Andy Gocke on Twitter: “Can’t believe none of that “C# is turning into F#” people have noted that this is legal code in C# 11″

Read the rest of this entry »

Posted in .NET, C#, C# 10, C# 11, Development, F#, Software Development | Leave a Comment »

Please do not make your C# code an obfuscation contest

Posted by jpluimers on 2024/04/23

You. This is valid C# code. Guess what it does [Wayback/Archive]:

for (
  var (f,l) = (1, 10);
  f <= 10;
  Console.WriteLine($"{f} + {l} = {f + l}"),
  f++,
  l--
);

Via [Wayback/Archive] Khalid 🐕‍🦺🐕🐩 on Twitter: “I’m trying some programming in #csharp today. Am I doing this right? #dotnet”

–jeroen

Read the rest of this entry »

Posted in .NET, C#, C# 10, C# 11, Development, Software Development | Leave a Comment »

Duotrigordle – find 32 simultaneous Wordle solutions in 37 steps

Posted by jpluimers on 2024/04/09

I wish my language skills were better: [Wayback/Archive] Duotrigordle

Guess all 32 Duotrigordle words in 37 tries!


Based on

Source on GitHub: [Wayback/Archive] thesilican/duotrigordle: Play 32 wordles simultaneously (source in TypeScript and CSS)

–jeroen

Posted in .NET CF, Development, JavaScript/ECMAScript, Scripting, TypeScript, Web Development | Leave a Comment »

When Microsoft download URLs time out: check if it other IP addresses for the same host do work fine (it might be a regional Microsoft CDN issue)

Posted by jpluimers on 2024/03/28

A while back, early in the Wednesday morning after Patch Tuesday I performed regular updates of all the systems noticing some updates failed because timeouts on the Microsoft download servers.

Note I perform the manual steps on Wednesday as Patch Tuesday as it starts at 10:00 AM PST which is in the evening in Amsterdam. The automated steps are automated and kick in when Microsoft tells the Windows machines to update themselves.

See [Wayback/Archive] Security Update Guide FAQs

Microsoft schedules the release of security updates on “Patch Tuesday,” the second Tuesday of each month at 10:00 AM PST.

Depending on time zone(s) in which the organization operates, IT pros should plan their deployment schedules accordingly. Please note that there are some products that do not follow the Patch Tuesday schedule.

I posted a gist and a Tweet, but didn’t immediately thought of a good resolution so I postponed that until Thursday and found it:

Read the rest of this entry »

Posted in C, C++, Development, Power User, Software Development, Visual Studio and tools, Visual Studio C++, vscode Visual Studio Code, Windows, Windows Development | Leave a Comment »

For vscode: git-rename – Visual Studio Marketplace

Posted by jpluimers on 2024/03/26

In vscode, I have installed [Wayback/Archive] git-rename – Visual Studio Marketplace (with source code at [Wayback/Archive] adam8810/vscode-git-rename: Move or rename a file, a directory, or a symlink using git-mv).

Many people assume that git does recognise rename (or mv) operations by itself. Often it does, but it fails, and when it fails it usually is in a complex situation where it is easy to overlook it did not recognise the rename.

Failing complex situations I have encountered in the past (combined they get worse):

  • rename across several directories
  • first edit, then rename
  • first rename, then edit

So it is better to proactively perform an IDE-assisted git mv operation that informs git of the rename.

Many IDE environments support a built-in rename that keeps git mv in the loop, but Visual Studio Code does not, hence the need for this extension.

It means I agree with the question, disagree with the answer, and agree with the comment in [Wayback/Archive] VS Code ‘git mv’ to preserve file history? – Stack Overflow:

Read the rest of this entry »

Posted in .NET, Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management, vscode Visual Studio Code | Leave a Comment »

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 »

C# List Patterns: csharplang/list-patterns.md at main · dotnet/csharplang

Posted by jpluimers on 2024/02/07

For my URL list:

Read the rest of this entry »

Posted in .NET, C#, C# 11, Development, Software Development | Leave a Comment »

awaescher/Fusion: 🧰 A modern alternative to the Microsoft Assembly Binding Log Viewer (FUSLOGVW.exe)

Posted by jpluimers on 2023/12/18

[Wayback/Archive] awaescher/Fusion: 🧰 A modern alternative to the Microsoft Assembly Binding Log Viewer (FUSLOGVW.exe)

So, do you know what “Enable immersive logging” means? Or why you should separate log categories from “Default” and “Native Images”? Did you ever forget to disable the log again and wondered why every .NET application was that slow and your disk ran out of space?

Forget all the setup upfront – just hit “Record” to capture your assembly logs. If you are done, click “Stop” again. That’s it.

Via [Wayback/Archive] Meik Tranel on Twitter: “@Nick_Craver Take this: github.com/awaescher/Fusion Nice UI and never forget to disable that env var ever again.”.

–jeroen

Posted in .NET, C#, Development, F#, Software Development, VB.NET | 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 »

With Unicode symbols and the ever rising number of operators, C# sometimes seems steadily to evolve into APL

Posted by jpluimers on 2023/11/27

Finally someone phrased the feeling I had for almost a decade about the ever evolving C#: with the increasing number of operators and allowing Unicode symbols, it is slowly turning into something like APL: harder and harder to read for the majority of C# developers.

[Wayback/Archive] Matthew Crews on Twitter: “@buhakmeh Let’s be honest, we should all just be working in APL”

Via [Wayback/Archive] Khalid Needs A New Car on Twitter: “C# needs more operators.”

Related:

–jeroen

Posted in .NET, APL, C#, Development, History, Software Development | Leave a Comment »