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 2,726 other followers

Archive for the ‘JavaScript/ECMAScript’ Category

The Delphi documentation site has been down/up oscillating for 4 days is now down for almost a day.

Posted by jpluimers on 2022/03/08

The [Wayback/Archive] Embarcadero/IDERA Documentation Wiki has been mostly down since March 3rd, 2022 (not the main page, but almost all other pages are).

I modified [Wayback/Archive] Docwiki https – EmbarcaderoMonitoring to show the actual status of a deeper page as the (mostly static) top page is up, so monitoring that is useless as the deeper pages are down.e

The deeper pages are dynamic and require a functioning MySQL database connection. That connection is mostly down (the error message is not clear, so this could be a network or a database server problem, or maybe even a loadbalancer gradually entering bit heaven).

Since it had been down for like 6 days in February*, I’d expect Idera to keep an eye on it and prepare for more downtime. Apparently that’s either not a 24×7 thing for them or  they missed the “pre” in preparation as it is dead-silent on .

It also runs on an unsupported version of Mediawiki 1.31** which by itself does not explain the outage, but does indicate that their idea of handling their internal lifetime management is different than what they advocate to clients in their software subscription model, see [Wayback/Archive] Delphi – Embarcadero store, [Wayback/Archive] Update Subscription – Embarcadero and [Wayback/Archive] Special Offers on RAD Studio, Delphi & C++Builder – Embarcadero:

Can I obtain updates and hotfixes without a subscription?

An active update subscription is the only way to obtain updates and hotfixes.

Back in the days Embarcadero were keen in advocating life cycle management. Maybe time to show they indeed still understand what that means.


The original 7 day outage from 20220217-20220224 was reported at [Wayback/Archive] is not working – General Help – Delphi-PRAXiS [en].

I amended some information at [Wayback/Archive] is not working – Page 2 – General Help – Delphi-PRAXiS [en] and redirected a [Wayback/Archive] UptimeRobot | Free Website Monitoring link at [Wayback/Archive] Docwiki https – EmbarcaderoMonitoring.

A few hours later it sort of looked to be operational again, but in the monitor actually showed it was having outages every few minutes for intervals of 5-45 minutes: [Wayback/Archive] Docwiki https – EmbarcaderoMonitoring.


The source of the docwiki home page at [Wayback] shows this:

   <meta name="generator" content="MediaWiki 1.31.1">

Mediawiki 1.31.1 is not even the most recent LTS version 1.31.16 (see [Wayback/Archive] Release notes/1.31 – MediaWiki), so here might even be CVE vulnerabilities.

When choosing for LTS, then they should go to the latest of 1.35 (at the time of writing 1.35.5), see [Wayback/Archive] Release notes/1.35 – MediaWiki and [Wayback/Archive] Version lifecycle – MediaWiki:

  • Blue:  Alpha development
  • Grey:  Release development
  • Green:  Stable release
  • Orange:  Long-term support release

  • major release will be made every six months.
  • long-term support release (LTS) will be made every two years. There will be a one-year overlap in LTS support. For example, 1.23 was supported until May 2017. 1.27 was released the year before, so that people have it available as an LTS to move to and a year to make the transition.

Older Mediawiki versions can be vulnerable to attacks, even LTS ones when you do not stay on the most recent build inside an LTS branch.

Some related tweets and sites:

Analysing the backtraces

Read the rest of this entry »

Posted in *nix, Bookmarklet, Delphi, Development, JavaScript/ECMAScript, Lightweight markup language, MediaWiki, Monitoring, Power User, Scripting, SocialMedia, Software Development, Twitter, Uptimerobot, Web Browsers | Leave a Comment »

I consider stealing the user’s time because of a bad UX design among the Dark Patterns

Posted by jpluimers on 2022/02/22

I an with [Wayback] Craig Buckler to consider Dark Patterns being wider than the strict sense.

For me anything that costs a user extra time or makes accessibility harder is a Dark Pattern.

So I agree with the issues he explains at [Wayback] The Web’s Most Annoying Dark Patterns – SitePoint

Does the web delight or displease you? Craig lists his least favourite UI and marketing dark patterns. Have you developed on the dark side?

Paste is enabled, but does not function

Paste is enabled, but does not function

A while ago, I got into one myself. Let me explain.

Having had RSI, I’m dependent on keeping my hands and arms in good shape. This means minimising the use of pointing devices and also trying to minimise typing.

In addition, I have heavily segmented my use of email addresses (among others for cutting down SPAM). Basically any point of contact gets a new email address.

This means I realy on tooling like password managers and email address generators. It means copying and pasting information.

So I bumped into a web-site that disallowed pasting the (unique and long!) email address into the email verification field.

[] Jeroen Wiert Pluimers on Twitter: “The @olvg #mijnOLVG site is now on my Dark Patterns list as they make #accessibility harder by blocking pasting into the email address verification field. Blocking the paste-blocker. CC some people advocating @MauricevdBosch @ronklitsie63 @kyntha”

Despite the popup menu, paste didn’t work. Chrome autofill did, but didn’t have the information for this particular (new and unique) email address yet, so could not be used yet.

Disabling the paste block

It is relatively easy to disable a paste block. In this case, I was using chrome, but this can be done with any browser. Some browsers even have optional extensions that can do this for you.

In the case of Chrome, when right clicking, there is an “Inspect” option

Inspect is enabled and actually works.

Inspect is enabled and actually works.

It inspects the current element, which on this site looks like this:

The element does not contain event handlers. But the code hooks them behind our backs.

The element does not contain event handlers. But the code hooks them behind our backs.

On the “Event Listeners” tab on the right, you can see there are two JavaScript methods hooked to the paste handler:

The paste handlers. The first is OK, the second blocks paste.

The paste handlers. The first is OK, the second blocks paste.

The first one is OK, though I did not really look into what the proxy does.

Second paste event handler: remove this one.

First paste event handler: keep this one.

First paste event handler: keep this one.

The second is not OK, as it effectively prevents the event from being handled any further at all by calling preventDefault

Second paste event handler: remove this one.

Second paste event handler: remove this one.

By clicking on the second Remove button above, the paste blocker is gone and you can paste again.


Read the rest of this entry »

Posted in Chrome, Chrome, Dark Pattern, Development, Google, JavaScript/ECMAScript, Power User, Scripting, Software Development, User Experience (ux), Web Browsers | Leave a Comment »

Chrome debugging tip: disabling framework/library code (from Minko Gechev on Twitter)

Posted by jpluimers on 2022/02/03

Cool tip: [] Minko Gechev on Twitter: “Tooling tip: When debugging, you can prevent stepping into framework/library code by using blackboxing. In @ChromeDevTools: ‣ Open the script you don’t want to enter ‣ Right click → Blackbox ‣ Pain free debugging ✨… “


Read the rest of this entry »

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

Google Open Source Insights (hopefully by now more than just npm/golang/maven)

Posted by jpluimers on 2022/02/02

Interesting project at [Wayback] Open Source Insights

Open Source Insights is an experimental project by Google.

Hopefully by now it is supporting more than just npm/golang/maven and by the time it sunsets, other projects take over.

The introduction was some 9 months ago: [Wayback] Introducing the Open Source Insights Project | Google Open Source Blog



Posted in Development, Go (golang), JavaScript/ECMAScript, Node.js, Power User, Scripting, Security, Software Development | Leave a Comment »

Twitter: find my new-style retweets that have images

Posted by jpluimers on 2022/01/11

This gets the tweets I retweeted and have images in them:

from:@jpluimers filter:images filter:nativeretweets

Based on:

  • [Wayback] twitter – How do I find my retweets of a certain account? – Web Applications Stack Exchange
    from:@someone filter:nativeretweets [KEYWORD(s)]

    This shows all retweets of @someone (including the optional KEYWORD(s)). If you retweeted the same tweet you can use @yourtwittername instead of @someone.

  • This article gives you a robust overview of everything you need to know about advanced TweetDeck features.[Wayback] About advanced TweetDeck features

    To search for mentions of #space from verified accounts, excluding Retweets, type the following in the search box: #space filter:verified -filter:nativeretweets

  • [Wayback] Difference between -filter:retweet and -filter:nativeretweets in Twitter Search API 1.1 – Stack Overflow

    I believe per TweetDeck documentation ( this is the difference:

    filter:nativeretweets shows retweets from users who have hit the retweet button. filter:retweets shows old style retweets (“RT”) + quoted tweets.

    Those are filtering FOR those types of results, but as you’ve done, the – is necessary to filter them out -filter:nativeretweets or -filter:retweets

  • [Wayback/] Twitter API 1.1 tweets / favorites (likes) / following / followers backup in web browser
    /* Twitter API 1.1 tweets / favorites (likes) / following / followers backup in web browser
     * Get your access keys to use Twitter API 1.1:
     * You can change Twitter API URL and Twitter screen_name, then execute script from a trusted web page without CSP protection like about:blank in a web browser console (F12 or Ctrl+Shift+K shortcut)
     * A textarea will appear so you can copy/paste to save data as a CSV file or search tweets / users in your web browser (Ctrl+F shortcut)
     * You can then view your backup in a spreadsheet editor like LibreOffice Calc
     * You can also compare the backup with another one to see who unfollowed you, who changed their Twitter username by looking at the user ID or which tweet you retweeted / favorited was deleted (e.g. with the Linux diff command)
     * Note about the tweets backup:
     * Usually you will search tweets that you retweeted using Twitter web version ( with a search like "from:your_username filter:nativeretweets keyword"
     * But it is limited to the retweets of the last 7 days, like for the free version of the search API (
     * An alternative is to search tweets in your user timeline with this script but it is limited to your last 3200 tweets (including retweets and replies)
     * This script can be combined with the Twitter feature to backup data, which is not limited to your last 3200 tweets but you can only request a backup every 30 days
     * To find tweets that you retweeted or favorited / liked from a specific person, you can open the CSV file with LibreOffice Calc, click on the column you want to search and press Ctrl+H to search a username


Posted in Development, JavaScript/ECMAScript, Power User, Scripting, SocialMedia, Software Development, Twitter | Leave a Comment »

%d bloggers like this: