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,425 other followers

Using Windows API function MoveFile to check if a filename is valid…  – via Stack Overflow

Posted by jpluimers on 2018/10/17

This has a really neat Windows API trick [WayBackdelphi – How can I sanitize a string for use as a filename? – Stack Overflow by [WayBack] Alex.

Via: [WayBack] Interesting use of MoveFile, with NIL as the first parameter. – Thomas Mueller (dummzeuch) – Google+

  function IsValidFilePath(const FileName: String): Boolean;
    S: String;
    I: Integer;
    Result := False;
    S := FileName;
      I := LastDelimiter('\/', S);
      MoveFile(nil, PChar(S));
      if (GetLastError = ERROR_ALREADY_EXISTS) or
           (GetFileAttributes(PChar(Copy(S, I + 1, MaxInt))) = INVALID_FILE_ATTRIBUTES)
         ) then
      if I>0 then
        S := Copy(S,1,I-1);
    until I = 0;
    Result := True;


Posted in Delphi, Development, Software Development, Windows Development | Leave a Comment »

The part before the @ in email addresses is case sensitive

Posted by jpluimers on 2018/10/16

At [WayBackError when trying to signup using an email address with uppercase letters (#27898) · Issues · / GitLab Community Edition · GitLab, I commented this:

Both the :e-mail and :email_confirmation fields should get the same case processing treatment.

That treatment should consist of this:

  1. The part before the @ should be treated as case sensitive
  2. The part after the @ should be treated as case insensitive

This means that:

  • Foo@Example.Org and are the same
  • and are different

The main reason is that there are email systems expecting case sensitivity in the part before the @ sign.

I think excluding those users from being able to use GitLab is a bad idea.

See especially the comments at the Stack Overflow answer to Are email addresses case sensitive?

Relevant RFC 5321: Simple Mail Transfer Protocol sections:

Important comments:

I work at a large company and there is another person with the same first and last name. I discovered today that his local-part differs from mine only in capitalization. This has been working properly, so I was surprised to see “no widely used mail systems distinguish different addresses based on case”. We use MS Exchange which I would call “widely used”. – Matthew James Briggs Nov 24 ’15 at 20:14

RFC 5321 2.4. General Syntax Principles and Transaction Model – SMTP implementations MUST take care to preserve the case of mailbox local-parts. In particular, for some hosts, the user “smith” is different from the user “Smith”. Mailbox domains follow normal DNS rules and are hence not case sensitive. – Adam111p Apr 27 ’16 at 10:02

Most important parts of the answer:

From RFC 5321, section-2.3.11:

The standard mailbox naming convention is defined to be “local-part@domaiN“; contemporary usage permits a much broader set of applications than simple “user names”. Consequently, and due to a long history of problems when intermediate hosts have attempted to optimize transport by modifying them, the local-part MUST be interpreted and assigned semantics only by the host specified in the domain part of the address.

So yes, the part before the “@” could be case-sensitive, since it is entirely under the control of the host system. In practice though, no widely used mail systems distinguish different addresses based on case.

The part after the @ sign however is the domain and according to RFC 1035, section 3.1,

“Name servers and resolvers must compare [domains] in a case-insensitive manner”


Posted in Communications Development, Development, Internet protocol suite, SMTP, Software Development | Leave a Comment »

Delphi Unit Dependency Scanner

Posted by jpluimers on 2018/10/16

[WayBackDelphi Unit Dependency Scanner with sources at [WayBack] GitHub – norgepaul/DUDS


Future idea: use Delphi AST as parser instead of the current internal tokeniser/parser combination.


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

Quickly finding and debugging jQuery event handlers with findHandlersJS – The Blinking Caret

Posted by jpluimers on 2018/10/16

tl;dr: Finding event handlers registered using jQuery can be tricky. findHandlersJS makes finding them easy, all you need is the event type and a jQuery selector for the elements where the events might originate.

I need to invest some time in using this: [WayBackQuickly finding and debugging jQuery event handlers with findHandlersJS – The Blinking Caret

Sourcecode: [


Via: [WayBackjavascript – Chrome Dev Tools : view all event listeners used in the page – Stack Overflow


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

macOS Sierra: Change the order of the network ports your computer uses to connect

Posted by jpluimers on 2018/10/15

Very useful when you want to give your WiFi less priority than an USB or Thunderbolt network adapter: [WayBack] macOS Sierra: Change the order of the network ports your computer uses to connect.

It is not just that the topmost adapter gets more priority: it also determines the DNS search!

Anyway: after choosing “Set Service Order” on the right, choose the order as seen below.


PS: Since Apple is cleaning up their site, only the above WayBack works, but luckily the below link explains it in a very similar way when using Locations:

[WayBack] How to use network locations on your Mac – Apple Support



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

%d bloggers like this: