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

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 »

How to have git log show filenames like svn log -v – Stack Overflow

Posted by jpluimers on 2020/12/01

I stick to git log --name-status as suggested in [WayBack] How to have git log show filenames like svn log -v – Stack Overflow.

A slightly less readable alternative isgit log --num-status .

There is also git log --name-only as suggested in [WayBack] How to show changed file name only with git log? – Stack Overflow

–jeroen

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

Delphi Compiler Intrinsics can help you collapse generated code for generics a lot

Posted by jpluimers on 2020/12/01

On my reading list [WayBack] Delphi Corner Weblog: The current state of generics in Delphi because it explains in more detail why Delphi compiler generic type based intrinsics introduced some 5 years ago, but never been (accurately) documented, but listed at [WayBack] delphi – Undocumented intrinsic routines – Stack Overflow, are so important to help collapse decreasing code bloat:

  • Default
  • IsManagedType
  • HasWeakRef
  • GetTypeKind

There is also the TypeInfo which is somewhat documented on-line starting in the Delphi 2007 documentation:

 

And some non-generic intrinsics that are still undocumented:

  • IsConstValue
  • ReturnAddress

Spring4D already has been making use of this for a few years, and you can too!

Via [WayBack] rvelthuis.blogspot.com/2018/10/the-current-state-of-generics-in-delphi.html – Jacek Laskowski – Google+ that has some more information on Spring4D too.

A tiny bit more information on collapsing: [WayBack] TURBU Tech » Blog Archive » Wish list: Generics collapsing

–jeroen

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »

Keep alive SSH connection with server in MacOs Mojave – Ask Different

Posted by jpluimers on 2020/11/30

Reminder to self: check if this has been worked-around yet: [WayBack] Keep alive SSH connection with server in MacOs Mojave – Ask Different

In El Captain, to maintain active a SSH connection you should edit ~/.ssh/config file to add your additional rules.

nano ~/.ssh/config

To maintain active for 1 hour you should add:

Host *
   ServerAliveInterval 3600

I cannot recreate the same situation is MacOS Mojave, it continue to close connections after some minutes. Any suggestions about this?

Via: [WayBackAsk Different on Twitter: “Can you answer this? Keep alive SSH connection with server in MacOs Mojave #ssh”

–jeroen

 

Posted in Apple, Mac OS X / OS X / MacOS, Power User | Leave a Comment »

NOx value measurement is an indicator for much wider forms of pollution (was: Definitiv ein lesenswerter Artikel, trotz der plakativen Schlagzeile)

Posted by jpluimers on 2020/11/30

Basically:

In other words (and she’ll say that later in an interview): It’s not the NO2 limit we’re talking about here, it’s all the air pollutants we inhale day after day. The discussion about diesel bans and the reduction of NO2 emissions misses the real problem, because if only the NO2 is reduced and not the other pollutants, that does not help much.

Google translated from:

Mit anderen Worten (und das sagt sie auch noch später in Interview): Es ist gar nicht der NO2-Grenzwert, um den es hier geht, es sind die gesamten Luftschadstoffe, die wir Tag für Tag einatmen. Die Diskussion um Dieselfahrverbote und Reduzierung des NO2-Ausstoßes geht am eigentlichen Problem vorbei, denn wenn nur das NO2 reduziert wird und nicht die weiteren Schadstoffe, hilft das nicht viel.

[WayBack] Definitiv ein lesenswerter Artikel, trotz der plakativen Schlagzeile: > Es geht bei dem Grenzwert nicht nur um die Gesundheitswirkung des Reizgases NO2… – Thomas Mueller (dummzeuch) – Google+

–jeroen

Posted in About, History | Leave a Comment »

Android: measuring sound levels

Posted by jpluimers on 2020/11/30

Two Android apps I tried that work quite OK for measuring dBA or Sound Pressure Level:

Measuring sound levels is not easy, especially the calibration is important. That’s why professional devices are relatively expensive.

These are no full replacements for those professional devices, but the first comes close enough for me.

–jeroen

Posted in Android Devices, LifeHacker, Power User | Leave a Comment »