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

  • Email Subscription

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 717 other subscribers

Archive for the ‘Code Quality’ Category

With the rise of CVEs, we cannot conclude that people always have been programming in a sloppy way

Posted by jpluimers on 2026/10/27

During a private conversation, someone mentioned that there is a storm of CVEs and someone else asked if this was because people have been sloppy in programming for a very long time.

Luckily [Wayback/Archive] CVE: Common Vulnerabilities and Exposures has a table of Published CVE Records with totals which I have copied:

Read the rest of this entry »

Posted in Agile, Code Quality, Database Development, Development, JavaScript/ECMAScript, jq, JSON, PostgreSQL, Power User, Scripting, Security, Software Development | Leave a Comment »

pixelfed: “Pixelfed bans AI generated contributions…” – Mastodon

Posted by jpluimers on 2026/09/30

Recently someone commited a large set of LLM (Large Language Model often wrongly called AI or Artificial Intelligence as at best they are an AI model, or better phrased machine learning model, not even a machine learning reality¹) assistance files to the pixelfed repository. This caused quite some turmoil resulting in pixelfed banning AI generated contributions.

This is for good reason: too many LLM generated commits lack quality control. This results in shoving the burden of the checks from the contributor to the volunteers of the project teams. Those volunteers are already overwhelmed anyway (there is always an applicable XKCD, in this case [Wayback/Archive] 2347: Dependency – explain xkcd).

The offending commit was [Wayback/Archive] Add AI docs · pixelfed/pixelfed@65dff00 · GitHub. The contributor was lazy enough to wrongly name this commit, as these weren’t docs in the sense of documentation, but a set of Claude Skills and other LLM slop².

That behaviour is exemplary for almost all LLM contributions: most humans and systems generating them take them for correct and just commit their content.

I am still not convinced that the main contributor switching within a few days from “oh, let’s add LLM stuff” into “nope, we are not going to allow LLM” vows for a strong soul.

The Pixelfed statement is via [Wayback/Archive] pixelfed: “Pixelfed bans AI generated contributions…” – Mastodon

Read the rest of this entry »

Posted in Agile, AI and ML; Artificial Intelligence & Machine Learning, Claude, Code Quality, Development, Generative AI, JavaScript/ECMAScript, LLM, PHP, Quality Assurance, Scripting, Software Development, Vue.js | Leave a Comment »

Tom Schuster: “To my security peeps: Was the introduction of widespread fuzzing similar to AI-based bug hunting now, or is this really a different beast?” – Hachyderm.io

Posted by jpluimers on 2026/09/29

Interesting question with (too few but) nice comments: [Wayback/Archive] Tom Schuster: “To my security peeps: Was the …” – Hachyderm.io

  1. To my security peeps: Was the introduction of widespread fuzzing similar to AI-based bug hunting now, or is this really a different beast?
  2. @evilpie IMHO it’s very similar, definitely larger scale though
  3. @buherator @evilpie agree that it is similar, it feels like the larger scale is mainly because the security industry grew and many people experiment with LLMs. Prompting seems more intuitive than writing a harness for AFL, so it’s probably more how humans approach than the tool. It’s just another tool.
  4. Signal to noise ratio is worse with LLMs but but but but but
  5. @floyd @evilpie I tried to avoid elaborating on “scale” because it refers to many things in this case, e.g.:- How easily you can adapt to a new target (vs. AFL)
    – How much power is available for the task (GPU acceleration)
    – Number of bug classes you can (trivially) aim for (vs. fuzzing for logic bugs)
    – etc.

--jeroen

Posted in Agile, Code Quality, Development, Quality Assurance, Software Development | Leave a Comment »

microsoft/pyright: Static Type Checker for Python

Posted by jpluimers on 2026/07/07

I will likely need this one day: [Wayback/Archive] microsoft/pyright: Static Type Checker for Python

Via:

  1. [Wayback/Archive] Julia Evans on Twitter: “I wish there was something like pyright for Javascript — I love how pyright will tell me about type errors even if I don’t add *any* type annotations in my code at all github.com/microsoft/pyright (I assume you can’t make pyright-for-JS because Typescript is a different language)”
  2. [Wayback/Archive] Julia Evans on Twitter: “Also I think the reason pyright works so well even if I don’t add type annotations is that a lot of the Python library code I’m depending on actually does have type annotations, so it can use those”

--jeroen

Posted in Agile, Code Quality, Development, Python, Scripting, Software Development | Leave a Comment »

KotlinConf’23 video streams (including the keynote by Kevlin Henney which is generic to any programming language or concept)

Posted by jpluimers on 2026/05/26

Some of the video URLs of #kotlinconf23 most via [Wayback/Archive] KotlinConf’23 – YouTube:

Read the rest of this entry »

Posted in ChatGPT, Code Quality, Conference Topics, Conferences, Development, Event, Java Platform, Kotlin, Pingback, Software Development, Stackoverflow, Technical Debt, Testing | Leave a Comment »

Having some Technical Debt is OK as long as you keep paying the debt: Refactoring Is Not Just Clickbait – Kevlin Henney – NDC Oslo 2022 – YouTube

Posted by jpluimers on 2025/10/28

[Wayback/Archive] Refactoring Is Not Just Clickbait – Kevlin Henney – NDC Oslo 2022 – YouTube

Via:

–jeroen

Read the rest of this entry »

Posted in Agile, Code Quality, Conference Topics, Conferences, Development, Event, Refactoring, Software Development, Technical Debt | Leave a Comment »

Critical Program Reading (1975) – 16mm Film – YouTube

Posted by jpluimers on 2025/08/28

Code quality courses have been an ancient art: this video turned 50 this year (:

[Wayback/Archive] Critical Program Reading (1975) – 16mm Film – YouTube

Via: [Wayback/Archive] Mac 💉💉🦠 on Twitter: “Critical Program Reading, a 16mm film from 1975 dug up by @TechConnectify about Structured Programming techniques … “Code unto others as you would have others code unto you.” (cc @KevlinHenney)” / Twitter

Read the rest of this entry »

Posted in Agile, Code Quality, Development, Software Development | Leave a Comment »

Comment Only What the Code Cannot Say | by Kevlin Henney | Medium

Posted by jpluimers on 2025/08/13

Often after having taught a topic for decades, somebody rephrases it in a beautiful concise way:

[Wayback Comment Only What the Code Cannot Say | by Kevlin Henney | Medium

Kevlin has the same two quotes I have included teaching software quality for a long time:

In The Elements of Programming Style, Kernighan and Plauger note that
A comment is of zero (or negative) value if it is wrong.
Instead of writing apologies and apologia, follow Kernighan and Plauger’s advice from the 1970s:
Don’t comment bad code — rewrite it.

Read the rest of this entry »

Posted in Agile, Code Quality, Code Review, Development, Software Development | Leave a Comment »

Naming things isn’t hard: if it contains a number, include the unit in the name (your timeout might not be in nanoseconds)

Posted by jpluimers on 2025/05/27

This case, it was C# accessing a SQL back-end, but the responses to the Tweet how so many more examples not even related to software development.

Remember that plane crashing because they overloaded while they thought the fuel load numbers were in Imperial pounds where in fact they were in metric kilograms?

That’s why naming things that contain numbers should contain the unit in their name!

Related blog post: Watch “Felienne Hermans: How patterns in variable names can make code easier to read” on YouTube

Tweet: [Wayback/Archive] Nick Craver on Twitter: “Troubleshooting a hanging test suite and godDAMMIT. “In seconds”. Integer timeouts should be a felony offense punishable by an indeterminate amount of seconds/milliseconds/hours/fortnights/whatever the judge chooses.”

var csb = new SqlConnectionStringBuilder(TestConfig.Current. SQLServerConnectionString){ ConnectTimeout = 2000 }; int SqlConnectionStringBuilder.ConnectTimeout { get; set; } Gets or sets the length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error. Returns: The value of the SqlConnectionStringBuilder, ConnectTimeout property, or 15 seconds if no value has been supplied.

var csb = new SqlConnectionStringBuilder(TestConfig.Current. SQLServerConnectionString) { ConnectTimeout = 2000 }; int SqlConnectionStringBuilder.ConnectTimeout { get; set; } Gets or sets the length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error. Returns: The value of the SqlConnectionStringBuilder, ConnectTimeout property, or 15 seconds if no value has been supplied.

Read the rest of this entry »

Posted in .NET, Agile, C#, Code Quality, Conference Topics, Conferences, Database Development, Development, Event, Software Development, SQL, SQL Server, Systems Architecture | Leave a Comment »

Watch “Felienne Hermans: How patterns in variable names can make code easier to read” on YouTube

Posted by jpluimers on 2024/05/21

A while ago, various sources pointed me to the great video below by [Wayback/Archive] Felienne Hermans: How patterns in variable names can make code easier to read – YouTube.

I responded to the first Tweet with a series of tweets describing my two pet-peeves that I see going wrong when teaching new programmers how to name things (the examples are in Delphi, but I have seen similar shortcuts being taken in C#, VB.NET, and JavaScript being taught in both courses and conference sessions).

The two pet-peeves are:

  • avoid abbreviations as those are context sensitive; given software development already mixes technical context (it’s software development!) and domain/semantic context it makes it extra hard to decipher abbreviations
  • if you want/need to mix technology and semantics in names (most often you do), start with the most meaningful semantics and end with the least meaningful technology
    • if you don’t need technology in your names, at least put the most meaningful semantics and end with the least meaningful technology

Both very well amend what Felienne – a university professor – states in her research backed video:

“Their results show that ‘linguistic code smells’ actually increase cognitive loads,” she said. “Your brain has to work harder to process code that has these type of code smells. So that’s not what we want.”

I saved the [Wayback/Archive] tweets in the [Wayback/Archive] ThreadReader as this text (slightly edited for formatting):

Read the rest of this entry »

Posted in Agile, Code Quality, Conference Topics, Conferences, Development, Event, Software Development, Systems Architecture | Leave a Comment »