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

Archive for September 16th, 2020

A thread written by @SwiftOnSecurity

Posted by jpluimers on 2020/09/16

[WayBack] A thread written by @SwiftOnSecurity:

Corporate purchasing and policies make funding open source Literally Impossible.

Nothing’s going to change until you make them pay you.

Someone filed a bug?
Support contract.

Someone wants a feature?
Support contract.

It’s literally easier to pay you $1500/yr than $25 once.

Edit: since Threader/Threader_app died, I archived the Twitter thread at

And much more: worth a long read.

Via another interesting post: [WayBack] Idea for FOSS projects. Register your project/product name as a trademark and only use it for official, stable releases. Have a different name for your … – Jan Wildeboer – Google+

Idea for FOSS projects. Register your project/product name as a trademark and only use it for official, stable releases. Have a different name for your not-(yet)-stable Code.

Put trademark agreements in place. Everyone who uses your trademarked name for services based on your code has to pay. Everybody using the non-stable code is free to do so, but cannot use your trademarked name.

With lots of interesting comments:

  • Jan Wildeboer
    +Andreas Kahler because when you don’t allow use without pay you are violating the open source principles.
  • You just don’t allow the use of the trademarks. That’s perfectly fine with FOSS, e.g. with GPLv3: “you may […] supplement the terms of this License with terms: […] Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks”. See – Trademarks in Open Source –
  • +Andreas Kahler Yep. That’s how we work at Red Hat ;)
  • It’s how most distros work – it can be a problem though because you then control how the mark is used and without care it becomes a blocker. Eg it’s really hard to ship Unbuntu based stuff because you can’t modify Ubuntu and call it Ubuntu (which is fair enough) , but for cloud images – problem.
  • +Alan Cox That’s why it IMHO makes more sense for projects/products.
  • Jan Wildeboer+1
    +Torsten Kleinz … Setting up a new provider at any medium to big company is a big, lengthy and horrifyingly complex process.


Read the rest of this entry »

Posted in Development, Open Source, Software Development | Leave a Comment »

Not to self: ERROR_ALREADY_EXIST (183) can also mean your named Mutex already exists

Posted by jpluimers on 2020/09/16

A while ago, I had an error like this when debugging plugins:

Project bds.exe raised exception class EOSError with message ‘System Error.  Code: 183.
Cannot create a file when that file already exists’.

It got was raised when [WayBackGetLastError returned ERROR_ALREADY_EXIST which according to [WayBackSystem Error Codes (0-499) (Windows) has this description:


183 (0xB7)
Cannot create a file when that file already exists.


The last line is the same description that [WayBackFormatMessage returns. And it put me on the wrong foot as it wasn’t a file, but a mutex that was created: indeed [WayBackCreateMutex documents it:

If the mutex is a named mutex and the object existed before this function call, the return value is a handle to the existing object, GetLastError returns ERROR_ALREADY_EXISTS, bInitialOwner is ignored, and the calling thread is not granted ownership. However, if the caller has limited access rights, the function will fail with ERROR_ACCESS_DENIED and the caller should use the OpenMutex function.

In the mean time, the plugin doesn’t raise that as an exception any more.



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

Using Delphi for jiggling the mouse – twm’s blog

Posted by jpluimers on 2020/09/16

To prevent a screen-saver from kicking in [WayBack] jiggling the mouse – twm’s blog:

My solution then is this procedure:

procedure JiggleMouse;
  Inpt: TInput;
  Inpt.Itype := INPUT_MOUSE;
  Inpt.mi.dx := 0;
  Inpt.mi.dy := 0;
  Inpt.mi.mouseData := 0;
  Inpt.mi.dwFlags := MOUSEEVENTF_MOVE;
  Inpt.mi.time := 0;
  Inpt.mi.dwExtraInfo := 0;
  SendInput(1, Inpt, SizeOf(Inpt));

Call it in regular intervals and the screen saver will not start.

This is now (or soon will be) in the u_dzOsUtils unit which is part of my dzlib utility library.


Posted in Delphi, Development, Power User, Software Development, Windows | 1 Comment »

%d bloggers like this: