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

RAD Studio 10 next stop: Berlin (via: The inheritance tree of all Fire Monkey objects) but would you really trust it?

Posted by jpluimers on 2016/03/22

Apart from the very interesting poster: the next stop is RAD Studio 10.1 Berlin Version 24.0.22718.6766.

Apparently, I missed the previous RAD Studio 101. Berlin rumour and Tim Anderson mentioning Berlin in New Delphi and C++ Builder Roadmap promises Linux server support « Tim Anderson’s ITWriting as in the Delphi roadmap for 2016 it’s still called BigBen.

The docwiki start page is there, just not open for the public yet: http://docwiki.embarcadero.com/RADStudio/Berlin/en/Main_Page. Like right before Delphi 10 Seattle, it’s only available for writer, l10n, RADBeta, ConnectBeta, Employee.

Similarly, https://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RADStudio_Berlin/ is not there: it was added 20160311.

Still the TLS issues have not been solved, so the very bad SSLLabs rating of F stays stays the same as at before the start the 10 Seattle era.

Also apart from some comments, there still is no central official statement of the recent web-site breaches.

I’m not sure what an eminent new Delphi version can be of use when you can’t be sure your account data is secure and the product download is valid (i.e. not tampered with).

In other words: would you really trust a new Delphi version? I won’t yet, at least not for now.

–jeroen

Source: The inheritance tree of all Fire Monkey objects.

RAD Studio 10 Berlin FMX hierarchy

RAD Studio 10 Berlin FMX hierarchy

Posted in Delphi, Delphi 10 Seattle, Development, Software Development | 1 Comment »

The Default magic function in Delphi

Posted by jpluimers on 2016/03/17

Stefan Glienke worded it perfectly: Default(typeIdentifier) is a “magic” function that is implemented into the compiler and causes it to generate the correct code – like for records with managed fields it generates a call to FinalizeRecord and some instructions to zero the remaining fields.

Source: I know I can write MyRecordVar := Default(TMyRecordType) because I asked a qu…

–jeroen

Posted in Delphi, Delphi 10 Seattle, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »

Delphi: disable or change your welcome page to not use the Embarcadero site (as that site has been hacked twice this weekend)

Posted by jpluimers on 2016/03/14

Initial hack

Initial hack – image via the forums server.

This weekend, the Embarcadero web site was hacked by AnonCoders. Not once (see also [WayBack] G+ link and [WayBackDelphiPraxis link and [WayBackimage) but at least twice (see also [WayBackG+ link and [WayBackimage and [WayBackDelphi Praxis link and [WayBackimage) where the initial hacked simple text “Hacked By AnonCoders ~ Cyber Caliphate” after having been reverted back to the site – hopefully by Embarcadero staff – was replaced with [WayBack] more graphical content later on.

Hack presenting itself in the IDE

Hack presenting itself in the IDE – image via the forums server.

The Welcome Page inside the Delphi IDE uses the Embarcadero web site, so the Delphi IDE Welcome Page was also affected (see also [WayBackthis G+ link).

Because the IDE uses this on-line content, potentially any code could be executed inside the IDE (apart from that page being loaded over http, so any man-in-the-middle could abuse this, but I digress). This imposes a security risk as many developers run the IDE from accounts having more rights than the average user.

Read the rest of this entry »

Posted in Delphi, Delphi 10 Seattle, Delphi 2005, Delphi 2006, 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 | 13 Comments »

Delphi: forward declaration of classes and interfaces, but no records.

Posted by jpluimers on 2016/02/24

As Delphi allows to forward declare both classes and interfaces, people often wonder about records.

The short answer: you can’t forward declare record types.

The long answer: you can’t directly, but you can indirectly either reference based (through pointers or callbacks with const parameters) or operator based (through operator overloading).

I think the reason forward declaration of classes and interfaces is possible because they both are reference types, so referring does not impose copying.

Anyway, the trick is this:

You can’t have forward declarations for record types. Define both Implicit operators in the second type

Source: delphi – How do I define implicit conversion operators for mutually dependent records? – Stack Overflow

–jeroen

via:

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, Software Development | Leave a Comment »

FastMM4 moved from SF.net to GitHub – pleriche/FastMM4@245706d

Posted by jpluimers on 2016/02/23

Updated the homepage in the source and readme to reflect the move to GitHub.

Source: pleriche/FastMM4@245706d

In related news: Primož Gabrijelčič is contributing to it as well: his pull request got processed https://github.com/pleriche/FastMM4/pull/1 implemented FastReallocMem logger.

–jeroen

via: Edwin Yip Delphi Developers

 

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

A script to check the frequency of Oracle log switches | Oracle DBA tips

Posted by jpluimers on 2016/02/17

A wile ago, I had a this error when trying to get the TIME portion of a DATE column:

ORA-00904: "TIME": invalid identifier

This doesn’t work in Oracle, even though when you search for Oracle convert DATE to TIME you end up at this page listing TIME as a function: 12.7 Date and Time Functions. Alas, that page is for MySQL which is owned by Oracle for a while now.

Back to the query which was like this where date_column was of type DATE.

SELECT 
    id,
    date_column, 
    TIME (date_column)
FROM some_table

That DATE type actually stores date+time, and since it was filled with Delphi TTime values, the date parts would always be “1899-12-30” (yes, I like ANSI DATE and TIMESTAMP formats). Oracle doesn’t get that, so I wanted to get the time portion.

Solutions:

Read the rest of this entry »

Posted in Database Development, Delphi, Delphi 10 Seattle, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, OracleDB, Software Development | Leave a Comment »

Happy birthday Delphi, have some wine

Posted by jpluimers on 2016/02/14

Now that you’re 21, have a glass of wine and watch this great presentation by Warren Postma which he made for last years birthday:

–jeroen

Posted in Delphi, Delphi 1, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »

BLDN: December 2015 XE7/XE8 Update Subscription Update got released 20160211 with backported 10 Seattle fixes

Posted by jpluimers on 2016/02/13

Seems they got only released just yesterday because of the QA effort taking a long time. But it’s good news for Delphi/Rad Studio/C++-Builder Update Subscription members: some fixes are now back-ported to 2 Delphi versions. Which is a new milestone in support from Embarcadero.

Anyway: BLDN.

Note that the list of fixes is at the bottom of these pages:

Source: RAD Studio Hotfixes for XE8 and XE7 with 10 Seattle fixes

I also found out that I never updated the links for XE8 update 1 downloads (I did the original XE8 links Delphi XE8 is out with version 22.0.19027.8951; Spring4D is almost ready. « The Wiert Corner – irregular stream of stuff) so there they are:

–jeroen

Posted in Delphi, Delphi 10 Seattle, Delphi XE7, Delphi XE8, Development, Software Development | 2 Comments »

You find a lot of stuff when you are reorganizing your office #TP6 Library…

Posted by jpluimers on 2016/02/11

You find a lot of stuff when you are reorganizing your office #TP6  Library….

I must clean out my closets as well. I think I have similar stuff lying around.

–jeroen

Posted in Delphi, Development, History, Software Development, Turbo Pascal | Leave a Comment »

When your license check is faulty and causes customers to loose work it’s a cardinal sin

Posted by jpluimers on 2016/02/04

I wrote about this before, named it a cardinal sin too, but I seem to have to repeat this:

When your product thinks the license is validate and quits without allowing the customer to save its work, then you’ve committed a cardinal sin.

Yes, I can talk about cardinal sins: I’ve been named after the artist Hieronymus Bosch (:

For me it is OK if a product checks for binaries that do not to the product (and not signed by the vendor) in the product directories and fails to start, or to present a nag screen that takes a while to disappear, or even to limit functionality.

But:

  1. The product should always tell why the license check failed.
  2. The product never can force the customer to loose work.
  3. The documentation should show failure situations (not just the OK counterparts).

Given some recent posts and the fact that over the course of 10 different versions I lost days of work and at conferences I usually get multiple questions from people having suffered from this, I really had to bring this up again.

Read the rest of this entry »

Posted in Delphi, Development, Licensing, Software Development | 7 Comments »