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 ‘Scripting’ Category

JavaScript unit testing in the browser without Node.js: Getting Started | QUnit

Posted by jpluimers on 2026/01/29

A cool way to unit-test JavaScript code on the browser side is [Wayback/Archive] Getting Started | QUnit:

To get started with QUnit in the browser, create a simple HTML file called test.html and include the following markup:

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test Suite</title>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.19.4.css">
<body>
  <div id="qunit"></div>
  <div id="qunit-fixture"></div>
  <script src="https://code.jquery.com/qunit/qunit-2.19.4.js"></script>
</body>

That’s all the markup you need to start writing tests. Note that this loads the library from the jQuery CDN.

I was so glad to find QUnit via the below links as I unconsciously wanted such a thing for a very very long time.

You can either run it locally or remotely or from the jQuery CDN as both it

  • is a Node.js module so the source files are all available on the jQuery CDN
  • it does not require the Node.js to load so it can run from any location you want (that CDN, locally or another on-line location)

Read the rest of this entry »

Posted in Chrome, Development, Edge, Firefox, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »

Some links for JavaScript tokenizers and syntax highlighters

Posted by jpluimers on 2026/01/28

In yesterday’s post Bookmarklet for Archive.is to navigate to the canonical link with the “redirected from” instead of “saved from” I mentioned js-tokenizer for syntax highlighting. When writing that, I didn’t have time to dig deeper, but saved the links for later investigation.

Since I won’t have time to finish writing a complete article on this anytime soon, I decided to just publish the list:

Read the rest of this entry »

Posted in Development, JavaScript/ECMAScript, Scripting, Software Development | Leave a Comment »

vmstan/gravity-sync: 💫 The easy way to synchronize the DNS configuration of two Pi-hole 5.x instances.

Posted by jpluimers on 2026/01/28

Interesting: [Wayback/Archive] vmstan/gravity-sync: 💫 The easy way to synchronize the DNS configuration of two Pi-hole 5.x instances.

Reasoning: [Wayback/Archive] Frequent Questions: Why two Pi-hole? · vmstan/gravity-sync Wiki

Via:

–jeroen

Posted in *nix, *nix-tools, bash, bash, Development, DNS, Hardware Development, Internet, Power User, Raspberry Pi, Scripting, Software Development | Leave a Comment »

Bookmarklet for Archive.is to navigate to the canonical link with the “redirected from” instead of “saved from”

Posted by jpluimers on 2026/01/27

This is a follow-up on Bookmarklet for Archive.is to navigate to the canonical link which can be accessed from multiple URLs, some through redirection:

You can see the difference in these archived links (the navivate was a typo that I only spotted after the original blog post got published):

I wanted a Bookmarklet to find the last link; the one in the referenced blog post didn’t.

Read the rest of this entry »

Posted in Bookmarklet, Debugging, Development, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »

WireGuard on OpenWRT based GL.iNET: some notes on the `wireguard_watchdog` script

Posted by jpluimers on 2026/01/15

On OpenWRT GL.iNET based devices, the WireGuard client does not restart upon reboot, even if it was started before rebooting.

Hopefully the /usr/bin/wireguard_watchdog script will help with this as others indicates it should.

My first try was no succes, but since it is supposed to run from cron it does no output. The script on GL-SFT1200 firmware version 3.215, script /usr/bin/wireguard_watchdog is different from the one in the OpenWRT repository, so it needs some investigation.

Some links for checking this out:

Read the rest of this entry »

Posted in *nix, *nix-tools, ash/dash, ash/dash development, Development, GL-AR300M, GL.iNet, GL.iNET GL-SFT1200, OpenWRT, Power User, Scripting, Software Development | Leave a Comment »

Is Fortran better than Python for teaching the basics of numerical linear algebra? – Dr. Jean-Christophe Loiseau

Posted by jpluimers on 2026/01/13

The summary of [Wayback/Archive] Is Fortran better than Python for teaching the basics of numerical linear algebra? – Dr. Jean-Christophe Loiseau is:

  1. 1-based indexing prevents off-by-1 errors
  2. structure is key, especially these foundations:
    • clear begin/end constructs instead of visual clues
    • strong typing
  3. verbose programming languages are easier to learn than non-verbose ones

Modern Fortran helps a lot here and shows that after the initial 13 year gaps between FORTRAN 77 and Fortran 90, and between Fortran 90 and Fortran 2003 (the ANSI Standard Fortran and Fortran 95 in between versions were just minor updates), Modern Fortran has come a very long way and now as a thriving community and an extensive list of Fortran software and tools.

Other typed languages and tool sets like C# and Delphi come to mind here as well though you need libraries with 1-based data structures to solve the first point.

Read the rest of this entry »

Posted in Development, Fortran, Learning/Teaching, LifeHacker, Power User, Python, Scripting, Software Development | Leave a Comment »

GitHub – spotDL/spotify-downloader: Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found).

Posted by jpluimers on 2026/01/01

Need to check the matching algorithm of [Wayback/Archive] GitHub – spotDL/spotify-downloader: Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found).

I wanted to download [Wayback/Archive] The Incredits – song and lyrics by Michael Giacchino | Spotify for music practice, but then found Michael listed it on his YouTube channel twice:

A bit later I also found [Wayback/Archive] The Incredits – Transcription (with original score) – YouTube with [Wayback/Archive] The Incredits Sheet Music for Piano, Trombone, Tuba, Flute piccolo & more instruments (Symphony Orchestra) | MuseScore.com

Via [Wayback/Archive] Youtube-dl supports Spotify. How to use it? : youtubedl.

--jeroen

Posted in Development, ffmpeg, Media, Media Streaming, Power User, Python, Scripting, SocialMedia, Software Development, Spotify, YouTube, youtube-dl | Leave a Comment »

It died, but longer ladders will be there: 12ft – Wikipedia

Posted by jpluimers on 2025/12/31

From 12ft – Wikipedia:

On July 17, 2025, the News Media Alliance reported that it had taken down the website.

It’s impossible to enjoy the content of online media by paying (for instance because payment systems are not compatible, but also because those media often have region blocks), so this is to longer ladders (and understanding how ladders work):

Read the rest of this entry »

Posted in archive.is / archive.today, Cloud, Containers, Development, Docker, HTML, HTML5, Infrastructure, Internet, InternetArchive, JavaScript/ECMAScript, LifeHacker, Power User, Python, Scripting, Software Development, WayBack machine, Web Development | 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 »

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 »