Marco Cantu

Syndicate content
Techie Italian Blogging on Delphi and More
Updated: 1 hour 51 min ago

Two More Days for the RAD Studio 2015 Developers Survery

Thu, 08/27/2015 - 02:55

The yearly RAD Studio developers survey is closing in 2 days. If you can find the time to participate, we'd appreciate. And here are a couple of tidbits from it.

But first of all (and before you continue reading) if you haven't already done so, take the survey at . We know it is time long and time consuming and really appreciate your input. If you don't have the time, we understand.

Now, if you have taken the survey and had the patience to go to the end, you might have noticed a fun, trivia question asking for your favorite RAD Studio variable or type name. These are the answers so far:

  • Global variable ReportMemoryLeaksOnShutdown is winning with 41% of the votes
  • The exception type EProgrammerNotFound is close second with 37% of the votes

I'm really disappointed that the enumerated values Elf, Dwarf, and Wizard in TDeviceClass got less than 8%. I like those and the way they are documented in the help file.

More seriously, we generally don't share survey data but there are a couple of (temporary) results worth mentioning, considering these are not absolute facts but depend on those who responded, of course, who are mostly "active" customers even if often using versions released years ago)
  • FireDAC is now the most used database access library
  • Microsoft SQL server and Mongo DB are the preferred relational and NoSQL databases
  • Parallel programming library is the favorite RTL extensions done in recent years

Overall, we had a good response rate, but, again, we'd appreciate having even more. And a few extra votes for the elves ;-)


Categories: News, Blogs, and Tips

Delphi Blogs of the Week/Month #33

Mon, 08/24/2015 - 08:25

Lots of news, despite the summer month, and also a recap of things I already blogged about, in case you were taking some week off. And the first sneak peaks to coming features...

The Yearly Survey is Open

As I already blogged about, take the yearly survey THIS WEEK

Coming Soon to RAD Studio...

If you want to know all about the new, coming release sign up to the launch webinar,

Summer Product Announcements


Konopka Signature VCL Controls:

CodeSite now from Embarcadero:

My Object Pascal Handbook now in print:

Other Recent Blog Posts

Craig Chapman has a long, detailed, and must read article on "Migrating your project from older versions of Delphi. The pitfalls." See

Windows 10 Developers White Paper by Embarcadero, introduced in my blog at

If C++ IDE code editor structure windows is blank on Windows 10 machine, here is a workaround by David I:


That's all for now, stay tuned for more RAD Studio coming soon information in the coming days, and don't forget to take the survey and sign up for the webinar.



Categories: News, Blogs, and Tips

Windows 10 Developers White Paper by Embarcadero

Fri, 08/21/2015 - 07:26

Embarcadero has released a white paper titled "Windows 10: The Big New Opportunity for Developers", explaining why Windows 10 matters and why RAD Studio is well positioned to serve the Windows 10 developer community.

You can find the white paper (after filling in your contact info) at

The white paper has the following sections:

  • What is Windows 10?
  • What’s new in Windows 10?
  • Windows 10 and RAD Studio
  • Project Centennial: bringing desktop apps to the Windows Store
  • Getting ready for Windows 10

It has been written by an external (and independent) technical expert and includes a lot of background information and technical details. Worth reading for everyone moving or considering to move to Windows 10... which should be all of the Windows developers out there!

PS. Sign up for the webinar "Ride the Windows 10 Release Wave" on September 2nd,, which will provide a preview of the features in the NEW VERSION OF RAD STUDIO to further enhance Windows 10 support... and not only, given the new release will include many other compelling features.


Categories: News, Blogs, and Tips

RAD Studio 2015 Developer Survey is Live

Wed, 08/19/2015 - 02:50

As I already blogged on the Embarcadero community site at, the 2015 edition of the yearly RAD Studio, Delphi, and C++Builder developers survey is available and will remain open 10 days, until August the 28th. The survey has 100 questions divided in 18 pages and we estimate it can take 30 to 45 minutes to take it.

This is the link:

In case you don't have time to go over all sections, you can skip a page, as only a limited numbers of questions require an answer to continue. In this case, please complete the pages you are most interested in. Of course, we'll appreciate if you have time to complete all pages.

We know your time is valuable and so we greatly appreciate your participation in this annual survey, which will significantly affect the product development and planning for the next 18 months. There are also new questions this year to help us better understand how you are using the product.

Categories: News, Blogs, and Tips

The Story of the High Fix Rate of RAD Studio Bugs

Mon, 08/17/2015 - 08:09

Here is an overview of the process the RAD Studio team uses for processing bugs reported by customers, and the current status. Over the recent years, the effort in fixing bugs and issues reported by customers has increased significantly. We have numbers from our internal bug tracking system that can shed some light. 

Before we get to those numbers, however, it is important to understand how the RAD Studio team tracks and manages bugs, how they are categorized and processed. I won’t get to the details, but an overview will help explain the rest of the story.

From Quality Central to Quality Portal

For many years, the customer-facing tool for reporting bugs was hosted as Quality Central at This was an internally developed bug-tracking tool that mapped to the internal bug tracking system, RAID. It is still there, but don't use it any more.

Over the years, RAID was replaced with an instance of Atlassian Jira (, and Quality Central was remapped to it. Since last year, the team introduced the new Quality Portal (, which is also based on Jira but has different configurations and settings. The current flow from Quality Portal to the internal system and back is very smooth and it is significantly improving the communication between the team and customers reporting bugs.

Bugs Flow and Status

The second information worth knowing, before looking to the actual data, is the flow up bugs and their status over time. For this, I’m considering the current system (there were differences in the previous combinations).

When a bug gets reported, it is copied in the internal system and is validated by a QA (Quality Assurance) team member. He might open it and send to the proper developer, close it because it is not considered a bug but the expected behavior, a “test case” error, close because it cannot be reproduced, open it as a feature request for future consideration, ask for more information to the bug reporter, close it as duplicate of an existing issue… and a couple of other scenarios.

At that point, if the bug is open, it is assigned to a developer, who can provide a fix for it, but also suggest a temporary workaround, can decide this is expected, or suggest merging it with future work. An individual developer doesn’t actually do this process alone: There are team meetings, “bug council” meetings, and many steps to access and re-evaluate over time the priority of issues.

There are a couple of further considerations here. The first is that when a bug is closed internally, its status is not immediately reflected in the public system. The reason is simple: Telling a customer the bug is closed but he or she cannot get the fix would be of no value. The bug is marked fixed in the public system when a fix including the bug is released. This is why in the public system there are huge spikes of fixed followed by periods in which it seems nothing is done. The internal system, instead, tells a more complete story.

The second consideration is that a significant number of bug reports that are not considered “errors” in the current implementation, but requests to extend a given capability are kept in the system. While internally tagged as “feature requests” they stay open and look like bugs not being addressed. In theory we could close them indicating the feature works as "currently" designed, and open a separate internal request for enhancements.

The last and final consideration is here we are looking to publicly reported bugs, but you have to consider that the majority of bugs is reported internally by the QA team, other developer, or internal users (incuding myself). Our goal and more consistent effort, of course, is to fix bug before the software is released. So the internal numbers tells a different story, but for this blog post we are focusing only on bugs reported by customers.

Let’s Get to the Data

With this picture in mind, I’ve recently dug some data and some graph that help understanding the current status and the extra effort done recently on RAS Studio quality.

Faster Resolution Time. The first graph shows the yearly average resolution time over the last 4 years. This is how many days it takes on average to resolve an issue. Thinks are improving significantly, I’d say.

70% of Reported Bugs Have Been Solved. If we consider all bugs that have been reported over the same time frame (from 2012) and came from customers, we get a real picture of the effort. If you add closed and resolved issues, it’s a 71% of the total. Many of the re-open issues are also partially closed (they might not be optimal or complete solutions). Also among the open issues there are 279 (at a recent count) marked as feature requests, which brings the real number of open bugs further down.


There is certainly much more information we can dig in our system to show how many publicly reported bugs have been fixed over time in the various product areas. The new public bug tracking system is also making it easier to follow the bugs status and it’s ensuring a better communication between customers, quality assurance team, and development team.

The RAD Studio team is focused on further improving the process and devoting more resources in fixing issues. The trends have been encouraging, but this doesn’t mean we think our effort is good enough and we are going to stop here. On the contrary, we see a positive trend and want to keep focused on that direction, increasing the timeliness of bug fixes, their numbers, and (which is what really matters) the overall product quality.

PS: Clarification on Closed Vs. Fixed Issues

Some of the comments (including a few I didn't approve) hint to the fact that not all "fixed" issues have been specifically addressed by the team, given some might have been duplicate or coud have ended as being considered "test case errors". So I dug some extra information. Out of that bucket of closed bugs, over 3,200 individual and distinct issues have been fixed with actual changes in code. Wiht is roughly half of all of the issues that have been addressed. 


Categories: News, Blogs, and Tips

Object Pascal Handbook Now in Print

Fri, 08/07/2015 - 09:32

My latest book, Object Pascal Handbook, is now available in print on Amazon and other outlets. I finished the book 2 weeks ago, got my proof copy earlier this week, and given it was good, I gave it the green light. The book, in fact, is self-published through CreateSpace, where it is available at  (this is the online store I earn more from, but Amazon is also quite good on margins).

On the site the book is  (and already selling, given it is going up in places in the "Langauges and Tools" category under programming). You can buy it also from the UK site ( and the German one ( in which case I understand they print the book in Europe and ship locally. Other Amazon stores should have it, and other non-Amazon sites should get it as well in the coming weeks.

Cover price is 46.50 US Dollars, 31.50 UK Pounds, 43.50 in Euro (but Amazon has it a little higher). The final book is well over 500 pages.

More information is at  although I still need to udpate that page with the buy links, the complete TOC and the index, and more information. Should be done in the coming days. Along with sharing more of the source code of the demos.

The ebook remains a free download for XE7 and XE8 registered users, and should be updated with the complete version (3 more chapters from the last draft) shortly. I'm considering making it available as a paid ebook as well, but not immediately.


Categories: News, Blogs, and Tips

New BeaconFence for RAD Studio

Tue, 07/28/2015 - 08:25

Beside announcing the deal with Raize Software (see my previous blog post), today we are announcing a new internally developed components focused on beacon fencing, that is a new technology for tracking mobile user indoor. You can read all about BeaconFence at:

In short, this is a technology based on beacons, that lets developer graphically design areas within an indoor building (a large store, a restaurant, a mall, a sports facility...) and define actions and event that fire when a user enters or exists the given area. The image below of the map editor gives you a feeling of the product, which is a component with some specific and very complex design time editors.

Again, head to the product page for more information and check our the "pay-per-use" pricing. You can sign up the free plan for BeaconFence, get the component, build and deploy a simple scenario. For more complex solutions, there is a deployment fee depending on the size of the building and related factors.

One of the reasons we are particularly proud of this product and this technology is that BeaconFence is the first commercial ready-to-use beacon fencing solution for software developers available today.

Categories: News, Blogs, and Tips

Embarcadero Buys Raize Components and CodeSite

Tue, 07/28/2015 - 08:15

In case you don't know, Ray Konopka has been from the early days of Delphi one of the leading authorities on components development, thanks to his classic components development book, the countless Delphi conferences he has spoken about this subject (along with UI design and other VCL technologies) and the great set of high-quality components he built and sold as Raize Components. Ray has done a lot more with Delphi, in terms of tool, training, consulting and business development, and he is one of the Delphi community gurus.

This is why I'm extremely happy to see this acquisition by Embarcadero Technologies of his flagship components and his CodeSite logging tool (the light version of which already ships with RAD Studio). Embarcadero starts selling these components today. The components have been renamed as "Konopka Signature VCL Controls". The CodeSite Logging System keeps its existing name and is available for RAD Studio but also Visual Studio. Both can be bought today, along with subscription, from Embarcadero web shop and from our partners.

You can read the complete press release at

What should I add? Stay tuned for more add-on components from Embarcadero, to complement RAD Studio but also supporting other development tools.


Categories: News, Blogs, and Tips

Delphi Blogs of the Week/Month #32

Wed, 07/22/2015 - 09:30

Long time without blogging, but I took 2 weeks off and was very busy last week. Here is a short round of interesting tidbits for Delphi developers.

Company News

Embarcadero opening its focus on more developers, beside those using our IDEs and programming languages. New nice developers landing page at: . More information will get added to the page over time. Stay tuned.

As an example, AppAnalytics ( is going beyond RAD Studio...

Unexpected Delphi Blog Posts

The last person I'd have expected to start blogging about Delphi is Chuck Jazdzewski, who was one of the original developers of the VCL library and of Delphi itself (and after moved to Microsoft and Google). He had several posts in his blog. They really explain some of the core foundations of Delphi, and titles are quite descriptive:

And One More Delphi Blog Post

Minecraft in Delphi? Kind of. Read Interesting. I've been watching my son play Minecraft, and set up a server for him. Good stuff.

Again, summer vacation is mostly over for me, now get back to work... and to blogging.



Categories: News, Blogs, and Tips

Delphi Blogs of the Week/Month #31

Sat, 06/27/2015 - 00:12

A lot time since the last collection of links, but here is it. (And by the way, I'm going on vacation and will leave the blog quiet for a couple of weeks)

Blogs Etc Third Party


Categories: News, Blogs, and Tips

RAD Studio XE8 Update 1

Fri, 06/19/2015 - 08:29

The Update 1 of RAD Studio XE8, C++ Builder XE8, and Delphi XE8 is available for Update Subscription customers, as anticipated. If you are not under Update Subscription and have XE8, you can subscribe now. Links:

Again, you need Update Subscription for the "Subscription Update 1". If not, you can buy it now, regardless of when you bought XE8. If you don't really want the update subscription, there is a limited general update available. PS: Don't install the full udpate if you are not entitled, as your XE8 product might stop functioning.

New features? A community toolbar and the favorites in the Welcome page:


Categories: News, Blogs, and Tips

Windows 10 Notifications from a VCL app with the WinRT API

Thu, 06/18/2015 - 10:17

The WinRT API headers for Delphi are now on GetIt and here is a demo to try out using Windows 10 notifications in a VCL Win32 application.

Windows 10 Webinar

Yesterday, we had a Windows 10 focused webinar, with a Microsoft guest and a few of us (me, David I, Jim McKeeth, and JT) talking about Windows 10 and the support RAD Studio XE8 offers for the coming versions of Windows. If you missed it, the replay will soon be available. What I showed in the webinar, beside some classic demos, was a VCL application using notifications on Windows 10, a feature not available in the traditional Win32 APIs but only using the new WinRT APIs.

How to do you get the headers for that API and how do you get a working demo? Keep reading...

Delphi WinRT Headers for Windows 10 on GetIt

First of all, today we made available the headers for the WinRT API on GetIt, to all developers with Delphi or RAD Studio XE8 (there is no direct support for C++, at this very moment). Just open GetIt in XE8 and click on the corresponding entry, shown below.

Notice that this code is for the Windows 10 preview, it is likely that the APIs and our header translations will change over the coming months. So you might have to change/clean up your code in the future, but it is great to be able to start target WinRT classes today with XE8.

The WinRT Notification Demo

As an example of an interesting feature you can use only from WinRT, this demo is focused on the new notifications, called "toast" notifications. Now, the API is available but not really encapsulated in ready-to-use components, so the code is far from simple and I won't list everything here, only the core elements. This is what we want to obtain:

This is a portion of the code used to create a notification. As you can guess below, WinRT classes are basically used like COM objects, and they share the core architecture. The objects creation doesn't use a CoClass (or class factory) but is a little more complex:

if Succeeded(RoGetActivationFactory(LString, TGUID.Create('{50AC103F-D235-4598-BBEF-98FE4D1A3AD4}'), LCreated)) then begin LINotificationManagerStatics := LCreated as IToastNotificationManagerStatics; if Succeeded(WindowsCreateString(PWideChar(Edit1.Text), Length(Edit1.Text), LString2)) then begin LToastNotifier := LINotificationManagerStatics.CreateToastNotifier(LString2); LXMLTemplate := LINotificationManagerStatics.GetTemplateContent(ToastTemplateType.ToastText02); if Succeeded(WindowsCreateString(PWideChar(SToastNotification), Length(SToastNotification), LString)) then begin if Succeeded(RoGetActivationFactory(LString, TGUID.Create('{04124B20-82C6-4229-B109-FD9ED4662B53}'), LCreated)) then LToastFactory := LCreated as IToastNotificationFactory; LToast := LToastFactory.CreateToastNotification(LXMLTemplate); LAccepted := TAcceptedEventHandler.Create; LToast.add_Activated(LAccepted); LToastNotifier.Show(LToast); end; The TAcceptedEventHandler class is the one that has an invoke callback method, that logs in the memo the fact taht the information was accepted (the dismiss portion I'll have to refine). This is the code: procedure TAcceptedEventHandler.Invoke(sender: IToastNotification; args: IInspectable); begin Form51.Memo1.Lines.Add ('You clicked on the notification!'); end; I know the reference to the global form is ugly, but the code is complex enough to avoid the extra indirection. Do you want to give it a go? You can download the complete demo at I'm probably going to update it, and possibly also write a couple more examples, covering other new areas in WinRT.  Windows 10 is Coming ...and it looks it will be a very important version of Windows, so get the Windows 10 Preview now, and start using XE8 to experiment the integration of your VCL (and FireMonkey) applications with it.


Categories: News, Blogs, and Tips

More Information on GetIt Package Manager in XE8

Thu, 06/04/2015 - 04:06

GetIt is the new XE8 package manager for RAD Studio. Information about how to submit your libraries to GetIt has just been made available by Embarcadero.

The idea behind GetIt is really to make is easier and faster to discover, install, and keep updated some of the best open source libraries for Delphi and C++Builder. The main form of GetIt lets you browse or search for a library, and with one click (plus a second to accept the license) you can get the component installed and ready to use.

You can find more information at, while some technical information is in the help at

What's new is the set of "acceptance guidelines" for submitting libraries to GetIt, something Embarcadero is encouraging. While the process is still manual (and it will get automated) you can read the article to see if your library is within the requirements, which if it is an actively maintained library adding value to the product is likely the case. In the article you can also find the download with the information needed for an actual submission. The link is:

Beside the initial "TurboPack" group of libraries and a couple of internal add-ons, we already got a couple of submissions, including ICS and OmniThread. A couple of others are being added right now. Let's add many more...


Categories: News, Blogs, and Tips

Events in Japan and China

Wed, 06/03/2015 - 04:09

A few pictures of the XE8 events during my recent trip to Japan and China, and a video of my keynote in Tokyo. (Trying to link directly form Google Photo, let's see if this works).


Event in Osaka (view of the castle from the event room and dinner after event) and Tokyo (during the event and the city)




In Beijing, forbidden city entrance and attendees at the XE8 event.

There was a good crowd at the first event after some time, old customers looking to the new features but also new developers.

I was actually a bit (negatively) impressed by how nothing in my Android Google phone worked in the country, given all Google servers cannot be reached. But that's another story.

Video of Tokyo Keynote

This is in English with subtitles, edited to skip the live translation.




Categories: News, Blogs, and Tips

Delphi Blogs of the Week/Month #30

Mon, 06/01/2015 - 07:17

It has been a while (really going for for monthly posts, than weekly ones these days), but here is another round of useful links for Delphi developers.

XE8 and Windows 10

There is a lot of information floating around about the current support for Windows 10 in RAD Studio XE8. Here are some links:

XE8 Mobile Tidbits And More




Categories: News, Blogs, and Tips

Article on Developing for Windows 10 with RAD Studio XE8

Tue, 05/19/2015 - 18:31

Just wrote an article on Embarcadero Community site you might be interested in:

It covers installing RAD Studio XE8 on Windows 10 preview and building applications for the preview of the coming version of Windows. We are expecting the migration to be smooth, but also very interested in creating "first calss apps" (or universal apps) via the Centennial bridge.

We are working with Microsoft to offer Delphi and C++Builder the best support for Windows 10, whether they keep going with the best Windows library out there (VCL) or follow the multi-device route with FireMonkey. Stay tuned for more information.


Categories: News, Blogs, and Tips

Conferences Last Week London and DDD From Remote

Wed, 05/13/2015 - 14:21

Last week I've spoken to a Delphi conference in London, and after that I've attended online Q&A sessions at the Delphi Developer Days events in OsLo and Frankfurt.

Spring Delphi Conference, London

The London Spring Delphi Conference was a community event sponsored and promoted by Embarcadero. There were local and Embarcadero speakers, plus Bruno Fierens who showcased among others a new great FireMonkey component, a time planner. The event was also in a great location, London's National History museum. Here are some pictures.


Delphi Developer Days, Online Q&A

At Delphi Developer Days 2015, organized by Cary Jensen with Ray Konopka this year, I gave a keynote in Amsterdam (late April), which Cary recorded. For the following European stops they replayed my recording and later I joined for an online audio and video Q&A session. I t was really a pleasure for me and I think attendees appreciated it *yes, being there in person would have been better, but there is so much one can do).

Here are pictures of me speaking, to the audience... wondering if I should move to a nicer looking section of my office in the future.


Next, Far East

I'm going to be in Japan (next week) and China (the following one). If you live in those countries (or nearby), I'll be happy to see you in Osaka, Tokyo, or Beijing.



Categories: News, Blogs, and Tips