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

Trying to recover from enhancement software that generates fake input incorrectly – The Old New Thing

Posted by jpluimers on 2017/02/08

Be sure to read the details in Trying to recover from enhancement software that generates fake input incorrectly – The Old New Thing [WayBack] (much more Old New Think stuff below):

The most insightful part for me was this diagram listing where various methods enter the message pipeline (I added the GetMessage/PeekMessage entry):

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi-Tage.de, Development, Event, Software Development, The Old New Thing, Windows Development | Leave a Comment »

Determining the current shell in *n*x variants including ESXi

Posted by jpluimers on 2017/02/08

On most systems, I use bash as shell, but not all systems have it, for instance the shell.xs4all.nl server uses tcsh and ESXi 4+ uses a very limited ash shell from busybox (ESX 4 had bash though).

There is this huge script that covers many shell and operating system versions (even DOS, Windows) and interpreters (python, ruby, php, etc) what shell is this which I got through Stéphane Chazelas‘s answer in linux – determine shell in script during runtime – Unix & Linux Stack Exchange

I wanted a shorter thing that works in current Linux, BSD, OS X and ESXi versions.

Some very short scripts are less reliable, for instance echo $SHELL looks nice, but isn’t always set.

Similar for echo $0 which will fail for instance if it shows as sh but in fact is a different shell in disguise.

This works for bash, tcsh and busybox sh, is a bit more precise than getting $0. It’s based on HOWTO: Detect bash from shell script – Stack Overflow:

lsof -p $$ | awk '(NR==2) {print $1}'

But on ESXi it shows this because lsof doesn’t take any parameter there and just dumps all information:

----------+---------------------+---------------------+--------+------------------

It’s because lsof on ESXi always shows this header where Cartel and World aren’t exactly well documented:

Cartel | World name | Type | fd | Description
----------+---------------------+---------------------+--------+------------------

Empirically for non VM related processes, it looks like the Cartel is the PID and World name the command.

On Linux and BSD based systems, the header looks like this, so command and PID are reversed in ESXi:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

This command then works on both ESXi, OS X, Linux and BSD assuming you can word search for the PID and noting that PID/command will be reversed on ESXi as compared to OSX/Linux/BSD:

lsof -p $$ | grep -w $$ | awk '(NR==2) {print $1,$2}'

–jeroen

Posted in Apple, bash, BSD, Development, iMac, Mac, Mac OS X / OS X / MacOS, Mac OS X 10.4 Tiger, Mac OS X 10.5 Leopard, Mac OS X 10.6 Snow Leopard, Mac OS X 10.7 Lion, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, OS X 10.10 Yosemite, OS X 10.11 El Capitan, OS X 10.8 Mountain Lion, OS X 10.9 Mavericks, Power User, Scripting, Software Development | Leave a Comment »

Delphi multithreading – AcquireExceptionObject/ReleaseExceptionObject to pass exception from one thread to another thread – via G+ and Stack Overflow

Posted by jpluimers on 2017/02/07

A long time ago, Thomas Mueller (dummzeuch) – Google+ reminded [WayBack] me of this which I required a short while ago:

You can use AcquireExceptionObject():

AcquireExceptionObject returns a pointer to the current exception object and prevents the exception object from being deallocated when the current exception handler exits.

Then you can send the pointer to another thread and if you raise it there it will be freed for you, otherwise you must call ReleaseExceptionObject() to free it.

After the answer by Remy Lebeau [WayBack] and Remko [WayBack] is a comment [WayBack] by mghie [WayBack] that mentions AsyncCalls.pas that now is available on GitHub [WayBack].

If you have a very old (version <= 5) Delphi or just want to look at how AcquireExceptionObject [WayBack] looks like just look at a similar implementation there [WayBack]. Note that instead of the ReleaseExceptionObject [WayBack] call, AsyncCalls re-raises the exception [WayBack].

–jeroen

 

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2007, Delphi 2009, Delphi 2010, Delphi 5, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »

Get a code signing certificate – Windows 10 hardware dev

Posted by jpluimers on 2017/02/07

Thanks Mathijs ter Woord for letting me know this: Get a code signing certificate – Windows 10 hardware dev

Posted in Development, Hardware Development | Leave a Comment »

Casting the audio of application on your Linux machine via Chrome to a ChromeCast

Posted by jpluimers on 2017/02/06

Hopefully by now mkchromecast [WayBack] works on more Linux versions (and maybe even Mac OS X is better supported [WayBack]), but back then it was only available for Ubuntu 16.10 and up:

Do you want to stream the audio from Rhythmbox, VLC or another Linux app to your TV through Chromecast? Well, we’ve found a nifty little Linux tool that lets you do just that.

Source: How to Send Your Linux Desktop Audio to a Chromecast – OMG! Ubuntu!

The tool is at github: Linux · muammar/mkchromecast Wiki  [WayBack]: mkchromecast – Cast macOS, or Linux Audio to your Google Cast Devices

–jeroen

via:

Posted in *nix, Chrome, Chromecast, Google, Linux, Power User, Ubuntu | Leave a Comment »

dubbelglas, dubbel glas, dubbele beglazing, isolatieglas

Posted by jpluimers on 2017/02/06

Veel informatie over dubbelglas, dubbel glas, dubbele beglazing, isolatieglas met typen, toepassingen, fabrikanten, etc.

En mocht er wat breken:

Voor een compleet overzicht van alle mogelijke glasbreuken download de Folder Glasbreuken als PDF. Thermische breuken Een thermische breuk ontstaat, wanneer de typische materiaalkarakteristieken van het glas in relatie tot de kwaliteit van de rand van het glas en de bestendigheid … Continue reading →

Source: Glasbreuken – van der Ham Glasgroothandel BV

De laatste heeft sowieso een hele verzameling nuttige Veel gestelde vragen – van der Ham Glasgroothandel BV

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

How to Build Your Own Penetration Testing Drop Box – Black Hills Information Security

Posted by jpluimers on 2017/02/03

TL;DR

At testing time, the Hardkernel’s ODROID-C2 absolutely destroyed the competition in this space, so buy this:

Hardware Shopping List (links current as of 8/2/2016)

After that continue the article and start with the Initial Setup of the Kali Image

Source: How to Build Your Own Penetration Testing Drop Box – Black Hills Information Security

–jeroen

via: Joe C. Hecht originally shared to Single Board Computers and Virtual Private Servers (Hardware).

Posted in *nix, Kali Linux, Linux, Pen Testing, Power User, Security | Leave a Comment »

Reverso | Free online translation, dictionary

Posted by jpluimers on 2017/02/03

Translates into various languages, options various English language tools

Translates into various languages, options various English language tools

Great stuff:

Online translation in French, Spanish, German, Italian, Russian, Portuguese, Chinese, Arabic, Hebrew, Japanese. The other options are focussed on English.

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

Dit is wat we weten over het nieuwe erfpachtstelsel – Amsterdam – PAROOL

Posted by jpluimers on 2017/02/03

Voor mijn archief: [Archive.isDit is wat we weten over het nieuwe erfpachtstelsel – Amsterdam – PAROOL

Amsterdam stapt in 2017 na 120 jaar over op een nieuw erfpachtstelsel. Dit is wat we nu weten over de plannen en de gevolgen voor huizenbezitters.

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

Delphi: rbTC1416 package cannot find the Graphics unit: ensure your DCC_Namespace is correctly

Posted by jpluimers on 2017/02/02

I had to add this to my DCC_Namespace in the rbTC1416.dproj file to make it build under Delphi XE8:

Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;

The occurrence of this DCC_Namespace setting corresponds to the “Unit scope names” of the “All configurations – All Platforms” target in the project options.

That got rid of this error mesage:

[dcc32 Fatal Error] ppChrt.pas(17): F2613 Unit 'Graphics' not found.

It was for a site that had very little ReportBuilder but a truckload of FastReports stuff, so I temporarily needed their ReportBuilder for XE2 to just load in Delphi XE8 at design time so I could migrate.

Apparently not all the ReportBuilder packages use the same namespace definitions. Even worse: they add various namespaces at various target levels in an inconsistent way, so it took me a bit more time than I originally hoped for sorting this out.

Below is what the original settings were: only the .\TeeChart\Win32\TeePro900 directory had TeeChart project files (the .\Source and .\TeeChart\Win32\TeeStd900 directories hadn’t) and all three had slightly different unit source files for TeeChart support.

Read the rest of this entry »

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