The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • Pages

  • All categories

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

    Join 1,854 other subscribers

gpg creation and sign Gino’s Key ($1785651) · Snippets · GitLab

Posted by jpluimers on 2020/12/04

Boy it was a long time ago that I did anything with gpg. Here is how to generate and sign keys.

[WayBack] gpg creation and sign Gino’s Key ($1785651) · Snippets · GitLab

And here to check your email confguration:

[WayBack] Home – dmarcian Founded in 2012 by the primary author of the DMARC specification, dmarcian is dedicated to upgrading the entire world’s email by making DMARC accessible to all. dmarcian brings together thousands of senders, vendors, and operators in a common effort to build DMARC into the email ecosystem.

–jeroen

Posted in *nix, Power User, Security | Leave a Comment »

Why is “finite” in “infinite” pronounced differently than plain “finite”?

Posted by jpluimers on 2020/12/04

December thoughts: [WayBackWhy is “finite” in “infinite” pronounced differently than plain “finite”?… – Jeroen Wiert Pluimers – Google+

Q

Why is “finite” in “infinite” pronounced differently than plain “finite”?
As a partially word-blind person, those differences make natural languages very hard for me to grasp.
Especially because Dutch “eindig” is pronounced the same in “oneindig” (and German “endlich” the same in “unendlich“)

A

  • Randy Tapson's profile photo
    My guess is that it’s easier to say. They were probably pronounced the same 500 years ago but over time it became easier (lazier) to say 3 short vowels (because they are all the same sound) versus 1 short and 2 long. I’d be very interested in hearing what the old English pronunciation sounded like.
  • Wolfgang Rupprecht's profile photo
    Steven Pinker has a great talk on irregular verbs. In a nutshell certain words when put into a typical sentence are too much of a tongue twister. If the word or phrase is used enough people develop shortcuts to make them easier to say. The interesting aspect that he identified is that if some word falls out of common usage the pronunciation becomes regular again. People forget that they can say it the easier way. His talk is about irregular verbs, but the concept is much more general than that.
  • Kim Nilsson's profile photo

    Two great explanations, which both boil down to the truth and fact that people are lazy and languages adapt over time.

    English spelling is from the 15th century, but pronunciation has changed.

    Norwegian has tried to update their spelling to be closer to the actual use, and also removed duplicate “spelling” of the same sounds.

    Some languages are sponges, and fill up with words from other languages, and either keep the sounds or change them a little, even if they don’t conform to their own language. Others, like Icelandic, create brand new words for everything.

–jeroen

Posted in History, LifeHacker, Power User | Leave a Comment »

Wegstatus.nl – Home

Posted by jpluimers on 2020/12/04

This is so cool: a site showing live road status obtained through public APIs of roads in The Netherlands and Belgium covering closures, incidents (via P2000), open bridges, etc, communicating everything to Waze:

Wegstatus, een overzicht van actuele afsluitingen en incidenten in het verkeer.

[Archive.isWegstatus.nl – Home

Soo much information:

You can view new road closures through [Archive.is] Wegstatus.nl (@wegstatus) on Twitter

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

.NET: interfaces that inherit from multiple base interfaces

Posted by jpluimers on 2020/12/03

For my link archive:

Read the rest of this entry »

Posted in .NET, C#, Delphi, Development, Software Development | Leave a Comment »

Mike Cardwell’s Tech Blog: Twitter to RSS with Google Cloud Function – Grepular

Posted by jpluimers on 2020/12/03

Cool, on my list of things to tinker with: [WayBack] Twitter to RSS with Google Cloud Function – Grepular at Mike Cardwell’s Tech Blog

Source at [WayBack] Mike Cardwell / funcTwitter · GitLab, of which these are the most important bits:

Via [WayBack] Mike Cardwell on Twitter: “Twitter to RSS with Google Cloud Function”

–jeroen

Posted in Cloud Apps, Cloud Development, Development, Google, Google Cloud Function, Internet, Power User, RSS, SocialMedia, Software Development, Twitter | Leave a Comment »

I’m using Delphi XE 10.2: empty documentation tab means you need to update to either the documentation Hotfix or 10.2.3

Posted by jpluimers on 2020/12/03

If you see the Documentation tab like below you need to either:

The problem is caused by Embarcadero using mixed technologies in the Delphi IDE combined with their lack of testing due to not eating their own dog-food.

Too bad, as the documentation over the last versions has finally increased after a 10+ year steady decline.

Doing one technology right is hard, but having to mix multiple technologies into one product is extremely hard.

Via: [WayBack] I’m using Delphi XE 10.2. Whenever I click on the Documentation tab, I see the following uselessly rendered page. I can’t seem to resize it either. Anyb… – Graeme Geldenhuys – Google+

–jeroen

Read the rest of this entry »

Posted in Delphi, Delphi 10.2 Tokyo (Godzilla), Development, Software Development | Leave a Comment »

Lecture 9B | MIT 6.001 Structure and Interpretation, 1986 – YouTube

Posted by jpluimers on 2020/12/02

Great way of learning, as 1980s teachers show the power of just a chalk board for explaining things.

Holiday binge watching (and reading): Structure and Interpretation of Computer Programs. Favorite video in the series: https://www.youtube.com/watch?v=SLcZXbyGC3E – where the two wizard profs explain / ‘role play’ the register machine with the stack.

1980s style at its best – you don’t need infographics and animations – just a chalkboard.

Via

–jeroen

Read the rest of this entry »

Posted in Development, Software Development | Leave a Comment »

Making it dead simple to implement @haveibeenpwnd in your applications, including strength warning if found in @troyhunt’s password collection.

Posted by jpluimers on 2020/12/02

I wasn’t aware that Troy Hunt created an API [WayBack] for [WayBack] Have I Been Pwned: Check if your email has been compromised in a data breach.

He did, as I noticed through [WayBack] Michelangelo van Dam on Twitter: “Making it dead simple to implement @haveibeenpwnd in my applications, including strength warning if found in @troyhunt’s password collection. Check out to try it out yourself. #ImproveSecurity #haveibeenpwnd”.

There are in fact plenty of other packages, web-sites and apps using the API as seen on [WayBack] Have I Been Pwned: API consumers.

Many people ask “if it is safe” (often assuming passwords are sent in clear, or hashes are sent in full; my fear is that those people implement security somewhere).

It is safe:

PHP source is at [WayBack] GitHub – DragonBe/hibp: A composer package to verify if a password was previously used in a breach using Have I Been Pwned API.

There is also a [WayBack] composer package at [WayBack] dragonbe/hibp – Packagist.

A really cool thing on it is this:

This project was also the subject of my talk [WayBack] Mutation Testing with Infection where the code base was not only covered by unit tests, but also was subjected to Mutation Testing using [WayBack] Infection to ensure no coding mistakes could slip into the codebase.

Apart from the tests, the most important source is at [WayBack] hibp/Hibp.php at master · DragonBe/hibp · GitHub

Related:

–jeroen

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

Delphi spring collections

Posted by jpluimers on 2020/12/02

[WayBack] Spring Collections I have a list of elements, there are, for example, 100 of them. List : IList; I want to get 5 values greater than 10 and … – Jacek Laskowski – Google+

Q

I have a list of elements, there are, for example, 100 of them.

List : IList<Integer>;

I want to get 5 values greater than 10 and I do it like this:

result: = List.Where(ValueIsGreatThan10).Take(5);

Will the “work loop” be executed a minimum number of times and if, for example, the first 5 values in the list will be greater than 5, then only the five will be checked? Or maybe the Where() loop will scan 100 elements, and Take() will return the first 5 results?

A (by Stefan Glienke)

Where and Take are streaming operators and only execute as much as required.

Also the operations have deferred execution. So your statement does not materialize any collection yet. Only if you iterate it will.

They are designed after the operators in .NET so the table from [WayBack] Classification of Standard Query Operators by Manner of Execution (C#) | Microsoft Docs applies. If you find any difference please report it.

Example:

var
  nums: IEnumerable<Integer>;
  i: Integer;
begin
  nums := TEnumerable.Range(1, 100).Where(
    function(const i: Integer): Boolean
    begin
      Writeln('checking: ', i);
      Result := i > 10;
    end
  ).Take(5);
  Writeln('query created');
  for i in nums do
    Writeln('got number: ', i);
end.

This code will print:

query created
checking: 1
checking: 2
checking: 3
checking: 4
checking: 5
checking: 6
checking: 7
checking: 8
checking: 9
checking: 10
checking: 11
got number: 11
checking: 12
got number: 12
checking: 13
got number: 13
checking: 14
got number: 14
checking: 15
got number: 15

–jeroen

Posted in .NET, Delphi, Development, Software Development | Leave a Comment »

How to install Telnet with only one command

Posted by jpluimers on 2020/12/01

Source: [WayBackHow to install Telnet with only one command:

dism /online /Enable-Feature /FeatureName:TelnetClient

–jeroen

Posted in Microsoft Surface on Windows 7, Power User, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows 9, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Vista | Leave a Comment »