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

Archive for the ‘Software Development’ Category

Why I wish QC had been archived in full…

Posted by jpluimers on 2018/10/25

A quick search later and it seems I’m bumping into [WayBack] http://qc.embarcadero.com/wc/qcmain.aspx?d=125403 (the version I’m bugfixing is built using XE6).

The workaround listed (in my case blanking indexfieldnames in OnBeforeClose) works.

Now… imagine if this had been filed to QualityPortal instead.

I would have had to remember to search it, and maybe wouldn’t have found it as Google does fuzzy searches very well.

And due to the lower visibility it likely would have fewer comments as well…

So yeah EMB/Idera, please revisit the choice of walling up QualityPortal.

Source: [WayBack] So I just hit a weird issue in our program. A quick search later and it seems I’m bumping into this http://qc.embarcadero.com/wc/qcmain.aspx?d=125403… imagine if it had been in QualityPortal… – Asbjørn Heid – Google+

–jeroen

 

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

Finding your program with an “Access Denied” (Error code 5) after lunch break…

Posted by jpluimers on 2018/10/24

Via: [WayBack] I just returned from lunch break and found my program faulted with an “Access Denied” (Error code 5) error in a call to Mouse.GetCoursorPos and was wond… – Thomas Mueller (dummzeuch) – Google+:

All of [WayBackGetCursorPos, [WayBackGetCursorInfo and [WayBack] GetKeyState can cause an “Access Denied” (Error code 5) when they do not have permission for the current desktop (for instance the logon desktop when a screen-saver has kicked in).

Solution: write a wrapper around it then [WayBack] patch calls going to the original into the patch [WayBack] delphi – Explain errors from GetKeyState / GetCursorPos – Stack Overflow

–jeroen

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

Delphi: uninstalling the ancient CollabNet 1.7.5 version

Posted by jpluimers on 2018/10/24

Somehow the integration team at Embarcadero still hasn’t discovered there are [WayBack] newer CollabNet SVN Client versions than 1.7.5 which has been shipped since Delphi XE3 until Delphi XE6. The newer version (currently 1.8.8 when writing this, now 1.10.2 in 2018) have plenty [WayBack1/WayBack2SVN security issues fixed.

The easiest way to uninstall the CollabNet SVN Client is running this small script:


call :start %ProgramFiles%
call :start %ProgramFiles(x86)%
goto :end
:start
startlocal
set CollabNet="%*\CollabNet\uninst.exe"
echo %CollabNet%
if exist %CollabNet% start "CollabNet uninstall" %CollabNet%
endlocal
goto :end
:end

Then install the [WayBackSlik SVN client. Like [WayBackЈοеу, I’ve switched to [WayBackSlik SVN a long ago. Here is [WayBackhis reasoning:

I have long since stopped using the CollabNet-branded version because it’s behind a registration wall. I found Slik SVN as a good alternative. It’s exactly the same command-line client you get from CollabNet, sans the hassle in downloading it.

I hope someone at Embarcadero enters this in QC^w QualityPortal as I’m awaiting Embarcadero response about a security issue there.

–jeroen

Posted in Delphi, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Development, QC, Software Development, Source Code Management, Subversion/SVN | 2 Comments »

Jonathan Nelson on Twitter: “toilet paper visualization of the difference between zero and null https://t.co/ku3BBRjjUY”

Posted by jpluimers on 2018/10/24

toilet paper visualization of the difference between zero and null

The thread has a few others as well:

  • NaN
  • Public versus private

Sources:

Via: [WayBack] Difference between 0 and null – CodeProject – Google+

–jeroen

Read the rest of this entry »

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

Delphi Rio “new overall direction of removing ARC”

Posted by jpluimers on 2018/10/23

Finally: “new overall direction of removing ARC” for Delphi 10.3 Rio and later.

Via [WayBack] Delphi Rio – New IDE Configuration with Search Box – New compiler dialog – Improve code completion – Inline variables – Rafael Dipold – Google+

Hopefully zero-based strings are the next to go…

Related: [WayBack] Directions for ARC Memory Management in Delphi

–jeroen

Read the rest of this entry »

Posted in Delphi, Development, Software Development | 11 Comments »

Hunting for Beyond Compare on your system: bc.bat

Posted by jpluimers on 2018/10/23

For my archive bc.bat it finds Beyond Compare, then starts it with the given command line parameters. It prefers version 4 over version 3 and user settings over system settings:

:begin
@echo off
  setlocal
  IF /I %PROCESSOR_ARCHITECTURE% == amd64 goto :x64
  IF /I %PROCESSOR_ARCHITEW6432% == amd64 goto :x64
  goto :x86
:x64
  :: OS is 64bit
  set hkcuBaseKey=HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare
  set hklmBaseKey=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Scooter Software\Beyond Compare
  
  goto :findBC
:x86
  :: OS is 32bit
  set hkcuBaseKey=HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare
  set hklmBaseKey=HKEY_LOCAL_MACHINE\SOFTWARE\Scooter Software\Beyond Compare
  goto :findBC
:findBC
  :: https://gist.github.com/rojepp/634908
  :: http://stackoverflow.com/questions/5369528/windows-batch-reg-query-key-value-to-a-variable-but-do-not-display-error-if-key
  set SupportedBeyondCompareVersions=3, 4
  for %%v in (%SupportedBeyondCompareVersions%) do (
    for /f "usebackq tokens=2* delims= " %%c in (`reg query "%hkcuBaseKey% %%v" /v ExePath 2^>NUL`) do (
      call :do set bcExe="%%d"
    )
  )
  if not [%bcExe%]==[] goto :foundBC
    for /f "usebackq tokens=2* delims= " %%c in (`reg query "%hkcuBaseKey%" /v ExePath 2^>NUL`) do (
      call :do set bcExe="%%d"
    )
  if not [%bcExe%]==[] goto :foundBC
  for %%v in (%SupportedBeyondCompareVersions%) do (
    for /f "usebackq tokens=2* delims= " %%c in (`reg query "%hklmBaseKey% %%v" /v ExePath 2^>NUL`) do (
      call :do set bcExe="%%d"
    )
  )
  if not [%bcExe%]==[] goto :foundBC
    for /f "usebackq tokens=2* delims= " %%c in (`reg query "%hklmBaseKey%" /v ExePath 2^>NUL`) do (
      call :do set bcExe="%%d"
    )
:foundBC
  if [%bcExe%]==[] ( echo no bc.exe found in registry) else (
    echo bcExe=%bcExe%
    if exist %bcExe% start "Beyond Compare" %bcExe% %*
    if not exist %bcExe% echo not found: [%bcExe%]
  )
:exit
  endlocal
:end
  goto :eof
:do
  ::echo %*
  call %*
  goto :eof

–jeroen

Posted in Batch-Files, Beyond Compare, Development, Power User, Scripting, Software Development | Leave a Comment »

G+ thread: Do i need to create one TFormatSettings instance for every thread?

Posted by jpluimers on 2018/10/23

A very interesting thread at [WayBack] Do i need to create one TFormatSettings instance for each thread that needs it? If i want the same settings (for all threads), th… – Dany Marmur – Google+

It’s about:

Recommended reading!

It made me go back to these style guides (from oldest to newest):

And Stefan Glienke reminded me naming is always hard, so I found back these from a distant past:

Note most of the above Links point to (archives of) Delphi 2007 documentation as the behaviour is that old and that the below identifiers  were not mentioned in the thread.

The FormatSettings variable was introduced in Delphi XE but only documented in XE2 and up.

Until that, other global variables like the [WayBackSysUtils.DecimalSeparator Variable were used.

–jeroen

Read the rest of this entry »

Posted in Delphi, Development, internatiolanization (i18n) and localization (l10), Software Development | Leave a Comment »

Doctors disabled wireless in Dick Cheney’s pacemaker to thwart hacking – Naked Security

Posted by jpluimers on 2018/10/22

Medical devices are still vulnerable, five years after this became public:

Former US Vice President Dick Cheney’s doctors disabled his pacemaker’s wireless capabilities to thwart possible assassination attempts, he said in an interview with CBS’s ̶…

[WayBackDoctors disabled wireless in Dick Cheney’s pacemaker to thwart hacking – Naked Security

I knew they were, but never realised Dick Cheney had a modified one implanted.

Some people are more equal to others…

via: the below video “Freedom In My Heart And Everywhere” from the linux.conf.au 2012 Keynote by Karen Sandler.

–jeroen

Read the rest of this entry »

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

git 2.19.1 on Windows: NullReferenceException during https pull/push/fetch

Posted by jpluimers on 2018/10/19

When using git 2.19.1 on Windows, you will likely get a NullReferenceException during pull/push/fetch operations on https connections.

Easiest workaround is to downgrade to 2.19.0: [WayBack] git pull fatal: NullReferenceException encountered. On an local instance of Bitbucket · Issue #1868 · git-for-windows/git · GitHub

I am seeing the same thing using 2.19.1 against our internal Bitbucket server. Reverting back to 2.19.0 the problem no longer occurs.

Harder workaround is to install the Git Credential Manager 1.18.1: [WayBack] git pull fatal: NullReferenceException encountered. On an local instance of Bitbucket · Issue #1868 · git-for-windows/git · GitHub.

[WayBack] Release Git Credential Manager for Windows v1.18.1 · Microsoft/Git-Credential-Manager-for-Windows · GitHub

Bug Fixes:

  • Fixes Null Reference exceptions when parameters or contentType are not populated

To install the Git Credential Manager, download and double-click the GCMW-1.18.1.exe installer. It is that easy, it will even install Git for Windows 2.17.0 and the Microsoft .Net Framework for you if necessary.

Hopefully that one will integrated in a minor update to git for Windows soon: [WayBack] git pull fatal: NullReferenceException encountered. On an local instance of Bitbucket · Issue #1868 · git-for-windows/git · GitHub

moderately soon, hopefully, there will be a minor version release of Git for Windows that will include the updated GCM v1.18.1. [just need more volunteer time for the PR and tests ;-)
That should eliminate the `Fatal: NullReferenceException” but appears not to fix the #1874https://github.com/git-for-windows/git/issues/1874 delays. (still to hear from the OP if the issue is definitely the AV, or something elese)

If you really dare, you can try the nightly snapshot which already includes GCMW-1.18.1: [WayBack] git pull fatal: NullReferenceException encountered. On an local instance of Bitbucket · Issue #1868 · git-for-windows/git · GitHub

the next official Git for Windows version will have a new Git Credential Manager version. Also, the current snapshot at https://wingit.blob.core.windows.net/files/index.html should have it already.

–jeroen

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

Some links on encrypting configuration files or sections

Posted by jpluimers on 2018/10/18

All encryption comes down to a combination of key management and tooling.

With more and more communication projects going on, encryption of the secrets (passwords, API keys, etc) in configuration files, especially the ones that might end up in (sometimes public) repositories will need my attention some day.

My gut feeling is that an asymmetric solution might work best for these kinds of problems.

Here are some links:

–jeroen

Posted in Development, Encryption, Security, Software Development | Leave a Comment »