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

Archive for the ‘Software Development’ Category

Structure and Interpretation of Test Cases • Kevlin Henney • GOTO 2022 – YouTube (hello Leap Years!)

Posted by jpluimers on 2025/12/30

Any session by Kevlin is great, so this is definitely recommended watching: [Wayback/Archive] Structure and Interpretation of Test Cases • Kevlin Henney • GOTO 2022 – YouTube

Via [Wayback/Archive] Ifeora Okechukwu on Twitter: “On the structure and interpretation of test cases: by @KevlinHenney Awesome talk!!! “.

A few takeaways:

  • Kevlin uses the same Leap Year case as I have taught since the mid 1990’s: I like the way we both approach software development, though I can still learn a lot from Kevlin.
  • Non-programmers understand more than you might expect, just like you can get much more from a foreign news paper than you would think at first thought
  • You should know how to draw a Venn diagram with 4 sets allowing *all* combinations of those (search for “Venn’s four-set diagram using ellipses” in the link on the left)
  • Kevlin shows these 4 sets:
    • Common cases
    • Simple cases
    • Boundary cases
    • Edge cases

    The first two and last two sound similar. They aren’t.

  • Wrinkles and various levels of code coverage: don’t fool yourself as that is easy to do
  • The way of thinking is “thorough” (note from self: AI is not thorough, it is statistics)
  • Calendars are difficult (and depending a lot on the period and region their usage are valid for) – I already knew that, but it was good to be reminded off; see presentations by Jon Skeet for more information on it, see the blog tag Jon Skeet, or for instance these links:

Read the rest of this entry »

Posted in Development, Software Development, Testing | Leave a Comment »

rcmcdonald91/pfSense-pkg-WireGuard: This is a port of the original WireGuard UI bits as implemented by Netgate in pfSense 2.5.0 to a package suitable for rapid iteration and more frequent updating on future releases of pfSense.

Posted by jpluimers on 2025/12/25

This is actually the WireGuard package you can install on pfSense CE 2.5.2 and higher: [Wayback/Archive] rcmcdonald91/pfSense-pkg-WireGuard: This is a port of the original WireGuard UI bits as implemented by Netgate in pfSense 2.5.0 to a package suitable for rapid iteration and more frequent updating on future releases of pfSense.

Note that the source code mentions a lot of web-technologies but that is because the majority of the code is the pfSense plugin. Underneath it pulls the actual build from [Wayback/Archive] git.zx2c4.com/wireguard-freebsd/snapshot which is almost exclusively C code.

Like WireGuardNT on Windows, it uses a high performance kernel mode driver.

Some more links on it:

Read the rest of this entry »

Posted in Conference Topics, Conferences, Development, DVCS - Distributed Version Control, Event, git, GitHub, Hardware, Network-and-equipment, pfSense, Power User, routers, Software Development, Source Code Management, Tailscale | Tagged: , | Leave a Comment »

25 years ago, around this period, the InterBase 6 / Firebird 1 prerelease gaping security hole was detected: a user politically with password correct would gain database access

Posted by jpluimers on 2025/12/24

Before Firebird version 1.0 got released, a gaping security hole that InterBase introduced in 1994 before InterBase 6.0 (mostly written in C) got open sourced in 2000 was detected by the team that frantically tried the Firebird fork to first get building on various platforms, then released.

It had a maximum CVSS score of 10.0 because it could access the security database in read/write mode, thereby allowing adding users with SYSDBA privileges.

The detection is now about 25 years ago; on 20260109 the publication (by IBPhoenix) of the bug will be 25 years ago too.

So below are some links, including the original InterBase 6 source which was hard to find as the attachments of the original release links had not been archived in the Wayback Machine.

But first some of the code parts, which also shows the source file I did find back:

Read the rest of this entry »

Posted in C, Database Development, Development, Firebird, History, InterBase, Software Development | Tagged: | Leave a Comment »

See a List of All Wi-Fi Networks a Mac Has Previously Connected To

Posted by jpluimers on 2025/12/24

[Wayback/Archive] See a List of All Wi-Fi Networks a Mac Has Previously Connected To

n modern versions of Mac OS, like macOS Mojave, Catalina, Sierra, OS X El Capitan, and Yosemite, you can shorten the syntax considerably as so:
defaults read /Library/Preferences/SystemConfiguration/com.apple.airport.preferences |grep SSIDString
In prior versions of Mac OS X, you can opt for the same as the above command, or use the lengthier string below with heavy regex:

Read the rest of this entry »

Posted in *nix, *nix-tools, Apple, bash, bash, Development, Mac, Mac OS X / OS X / MacOS, MacBook, Power User, Scripting, Software Development | Leave a Comment »

“Mozart or Bach?” – YouTube: The very first polyphonic music on a computer – Peter Samson programmed it on a PDP-1

Posted by jpluimers on 2025/12/23

Such a cool piece of computer history: [Wayback/Archive] “Mozart or Bach?” – YouTube

Full article: [Wayback/Archive] Programming in Harmony – CHM

--jeroen

Read the rest of this entry »

Posted in Development, Hardware Interfacing, History, Software Development | Leave a Comment »

Adobe Photoshop Source Code – CHM

Posted by jpluimers on 2025/12/19

With the permission of Adobe Systems Inc., the Computer History Museum is pleased to make available, for non-commercial use, the source code to the 1990 version 1.0.1 of Photoshop. All the code is here with the exception of the MacApp applications library that was licensed from Apple. There are 179 files in the zipped folder, comprising about 128,000 lines of mostly uncommented but well-structured code. By line count, about 75% of the code is in Pascal, about 15% is in 68000 assembler language, and the rest is data of various sorts.

https://computerhistory.org/blog/adobe-photoshop-source-code/

Posted in 68k, Adobe, Apple, Apple Pascal, Classic Macintosh, Development, History, Macintosh SE/30, Object Pascal, Pascal, Power User, Uncategorized | Leave a Comment »

If you develop web-sites, be sure their basics work without JavaScript, as JavaScript is a security risk

Posted by jpluimers on 2025/12/18

I have had JavaScript disabled by default for years now, which means that:

  • if your site requires JavaScript, I will opt for an alternative
  • I will block anything ad related, even if it means I cannot use your site

The reasons are simple:

  1. JavaScript has become a big security threat over time. Be it tracking (hello fingerprinting!), data leakage, direct attacks, supply chain attacks, sloppy code or other risks, JavaScript is not vulnerable just by itself, but especially the eco systems (hello npm – 2 attacks in September 2025 alone – and advertising networks) using it. Just a few references:
    1. [Wayback/Archive] The perils of JavaScript: How we’ve broken the internet’s security
    2. [Wayback/Archive] Most Common Security Vulnerabilities Using JavaScript – SecureCoding
    3. [Wayback/Archive] Supply Chain Security Alert: Popular Nx Build System Package Compromised with Data-Stealing Malware – StepSecurity
    4. [Wayback/Archive] Wormable Malware Causing Supply Chain Compromise of npm Code Packages – Arctic Wolf
    5. [Wayback/Archive] FingerprintJS | Identify Every Web Visitor & Mobile Device
  2. JavaScript has become a huge resource hog. Disabling JavaScript by default increased the snappiness and battery life of my laptops and smartphones significantly. In addition, it makes it way easier to read region-blocked content. Double win!

The below thread by [Wayback/Archive] Dr. Christopher Kunz (@christopherkunz@chaos.social) – chaos.social sparked me to finally write why and add some relevant links.

Thread:

Read the rest of this entry »

Posted in Development, Infosec (Information Security), JavaScript/ECMAScript, Power User, Scripting, Security, Software Development, Web Development | Leave a Comment »

Maarten van Smeden “This is why programming is an acquired skill” / Twitter

Posted by jpluimers on 2025/12/18

Via: [Wayback/Archive] Maarten van Smeden on Twitter: “This is why programming is an acquired skill ” / Twitter

Read the rest of this entry »

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

Visual Studio Code has had a PlantUML extension for a while now

Posted by jpluimers on 2025/12/17

During my cancer treatments I missed a lot of fun things, including that, a PlantUML extension for vscode (Visual Studio Code) matured into a well-maintained one.

I bumped into it when revisiting git – How to integrate UML diagrams into GitLab or GitHub – Stack Overflow (GitLab was first to natively support PlantUML; hopefully GitHub follows one day) and found the profile of [Wayback/Archive] Fuhrmanator which mentioned the vscode PlantUML extension.

Some links below, as I think it is a cool one!.

Read the rest of this entry »

Posted in Development, Diagram, PlantUML, Software Development, UML | Leave a Comment »

version control – How can I see the changes in a Git commit? – Stack Overflow

Posted by jpluimers on 2025/12/16

[Wayback/Archive] version control – How can I see the changes in a Git commit? – Stack Overflow (thanks [Wayback/Archive] laktak, [Wayback/Archive] Nevik Rehnel, [Wayback/Archive] Juuso Ohtonen and [Wayback/Archive] User c z – Stack Overflow)

This looks like a valid question, but in reality it is not.

The thing is: in git, think of a commit not as a diff but as a snapshot*.

A diff is the difference between two commits.

Since most commits have just a single parent, so that’s why many people call a commit a diff. But that’s not true, especially not for merge commits that have at least two parents.

Anyway, the question, answer and comment from the link above already give some insight (note COMMIT everywhere below has to be replaced with the commit hash):

Read the rest of this entry »

Posted in Conference Topics, Conferences, Development, DVCS - Distributed Version Control, Event, git, Software Development, Source Code Management | Leave a Comment »