John Kaster

Behind the Screen

Archive for the ‘Embarcadero products’ Category

Moving on

with 50 comments

On December 27th, 2010 I will leave Embarcadero to pursue a great opportunity for myself. Please don’t view this as a sign that I think Delphi, InterBase or any other of the Embarcadero products is in trouble. Nothing could be further from the truth.

Delphi XE is my favorite version of Delphi, ever. I have even gone so far as to call it “my” release. It has features in it (particularly some of the new DataSnap features) I’ve been wanting since Delphi 5. Really! It has great quality and performance, and I really enjoy working with it every day. Furthermore, the next release looks like it could be the most exciting release since Delphi was first launched in 1995.

Having said this, you’re now probably wondering why I’d be leaving Embarcadero if I feel that way about Delphi and its future. That’s a fair question. I hope you give me a fair chance to answer it, by reading this post to learn why I joined the Delphi team, and why I’m now leaving.

When I graduated from college in 1985, I sent my resume to Borland, because I wanted to work for the company that made Turbo Pascal. I never received a reply. I had already started building things in Turbo Pascal for my own use before I even left college, and these tools rapidly grew into popular public domain, shareware, and commercial products, which I sold and supported. Even while working as an employee of other companies, I kept building software development tools on the side, based on my own needs. 

After a couple years of working as a PC expert, consultant, and systems analyst for lots of major organizations in the Washington, DC area, I went out completely on my own.

In 1997 (12 years after sending my resume to Borland), while deeply engrossed in running my own very enjoyable and successful one-man product development and consulting firm, I got a call from a  head hunter that ended up changing the direction of my career for more than a decade. Based on the deliberately vague description he gave me of the position he was trying to fill, I knew the job involved working on the Delphi team.

I love using Delphi even more than I liked Turbo Pascal, and I thought it would be great to be a part of the team building the product. The thought of personally contributing to its success, and helping shape the product as one of its Product Managers was very appealing to me.

On the other hand, I had my own customers, whom I liked, and my own products, which I really liked, and I was making really good money from the combination of software consulting and product sales.

I was really tempted by the offer, but I was having a hard time deciding which direction to go.

So, I discussed the idea of putting my own business on hold with one of my best friends, Ali Davachi. At a Clipper conference back in 1990, I’d met Ali when he bought two copies of one of my products (TechWriter) with great panache. In the following years, we worked together on some projects, and I have great respect for both his business acumen and technical skills. We also have a fabulous time working together.

Ali said he thought it would be a great idea for me to work for Borland for 2 or 3 years, to get some experience working as a Product Manager on a major product I loved, from an industry-leading software company.

So, I accepted a huge pay cut to “get in the door” at Borland as a Product Manager. I started working as the Enterprise and Distributed Computing Product Manager on November 3, 1997. I was responsible for everything related to database connectivity, and anything to do with DCOM, CORBA, or any other distributed technology. This included the BDE, MIDAS (now DataSnap), and a variety of other “connectivity” technology that has come and gone.

After working in that role for about 1.5 years, I went to work for David Intersimone (David I) in Developer Relations. I became an “evangelist”, traveling all around the world, launching new versions of our products. Together with David and Charlie Calvert, I also launched what is now called EDN in 1999. Ever since then, I have managed, built, and maintained services for EDN, even while traveling.

When Embarcadero acquired CodeGear, I officially became the EDN Program Manager, which is basically what I’d already been doing for over 10 years. This is still my primary responsibility at Embarcadero. I still get to use Delphi to develop services for EDN, and I am constantly in conversations with the Delphi, RadPHP, and InterBase teams about their products, how they are used for EDN, and what I’d like to see in future releases.

A few months ago, my friend Ali contacted me. He told me he was accepting a position as CTO at a great new company called Transactis, and he thought it was the opportunity we’d both been waiting for: to work together again on great technology and services for our customers. In short, he made me an offer I couldn’t refuse. On January 3rd, 2011, I start working for Transactis as their Senior Vice President of Development, reporting to the CTO (Ali).

I will miss the people I work with at Embarcadero, the products I use, and the EDN services with which I’ve worked for so long. It’s very hard to leave, particularly because the projects never stop. But for me personally, this is an opportunity I can’t pass up.

Delphi will be just fine with me gone. EDN will be just fine, too.  As I pointed out in a previous post, many, many people have worked on EDN over the years. Many more have worked on Delphi over the years. Even more people will work on Delphi and EDN in the future.

I’m just one person, who stayed on the team 5 times longer than I originally planned, helping support Delphi. You don’t owe me any favors, but I’ll ask one anyway: if you share my love of Delphi, don’t worry about my departure, and don’t let others make it into some huge disaster for the future of Delphi. My departure has nothing to do with how I feel about Delphi, C++Builder, RadPHP, InterBase, or any other Embarcadero product. Even though I’ll no longer be “on the team,” I’m still a huge supporter of the Embarcadero products. I still plan to use them whenever I can in my future work.

In fact, Transactis will be buying some Embarcadero products in the very near future, so Embarcadero has just gained yet another customer! Smile

Keep the faith, and I’ll see you around.


Written by John Kaster

December 16, 2010 at 2:05 am

My registered products and downloads pages on EDN are faster

leave a comment »

David Clegg was able to do some performance tuning for a critical query that returns the list of products you have registered with Embarcadero with your active EDN account. The pages can now load at least 50 times faster (depending on the number of registrations you have with Embarcadero) than they did before.

You can login at and click on the following links:


My registered user downloads brings you to your personal download page on CodeCentral.

My registered products shows all the products you have registered with your active EDN account.

Written by John Kaster

December 14, 2010 at 11:43 am

QC Login performance problems resolved

with 3 comments

QualityCentral has recently been having very slow logins. Fortunately, we just discovered the culprit and have resolved the performance problems through the use of an internally-developed test framework we’ve implemented for EDN systems to track stability and performance.

It was an embarrassingly simple mistake – we were missing an index on the USER_ID column in one of our tables. Adding the missing index brought the query time down from over 27 seconds (on average) to 31ms on average. Now, the QC windows and browser clients are finally logging in again like they used to.

As the users in the database grew, the server was performing a natural scan on the table, and naturally this was taking longer and longer to complete. Now that the index is in place, the query should now provide reasonably consistent performance even as the dataset grows.

My apologies for missing this performance improvement for so long. I’d like to thank Sriram Balasubramanian for noticing the performance problem when he was reviewing our EDN performance test suite for InterBase.

I’m just glad to finally put that annoying performance issue behind us!

Written by John Kaster

November 15, 2010 at 12:07 pm

Upgrading InterBase 2009 to InterBase XE 64-bit

with 3 comments

Starting at 7pm Friday, October 29th, 2010 we will be upgrading InterBase servers from 2009 to the XE 64-bit release. In addition to the obvious benefits of full 64-bit memory addressing, better CPU usage, stronger passwords, and other security improvements, there are some other things we get by upgrading to XE.

By simply doing a backup and restore of the databases with InterBase XE, the On-Disk Structure (ODS) version will be 15. With OSD 15, we gain:

  • index key sizes can now be 2K rather than 252 bytes
  • faster, incremental sweeps (the InterBase garbage collector)
  • much faster blob handling: if you have a query for a table that contains blobs, but the query doesn’t request any of the blobs in its result set, the blobs are basically ignored, resulting in much faster queries

Here’s the 10 step process we’re going to take for our upgrade:

  1. Put our web servers into maintenance mode
  2. Uninstall our InterBase 2009 instances
  3. Install InterBase XE instances
  4. Register the XE instances
  5. Copy our preferred ibconfig to each instance
  6. Backup our admin.ib from our XE 64-bit test instance and restore it for each production XE instance (for strong password support)
  7. Backup and restore every InterBase database so it gets the latest version of ODS. (We have a batch file for this.)
  8. Before or during the InterBase XE process, update all our InterBase clients on the various servers that talk to our InterBase servers with the XE client, so they support the new stronger password feature. This client can be updated directly over the existing client. We may have to stop some IIS instances to replace the client, other the InterBase client may still be in use when we try to replace it.
  9. Take our web servers out of maintenance mode
  10. Enjoy the increased performance and stability of InterBase XE!

P.S. We have one custom UDF that’s not yet available for 64-bit InterBase, so one server instance will be 32-bit rather than 64-bit.

Written by John Kaster

October 28, 2010 at 1:58 pm

Korean developers brave Typhoon to see RAD Studio

leave a comment »

I was just in South Korea, participating in the launch event for RAD Studio XE. Early the morning of the event Typhoon Kompasu hit South Korea. It’s been called the worst typhoon to hit South Korea in 10 years. I extend my condolences to the families of those who lost their lives in the typhoon. I would also like to thank our very dedicated and enthusiastic Korean Delphi and C++Builder developers (about 180 of them) who still made it to the RAD Studio launch event. That shows some real dedication. We had more than twice that many people register for the event, so I’m hoping we can get the rest to come see the XE version another time soon.

Agenda slide

The agenda for the talk

In my presentation, I spoke briefly about Embarcadero and what we’re doing, provided the RAD Studio overview, and demonstrated what’s new in the products. My talk was translated from English to Korean. Other parts of the launch were covered by Korean speakers ,so they could cover more material faster. I do appreciate the audience’s attention while listening to the serial translation.

Debugger features

Demonstrating new debugger features

Talking about Help Insight - an unfamiliar feature

The other speakers were WK Kim, Jun Kim, and Jeehoon Imp Park. WK Kim discussed DataSnap and the new cloud development features of XE. Jun Kim discussed agile methodologies in general. Jeehoon Imp Park demonstrated AQTime, CodeSite, and FinalBuilder.

Jeehoon, WK Kim, and me

The people at DevGear, our partner in Korea, are really great. They organized and put on a great event, even in the aftermath of a typhoon.

DevGear staff

WK Kim is crouching directly in front of me (in the blue jeans). Beomyong Park (the head of DevGear) is to my left, and Jeehoon is next to him.

Next stop, Mumbai, India!

Written by John Kaster

September 4, 2010 at 5:45 am

RAD Studio Tip #1: Quickly configuring MySQL to use with dbExpress and Data Explorer

with 7 comments

When developing and debugging applications for EDN, I use several different Windows VMs for various reasons. Periodically, I want to use the RAD Studio Data Explorer to look at some values in a MySQL database. If libmysql.dll (the MySQL driver dll) is missing from the machine or not in the right path, I typically see this error when trying to view a MySQL database with Data Explorer:

DBX Error: Driver could not properly be initialized.
Client library may be missing, not installed properly, of the wrong version,
or the driver may be missing from the system path.

The MySQL dll is freely available to download from and the install available there usually will put the libmysql.dll file dbExpress requires in a path that allows dbExpress to load it.

This is good for setting up for one machine, but once you have a copy of that dll available, nothing else is required to access MySQL from dbExpress. So, when I need to configure a new machine for MySQL access, I just copy that dll to the appropriate path on the new machine.

For 32-bit Windows machines, libmysql.dll should typically be in c:\windows\system32.

For 64-bit Windows machines, libmysql.dll should typically be in c:\windows\SysWOW64.

Once dbExpress can find this dll, all you need to do is restart the IDE and you should be ready to access your MySQL databases either locally or remotely.

I hope this simple tip helps – I use it frequently enough, I decided it was worth blogging about. 🙂

Written by John Kaster

August 6, 2010 at 1:29 pm

EDN Tip #3: Keeping your QualityCentral windows client current

with 7 comments

A “by the way” comment on our Delphi non-technical discussion forum by TeamB member Rudy Vethuis inspired this next tip on keeping your QualityCentral (QC) windows client current. QualityCentral is where you can submit bug reports and feature requests for Embarcadero products, to be acted upon by our product teams.

As indicated on the QualityCentral home page, the QC windows client can be automatically updated by using the QC client downloader to launch it instead of launching the QC client directly. The client downloader first checks the web site to see if there’s a new version of the client to download. If there is, it will prompt you to download it, and it will automatically launch the latest version for you.

The QualityCentral windows client is included in the Tools menu for Delphi, C++Builder, and RAD Studio. In the 2010 release, the tools menu shortcut was modified to start using the QC client downloader, so it will automatically be kept current for you.

EDN Tip #3.1

Many power users of QualityCentral like JED Software‘s QualityCentral client called QC Plus, which integrates with QualityCentral via the QC Web Service.

Written by John Kaster

June 17, 2010 at 4:23 pm