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

fail2ban is yet another “A project some … person … has been thanklessly maintaining since …”; ensure it does not become yet another XZ Utils debacle

Posted by jpluimers on 2024/07/17

https://i0.wp.com/web.archive.org/web/20240711133830if_/https%3A//www.explainxkcd.com/wiki/images/d/d7/dependency.pngEarlier this week there were only three sponsors for [Wayback/Archive] sebres (Sergey G. Brester) · GitHub.

You might think “Why is this important?”.

Sergey is the single maintainer of fail2ban, the open source project that protects countless (likely a majority) of  public facing servers facing on the Internet.

Please don’t let fail2ban become another XZ Utils and support Sergey: we don’t want the project to become unmaintained, or worse: being backdoored like XZ was.

[Wayback/Archive] Sponsor @sebres on GitHub Sponsors · GitHub

The fail2ban repository is at [Wayback/Archive] GitHub – fail2ban/fail2ban: Daemon to ban hosts that cause multiple authentication errors

Via [Wayback/Archive] dee 🏳️‍⚧️: “fail2ban has one core maintain…” – Grafana Social

fail2ban has one core maintainer github.com/fail2ban/fail2ban and he has only 3 Github sponsors github.com/sebres

WTF

I can’t even comprehend how many servers are protected by fail2ban, how many compromises are avoided, how many people who run hobby things all the way up to major sites that get to sleep soundly every night… because of this single project.

Related: XZ 5.6.x are backdoored and present in many systems: downgrade to 5.4.x or earlier now; consider libarchive compromised until proven otherwise

--jeroen

Read the rest of this entry »

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

On my list of tools to try: zhot and tweetzhot (both by Rop Gongrijp and based on puppeteer) to create browser screenshots from the terminal

Posted by jpluimers on 2024/07/17

The feature reminds me on how archive.today saves content.

Both the zhot and tweetzhot repositories are on my list of tools to try. They might make writing blog posts easier.

They are both based on [Wayback/Archive] puppeteer/puppeteer: Headless Chrome Node.js API

Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non-headless) Chrome or Chromium.

It demonstrates headless browser usage and can for instance:

  • Generate screenshots and PDFs of pages.
  • Crawl a SPA (Single-Page Application) and generate pre-rendered content (i.e. “SSR” (Server-Side Rendering)).
  • Automate form submission, UI testing, keyboard input, etc.
  • Create an up-to-date, automated testing environment. Run your tests directly in the latest version of Chrome using the latest JavaScript and browser features.
  • Capture a timeline trace of your site to help diagnose performance issues.
  • Test Chrome Extensions.

Note any headless browser will have some trouble rendering single-page applications.

Repositories:

Read the rest of this entry »

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

DigiD backend code: GitHub – MinBZK/woo-besluit-broncode-digid

Posted by jpluimers on 2024/07/16

From a few months back: [Wayback/Archive] GitHub – MinBZK/woo-besluit-broncode-digid

Via Bugblauw [Wayback/Archive] Lord Mendel Mobach 💉💉💉💉🦠💉 on X: “DigiD Backend is openbaar … met dank aan @Logius_minbzk @MinBZK @DigiDwebcare” / X

Comments (on why parts of it is obfuscated):

  1. [Wayback/Archive] Arian van Putten on X: “@bugblauw @Logius_minbzk @MinBZK @DigiDwebcare sorry hoor maar dit is echt een aanfluiting. Ze hebben een soort Regex Search en Replace gedaan en alle URLs verandert met SSSSSSSSSS. Waaronder ook alle XML namespaces dus helemaal niks hieraan werkt. Waarom is dit zo extreem weggelakt allemaal? …”

    [Wayback/Archive] Code search results · GitHub

  2. [Wayback/Archive] Lord Mendel Mobach 💉💉💉💉🦠💉 on X: “@ProgrammerDude @Logius_minbzk @MinBZK @DigiDwebcare Technisch werkt het wel als je maar consistent bent. Hooguit krijg je een warning dat het niet absolute is. Even praktisch: hierin zaten bijvoorbeeld bedrijfsnamen, en men heeft besloten dat per string aan te pakken. Over keuzes die in 2006 of eerder zijn gemaakt …… tjsae..”

--jeroen

Posted in Development, Java, Java Platform, Ruby, Software Development | Leave a Comment »

s3-ocr: Extract text from PDF files stored in an S3 bucket

Posted by jpluimers on 2024/07/16

For my link archive: [Wayback/Archive] s3-ocr: Extract text from PDF files stored in an S3 bucket

One reason is archival of books. Even (or maybe especially) in IT, books already have historic meaning especially in narrower fields where they often are not available in the Internet Archive or have been scanned by Google Books.

Via/related:

Read the rest of this entry »

Posted in Amazon S3, AWS Amazon Web Services, Cloud, Cloud Apps, Development, Infrastructure, Internet, Power User, Python, Scripting, Software Development | Leave a Comment »

Important to defeat Twitter wrongly auto-guessing of URLs (and assuming anything with @ or # is a mention or hashtag) is Nelson’s Weblog: tech / zero-width-space

Posted by jpluimers on 2024/07/11

Quoting in full from [Wayback/Archive] Nelson’s Weblog: tech / zero-width-space to demonstrate a zero-width-space problem with WordPress too.

Read the rest of this entry »

Posted in Bookmarklet, Classic editor, Development, Gutenberg editor, JavaScript/ECMAScript, Power User, Scripting, SocialMedia, Software Development, Twitter, Web Browsers, Web Development, WordPress | Leave a Comment »

Should be easy to put in a Bookmarklet: Archive.is blog — What is the long version of the url please. …

Posted by jpluimers on 2024/07/10

[Wayback] Archive.is blog — What is the long version of the url please. …

Click on “share” button to see different forms of linking to a page.

For example https://archive.vn/Aoans/share

So there are two tricks:

Read the rest of this entry »

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

Installing WhatsApp Desktop from the Console

Posted by jpluimers on 2024/07/09

Related to WhatsApp Desktop for Mac or PC cannot only chat but also voice and video call: installing WhatsApp from the command-line.

That was easy to do via winget:

c:\temp>winget install -e --id WhatsApp.WhatsApp
Found WhatsApp [WhatsApp.WhatsApp] Version 2.2222.12
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://web.whatsapp.com/desktop/windows/release/x64/WhatsAppSetup.exe
  ██████████████████████████████   145 MB /  145 MB
Successfully verified installer hash
Starting package install...
Successfully installed

This was a while ago, so the version number by now is dated, but it is about the command winget install -e --id WhatsApp.WhatsApp

Via:

–jeroen

Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows, Windows 10, Windows 11, winget | Leave a Comment »

Interesting thread on the usefulness of running a syslog server and being able to write to it

Posted by jpluimers on 2024/07/04

For my link archive:

  1. [Wayback/Archive] jilles.com 🔜 MCH2022 🏳️‍🌈 on Twitter: “My Ubiquity setup stopped working (again). This happens way to often in my opinion. I have setup a monitoring environment to debug the issues and consider it not reliable enough for the amount of money I spend on it.”

  2. [Wayback/Archive] Rick on Twitter: “@jilles_com Waar heb je problemen mee? En ik tijdelijk een syslog server draaien. Dan je kun je gemakkelijker de logs doorspitten (kiwi heeft een simpele gratis versie)”
  3. [Wayback/Archive] jilles.com on Twitter: “@RickvanSoest Ik draai een grafana setup met syslog, snmp ingest en een losse traceroute om uit te sluiten of het aan de provider of de hardware ligt.”
  4. [Wayback/Archive] jilles.com on Twitter: “@RickvanSoest Software upgrades die falen. In dit geval een PoE switch die op z’n gat lag. In dit geval iets dat met een reboot gefixt is. Maar in geval van de upgrade was het een compleet nieuwe configuratie.”

In todays cross-platform world, it pays if your tooling can send logging to syslog.

Though originating from the CP/M and SunOS background, I have done most of my professional development work in Windows back-ends and front-ends, so here are some links relevant to that:

--jeroen

Posted in .NET, C#, Delphi, Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management, Subversion/SVN | 2 Comments »

In potentially multi-threaded .NET Console applications, ensure `Console.EnsureInitialized` gets called for at least output, and potentially for input

Posted by jpluimers on 2024/07/02

An interesting issue at [Wayback/Archive] Khalid ⚡️: “I just used #JetBrainsRider to find a deadlock scenario in #dotnet that I would not have guessed would deadlock. The Console needs to be initialized since the initialization uses a lock the first time. Using it in parallel tasks causes deadlocks. #dotnet This is excellent tooling!…” – Mastodon.

https://i0.wp.com/web.archive.org/web/20240626133154if_/https%3A//files.mastodon.social/media_attachments/files/112/683/097/702/613/855/original/3c11b46a77d3a1fd.png

[Wayback/Archive] 3c11b46a77d3a1fd.png (2800×1610)

It boils down to a non-public Console.EnsureInitialized method being called from multiple threads causes deadlocks. So far, it looks it can only be called as part of referring to Console.In or Console.Out.

I could only find one potentially related bug, which is [Wayback/Archive] NativeRuntimeEventSource behaving poorly in conjunction with other providers · Issue #88011 · dotnet/runtime · GitHub and being worked on, for .NET 9 or later:

Read the rest of this entry »

Posted in .NET, Development, Multi-Threading / Concurrency, Software Development | Leave a Comment »

Reminder to self: write a Bookmarklet that shortens YouTube URLs to the youtu.be ones

Posted by jpluimers on 2024/07/02

When sharing YouTube videos via the mobile apps, they are shortened using the youtu.be domain.

So this is a reminder to write a Bookmarklet based URL-shortener myself for this and extend it so it also understands the various YouTube URL parameters (like start time).

The transformation is documented:

Read the rest of this entry »

Posted in Bookmarklet, Conference Topics, Conferences, Development, Event, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »