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 ‘Development’ Category

The Delphi Pipe – twm’s blog

Posted by jpluimers on 2017/05/09

The Delphi Pipe got revived:

The Delphi Pipe is an RSS feed that combines other RSS feeds from various Delphi blogs.

Source: [WayBackThe Delphi Pipe – twm’s blog

Of course there are also [WayBack] DelphiFeeds (which seems unmaintained, but a truckload of people have it in their RSS reader) and [WayBack] BeginEnd.net (slowly but steadily growing).

I wish there was an RSS reader that could filter out duplicate posts so I can just follow all three without reading duplicates.

Related:

–jeroen

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

Building `libssh2` for Windows (Win32/Win64) is a lot harder than I hoped for

Posted by jpluimers on 2017/05/09

Building libssh2 for Windows (Win32/Win64) is a lot harder than I hoped for.

There were no instructions on their website, there was the occasional “use CMake” at #IRC and that was about it.

Of course running just CMake doesn’t work and getting it working involves a lot of non-descriptive error messages, cursing and fruitless searches for them just bumping into “me too” threads not really providing the solution.

I tried building OpenSSL but after building, no `lib` directory appears so I cannot satisfy the dependencies. Not sure what OpenSSL would bring as I could not find any documentation about it either, so I’ll leave it at that.

Might be that `make test` for OpenSSL doesn’t succeed because some vague non-explained error which is odd when doing this on an almost prestine VS 2015 Community Edition VM.

But I’ll take that up with the OpenSSL people one day.

Oh the joy of Open Source…

Below are the steps (below the –more– mark a gist with the most recent version).

The core are these:

  • you need git, Visual Studio and CMake
  • use CMake to generate project files, msbuild to build (CBuild cannot build any more)
  • After a Win64 build you have to reset the platform to create a Win32 build

These links helped a lot some in the positive, others in the negative sense:

  1. Install Visual Studio 2015 community edition from https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx (as of writing:http://download.microsoft.com/download/D/2/3/D23F4D0F-BA2D-4600-8725-6CCECEA05196/vs_community_ENU.exe or http://download.microsoft.com/download/b/e/d/bedddfc4-55f4-4748-90a8-ffe38a40e89f/vs2015.3.com_enu.iso )
  2. Download CMake via https://cmake.org/download/ back then https://cmake.org/files/v3.6/cmake-3.6.2-win64-x64.msi
  3. Install and ensure to add CMake to the PATH for all users:

https://www.dropbox.com/s/ss5xke97iy4yyka/Screenshot%202016-09-13%2009.36.54.png?raw=1

  1. Run this script on a new command-line:
    git clone https://github.com/libssh2/libssh2.git
    pushd libssh2
    mkdir buildWin64
    pushd buildWin64
    :: Generate build for MSVS 2015
    cmake .. -G"Visual Studio 14 Win64" -D"BUILD_SHARED_LIBS=1"
    
    :: this fails bitching about v100 not being there:
    :: cmake --build . --config "Visual Studio 14 Win64"
    :: this just works:
    set Platform=
    call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"
    call msbuild libssh2.sln
    dumpbin /headers example\Debug\libssh2.dll | find "machine"
    popd
    mkdir buildWin32
    pushd buildWin32
    :: Generate build for MSVS 2015
    cmake .. -G"Visual Studio 14" -D"BUILD_SHARED_LIBS=1"
    
    set Platform=
    call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"
    call msbuild libssh2.sln
    dumpbin /headers example\Debug\libssh2.dll | find "machine"
    popd
    popd

Source: Building libssh2 for Windows (Win32/Win64) is a lot harder than I hoped for

–jeroen

Read the rest of this entry »

Posted in Communications Development, Development, Internet protocol suite, OpenSSL, Power User, Security, SSH, TCP | Leave a Comment »

ext3 – How to tell the language encoding of a filename on Linux? – Server Fault

Posted by jpluimers on 2017/05/08

From ext3 – How to tell the language encoding of a filename on Linux? – Server Fault  [WayBack] I learned a few things:

  • filename encoding on Linux is undetermined – the file system just assumes a byte array of characters
  • FTP and SFTP suffer from this as well (SFTP is based on SSH which now prefers UTF-8 [WayBack])

A good default is UTF-8, but it’s never guaranteed.

Two tools can help to determine the encoding of a filename:

  • convmv [WayBack] converts filenames from one encoding to another
  • chardet (Python) The Universal Character Encoding Detector

–jeroen

Posted in *nix, *nix-tools, Development, Encoding, Power User, Software Development, UTF-8, UTF8 | Leave a Comment »

reStructuredText Markup Specification – sections (that translate to HTML headings)

Posted by jpluimers on 2017/05/05

So I won’t forget; source: reStructuredText Markup Specification – Sections

[2]

The following are all valid section title adornment characters:

! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~

Some characters are more suitable than others. The following are recommended:

= - ` : . ' " ~ ^ _ * + #

Rather than imposing a fixed number and order of section title adornment styles, the order enforced will be the order as encountered. The first style encountered will be an outermost title (like HTML H1), the second style will be a subtitle, the third will be a subsubtitle, and so on.

Below are examples of section title styles:

===============
 Section Title
===============

---------------
 Section Title
---------------

Section Title
=============

Section Title
-------------

Section Title
`````````````

Section Title
'''''''''''''

Section Title
.............

Section Title
~~~~~~~~~~~~~

Section Title
*************

Section Title
+++++++++++++

Section Title
^^^^^^^^^^^^^

When a title has both an underline and an overline, the title text may be inset, as in the first two examples above. This is merely aesthetic and not significant. Underline-only title text may not be inset.

A blank line after a title is optional. All text blocks up to the next title of the same or higher level are included in a section (or subsection, etc.).

All section title styles need not be used, nor need any specific section title style be used. However, a document must be consistent in its use of section titles: once a hierarchy of title styles is established, sections must use that hierarchy.

Each section title automatically generates a hyperlink target pointing to the section. The text of the hyperlink target (the “reference name”) is the same as that of the section title.

I prefer this order because of decreasing “greyness”:

# * = + ^ ~ - : . _ ` ' "

–jeroen

Posted in Development, Lightweight markup language, Power User, reStructuredText, Software Development | Leave a Comment »

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 »