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

Archive for the ‘Software Development’ Category

So how does a guy like myself get involved in contributing to GExperts?

Posted by jpluimers on 2017/05/04

Interesting question with some nice hints in the comments there:

[WayBack] So how does a guy like myself get involved in contributing to GExperts?I don’t have a lot a lot of time (or money), but I do have a desire to help. – Joe C. Hecht – Google+

–jeroen

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

Use dumpbin to check if a PE file (dll/exe/…) is x64 or x86

Posted by jpluimers on 2017/05/04

Boy I wish I had known this long ago:

You can use DUMPBIN too. Use the /headers or /all flag and its the first file header listed.

dumpbin /headers cv210.dll

‘find’ can make life slightly easier:

dumpbin /headers cv210.dll |find "machine"
        8664 machine (x64)

Mark McDonald

–jeroen

via: c# – How to find if a native DLL file is compiled as x64 or x86? – Stack Overflow [WayBack]

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

Printing from the Atom editor

Posted by jpluimers on 2017/05/04

Atom is a great editor, but printing from it is still lacking, even though the issue has been opened again.

There is export-html, but it only prints the current source code, not the built-in Markdown Preview or add-on reStructuredText Preview Pandoc packages “Toggle Preview” views.

By name print-atom looks promising, but contrary to the advertised “Print current atom window using print dialog”, it prints the whole Atom UI, which is of no use at all.

The little red icon isn't an adornment. Even though it doesn't look like a button: It's clickable!

The little red icon isn’t an adornment. Even though it doesn’t look like a button: It’s clickable!

Then there is broadcast which at first only worked for me in 1.6.2 but not in 1.7.2. I even removed the whole ~/.atom directory to get it working: to no avail. It finally occurred to me that in the lower right there was a tiny red icon (which was blue in 1.6.2).

Below is the process to fix broadcast, and after that you can live-view from your web browser through http://localhost:8000 either of the rendered source text in the Atom editor, or the Preview pane in the Atom editor.

Even though hardly documented, these are the broadcast settings:

Only enable

Only enable “Broadcast To Others” if you want to access port 8000 from another machine.

Getting broadcast to work again

  • wasn’t caused by changes in the theming between 1.6.2 and 1.7.2 (where lots of colours changed)
  • wasn’t just an adornment: it’s in fact clickable

As soon as you click it you see this in the right pane:

Read the rest of this entry »

Posted in atom editor, Development, Lightweight markup language, MarkDown, Power User, reStructuredText, Software Development, Text Editors | Leave a Comment »

[CMake] choose 32bit or 64bit in visual studio

Posted by jpluimers on 2017/05/03

This might be obvious for CMake regulars, but given the help, I would never have guessed this.

Generate x64:

cmake .. -G"Visual Studio 14 Win64"

Generate x86 is just leaving out the platform away:

cmake .. -G"Visual Studio 14"

In this case they are for Visual Studio 2015 (internally named 14).

The help:

The following generators are available on this platform:
  Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
                                 Optional [arch] can be "Win64" or "IA64".
  Visual Studio 9 2008 [arch]  = Generates Visual Studio 2008 project files.
                                 Optional [arch] can be "Win64" or "IA64".
  Visual Studio 8 2005 [arch]  = Generates Visual Studio 2005 project files.
                                 Optional [arch] can be "Win64".
  Visual Studio 7 .NET 2003    = Deprecated.  Generates Visual Studio .NET
                                 2003 project files.

–jeroen

Adopted from: [CMake] choose 32bit or 64bit in visual studio

Posted in .NET, Development, Software Development, Visual Studio 11, Visual Studio 2002, Visual Studio 2003, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, Visual Studio 2014, Visual Studio 2015, Visual Studio and tools | Leave a Comment »

Lightweight Markup: Markdown, reStructuredText, MediaWiki, AsciiDoc, Org-mode – Hyperpolyglot

Posted by jpluimers on 2017/05/03

A great table with comparison of various constructs in Lightweight Markup: Markdown, reStructuredText, MediaWiki, AsciiDoc, Org-mode – Hyperpolyglot

It works much better than the examples in Lightweight markup language – Wikipedia, the free encyclopedia (which does include more languages).

As I’ve switched to “all source – including docs – should be in text format” years ago, I’m a heavy markdown user, but also use reStructuredText, so this table is of great help.

Reminder to self: reStructuredText does not support strikethrough out of the box.

–jeroen

Posted in Development, Lightweight markup language, MarkDown, Polyglot, reStructuredText, Software Development | Leave a Comment »

Windows 10 Creators update and Delphi debugging don’t go well…

Posted by jpluimers on 2017/05/02

Not sure what the cause and effect are, but various people are having issues running Delphi versions on Windows 10 Creators update. Debugging takes an exceptional long time to load the debuggee.

According to Marco Cantu, it is not limited to Delphi:

“It looks like a change in libraries code relocation, and it affects all debuggers — not just ours.”

A roll-back does make them work again but … there is only a very limited time frame to roll back from Windows 10 Creators update (think days, not weeks).

So for now: if you use Delphi do not install the Windows 10 Creators update unless you:

  • can revert back to a full system backup
  • can roll back in time

Examples:

The the last link cannot be archived, not is publicly accessible, I’ve quoted some parts:

The debugger goes haywire for everyone in our organization with Creators and Tokyo/Berlin. Reverting to Windows Anniversary brings back the sanity.

Debugger problems with Tokyo/Berlin and Creators:

  • App takes a long time to load with modules loading and unloading and re-loading many times
  • IDE freezes
  • Memory consumption of bds.exe explodes, sometimes (> 3GB)

I will attached before and after screenshots showing how modules load and unload and re-load with Windows 10 Creators.

I presume these problems have the same root cause(s) than those in https://forums.embarcadero.com/thread.jspa?messageID=884382

Note that Microsoft is still fledging out issues in Windows 10 Creators Upgrade despite pushing it to more and more Windows 10 machines: [WayBackWindows 10 Creators Update rollout: First phase update – Windows Experience BlogWindows Experience Blog

–jeroen

Read the rest of this entry »

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

instead of x86, msbuild is creating an x64 solution configuration via sln.metaproj – Stack Overflow

Posted by jpluimers on 2017/05/02

Sometimes msbuild will throw an error like this  for an x86 project:

"C:\Users\Developer\Versioned\libssh2\build\libssh2.sln" (default target) (1) ->
(ValidateSolutionConfiguration target) ->
C:\Users\Developer\Versioned\libssh2\build\libssh2.sln.metaproj : error MSB4126: The specified solution configuration "Debug|X64" is invalid. Please specify a valid solution configuration using the Configuration and Platform properties
form="Any CPU") or leave those properties blank to use the default solution configuration. [C:\Users\Developer\Versioned\libssh2\build\libssh2.sln]

Cause:

vsvars64.bat will set the environment variable Platform=x64 but vsvars32.bat will not empty this environment variable.

Easiest is to run set Platform= then run vsvars32.bat.

Adopted from MSBuild creating an x64 solution configuration via sln.metaproj – Stack Overflow [WayBack]:

If you are running this in the Visual Studio x64 command window it will set an environment variable Platform=x64 that will be used by msbuild. You can verify this by running echo in the command prompt you are using.

echo %platform%

So you will need to override the default when using x64 cmd, or run from the x86 cmd.

malexander

–jeroen

Posted in .NET, C++, Development, Software Development, Visual Studio 2015, Visual Studio and tools, Visual Studio C++ | Leave a Comment »

Comparing commits across time – via github User Documentation

Posted by jpluimers on 2017/05/02

To get to the compare view, append /compare to your repository’s path.

This brings you the basic comparison interface which is very flexible: just enter a branch, tag or history marker in the dropdowns for base and compare.

Examples from the user docs:

–jeroen

Source: Comparing commits across time – User Documentation

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

The SSH Port 22 story

Posted by jpluimers on 2017/04/28

The story isn’t a catch-22, but it is still fun to read:

SSH port is 22. The history of how I (Tatu Ylonen) got it. How to configure it through firewalls and iptables.

It also shows how agile the Internet was back then.

Source: [Archive.isSSH Port

Via: [WayBack] “The SSH (Secure Shell) port is 22. It is not a co-incidence. This is a story I (Tatu Ylonen) haven’t told before.” https://www.ssh.com/ssh/port – This is why I Code – Google+

–jeroen

Posted in Development, History, Internet protocol suite, Software Development, SSH, TCP | Leave a Comment »

FMX.Dialogs basically blocks mixing VCL with FMX…

Posted by jpluimers on 2017/04/27

Nice find:

Stefan Glienke+4

Look into the initialization block of FMX.Dialogs. The call to ActivateClassGroup(TFmxObject); turns off all the TRegGroups that don’t contain at least one type that inherits from TFmxObject which also happens to be the group that you register your form class to. GetClass then ignores such groups.

I don’t have the slightest idea what the intention behind all that code is but it certainly is one of the reasons why you cannot mix FMX and VCL officially.

In response to:

I have an VCL application. I need to register some form classes at run time. This is done in the form’s unit implementation section :

Initialization

If GetClass(‘TfmConnectiondialog’) = Nil Then
Classes.RegisterClass(TfmConnectiondialog);

Suddenly my class wasn’t registered anymore. GetClass(‘TfmConnectiondialog’) was always nil and Classes.RegisterClass had no effects.

After some long search, I’ve found that I’ve inadvertently added an FMX.Forms in one of my unit. This was the culprit. Replacing FMX.Forms with VCL.Forms solved my problem.

Behaviour is really strange, why Classes.RegisterClass didn’t throw any exception ? Is this a “Bug” or is this “as expected” ?

–jeroen

Source: Hello, I have an VCL application. I need to register some form classes at ru… [WayBack]

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi XE7, Delphi XE8, Development, Software Development | 1 Comment »