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

Archive for the ‘Delphi’ Category

Delphi XE2 sanctuary lib galore…

Posted by jpluimers on 2016/11/02

Anyone who knows how to work around this? It happens every once in a while right after logging in over RDP to a VM with running Delphi XE2 (but similarly also in other Delphi versions like XE7):

---------------------------
Error
---------------------------
Access violation at address 74FD82A4 in module 'shell32.dll'. Write of address 00000014.
---------------------------
OK Details >>
---------------------------

With the below stacktrace including the sanctuary which always give me the creeps.

http://qc.embarcadero.com/wc/qcmain.aspx?d=139126 (which – like all IDE submitted bug reports – is private hence the copy at https://gist.github.com/jpluimers/6d8c0f29be107a83e48a5fd035900f74 ).

Read the rest of this entry »

Posted in Delphi, Delphi XE2, Delphi XE7, Development, QC, Software Development | 2 Comments »

nst/JSONTestSuite: A comprehensive test suite for RFC 7159 compliant JSON parsers

Posted by jpluimers on 2016/11/01

Cool: nst/JSONTestSuite: A comprehensive test suite for RFC 7159 compliant JSON parsers

Which is the result of the presentation seriot.ch – Parsing JSON is a Minefield 💣[WayBack]

Both the tests and presentation are well worth reading.

The graph gives me ambivalent feelings and make me wonder how various .NET and Delphi based JSON parsers stack up.

I wonder how Delphi and C# libraries stack up against these results especially since questions like What is the best JSON library to use for Delphi 10.1? To read and write JSON. – Godfrey Fletcher – Google+ [WayBack].

Hopefully the results by David Berneda will be published soon: I’ll do a quick test with TeeBI json import and the different libraries (System.Json, SuperObject etc)

Edit: Stefan Glienke mentioned he wrote a DUnit testsuite at http://pastebin.com/k5ktBxh9 [WayBack] that shows the built-in TJSONObject [WayBack] parser fails at least 25 of the tests.

–jeroen

via: David Berneda – Google+ [WayBack]

Read the rest of this entry »

Posted in .NET, C#, Delphi, Development, JavaScript/ECMAScript, JSON, Scripting, Software Development | 1 Comment »

EKON 20 – anniversary edition of the famous Delphi related conference with lots of English sessions

Posted by jpluimers on 2016/11/01

Next Monday-Wednesday (7th till 9th of November) will the the 20th edition of the famous Delphi related EKON conference and post-conference workshops at the Hotel Meliá Düsseldorf.

It will be a blast, not the least because it’s an anniversary.

There are still a few spots left, so drop me a note if you’ve not reserved yet as I can get you a discount code.

Below is the the speaker line up. It’s an awesome bunch of guys and there’s plenty coverage for English speaking attendees: English sessions are below the speaker list.

Speaker line up:

  • Andrea Magni – Freelancer
  • Arnaud Bouchez – Synopse
  • Arne Limburg – OPEN KNOWLEDGE
  • Bernd Ua – probucon Business Consulting
  • Daniel Wischnewski – OCTAX Microscience
  • Girish Patil – Gnostice
  • Jens Fudge – Archersoft Aps
  • Jeroen Pluimers – Wiert.me
  • Joachim Dürr – Joachim Dürr softwareengineering
  • Jörg Neumann – Acando
  • Marco Cantù – Embarcadero Technologies
  • Marco Frodl – Thinktecture
  • Matthias Eißing – Embarcadero Germany
  • Max Kleiner – kleiner kommunikation
  • Peter Schütt – TimoCom Soft- und Hardware
  • Ray Konopka – Raize Software
  • Rüdiger Kügler – Wibu-Systems
  • Sebastian Gingter – Thinktecture
  • Stefan Glienke – Aagon
  • Steffen Jahr – Thinktecture

English sessions and workshops:

Read the rest of this entry »

Posted in Conferences, Delphi, Development, EKON, Event, Software Development | 1 Comment »

Wow – people still working on Delphi 6 and 7 based code! Got new votes for answer to get rid of empty DDP files

Posted by jpluimers on 2016/10/27

Only Delphi 6 and 7 used DDP files (still a nice concept: diagrams to help understanding your DFM files)

A long time ago, I wrote a stackoverflow answer and later a blog post on how to find and get rid of empty DDP files as both Delphi versions had the habit of creating them:

The blog post was when I helped moving an ancient Delphi project to a more modern Delphi version (due to some personal stuff going on I never finished it) and I never used such old Delphi stuff again.

This week that answer got quite a bunch of upvotes on the stakcoverflow answer which means people are still using Delphi 6 and 7 based code. Who’d ever thought that 15 year old versions would still be used today?

–jeroen

Posted in Delphi, Delphi 6, Delphi 7, Development, Software Development | 9 Comments »

List of “Plain Text Offenders”; hopefully someone publishes a list of https offenders too

Posted by jpluimers on 2016/10/24

This Plain Text Offenders site lists email screenshots of organisations sending back plain-text passwords they kept on file (According to Robert Love, Idera/Embarcadero should be on the list as well).

It is one of the most horrible things that can be done for a password.

Business and IT do many horrible things, so I really hope someone will start a similar site about SSL Labs F-rated domains. The ones that are so broken that they degraded their https to virtually plain-text http quality.

In the past, a notorious example of this was Embarcadero, who in the past managed to get F-rating or had wrong configurations on the below domains, therefore preventing me from logging in and getting new products from them (which is far worse than them not cleaning up their bug database):

Read the rest of this entry »

Posted in Delphi, Development, Hashing, https, OpenSSL, Power User, Public Key Cryptography, QC, Security, Signing, Software Development | 3 Comments »

Tim Anderson did have Amazon S3 to work from Delphi in 2006

Posted by jpluimers on 2016/10/20

I will probably need this in the future as occasionally I still do Delphi work:

–jeroen

Posted in Delphi, Delphi 2006, Delphi 7, Development, Software Development | 2 Comments »

Loading your MAINICON and VersionInfo through plain text .RC resource files.

Posted by jpluimers on 2016/10/19

I like repositories to have as much of the information in text format.

Delphi traditionally puts both the MAINICON and the VersionInfo resources in a binary .res file and also updates that file on almost every recompile.

There are quite a few posts explaining how to get them from text, but a version controlled example works best for me, so there is one at https://github.com/jpluimers/atom-table-monitor/blob/master/ATOMScannerConsole

The trick is to:

  1. put your resources in a text RC file that can be compiled through a resource compiler
  2. add these to your Delphi project via the project manager, so it generated RcCompile elements which instructs the build process to run the resource compiler first:


<RcCompile Include="MAINICON.rc">
<ModuleName>MAINICON.rc</ModuleName>
<Form>MAINICON.res</Form>
</RcCompile>
<RcCompile Include="VERSIONINFO.rc">
<ModuleName>VERSIONINFO.rc</ModuleName>
<Form>VERSIONINFO.res</Form>
</RcCompile>

Here are the example files:

Read the rest of this entry »

Posted in Delphi, Delphi 10 Seattle, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, QC, Software Development | 2 Comments »

IMPLICITBUILDING in your .dpk files: a Delphi XE2 specific thing

Posted by jpluimers on 2016/10/18

While upgrading a truckload of Delphi stuff for a client, I came across the IMPLICITBUILDING directive in a few .dpk files that Delphi XE2 sometimes inserts but XE8 doesn’t.

This appears to be a Delphi XE2 specific thing that in younger Delphi versions has been solved properly SolarWind‘s answer on Stack Overflow:

 The compiler directives which appear between the $IFDEF IMPLICITBUILDING and $ENDIF are normally passed as parameters by the compiler when explicitly compiling a package. Because these options change based on the configuration (debug / release) and target platform (Win32, Win64, OSX32) it’s problematic to have them statically defined in the package project source. When defined in the project source they will always override the options passed by the compiler. The $IFDEF prevents these options from being used during explicit compilation.

Source: Delphi XE2: What is the purpose of IMPLICITBUILDING directive found in package – Stack Overflow

and comment by Andreas Hausladen:

That seems to be a workaround for the problem that compiling packages with the msbuild script ignored all dproj compiler options because they were read from the dpk file by the compiler.

Some more references (I’ve saved them in the WayBack machine as the forums auto-expire posts):

–jeroen

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

Delphi – unmangle names in BPL’s – Stack Overflow

Posted by jpluimers on 2016/10/12

Check out $(BDS)\source\cpprtl\Source\misc\unmangle.c – it contains the source code for the unmangling mechanism used by TDUMP, the debugger and the linker. (C++Builder and Delphi use the same mangling scheme.)

This has been around as long as BCC itself. However the file was called um.c instead of unmangle.c in older versions

Source: [WayBackDelphi – unmangle names in BPL’s – Stack Overflow both by User Moritz Beutel.

It’s the same mangling used in the TD32/TDS and MAP symbols.

And neede to improve https://github.com/jpluimers/map2dbg (which is my fork of https://github.com/andremussche/map2dbg) which contrary to it’s name also supports TDS/TD32 conversions in tds2pdb. The code is C# and works in virtually any Visual Studio version of 2012 and younger.

–jeroen

 

Posted in Debugging, Delphi, Development, MAP Symbol Information, Software Development, TD32/TDS Symbol information | Leave a Comment »

Real nullable types will probably never make it to the language, but wel can still dream

Posted by jpluimers on 2016/10/06

Allen Bauer (ex Delphi R&D team) wrote the brilliant piece about a year and a half ago. We can still dream, right?

Allen Bauer, May 25, 2015

Current working theory of Nullable<T>.

Nullable<T> = record

property Value: T read FValue; default;

end;

Using the default directive to “hoist” the operators of “T“. Currently the default directive only works for array properties by “hoisting” the ‘[]‘ operator. Marking a non-array property with default will make the containing type behave as that type.

This, coupled with some intrinsic compiler knowledge of the Nullable<T> type will make Nullable<T> work without any addition of keywords or other standard functions or procedures.

Using the “default” directive on a non-array property will work for any type, except for having the null-propagation semantics.

When considering language features, I try and not only make it work for the intended purpose, but also broaden reach of any supporting feature. In the above scenario, even user-defined operators on “T” will be properly hoisted and used.

This was part of a very interesting G+discussion at Delphi’s New Feature Desired: Nullable Types and Null Propagation….

It covered topics like these:

–jeroen

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