Friday, October 29, 2004

Hello? Microsoft support?

Did you ever wonder if Borland ever has to call Microsoft Developer Support?  Short answer: Very, very rarely.  Not that we are unwilling to ask for help, but we do tend to have enough experience among all the engineers that usually we can figure it out on our end just fine.  A quick trip to visit other engineers down the hall is much more efficient.  Now recently I actually had to break down and have MS support contacted.  The good thing is that we actually have some support contracts in place and have a dedicated MS support “handler” that knows how to direct the calls to the appropriate support staff.  Even with all this in place, we are not immune from a humorous situation...

So here's the problem.  Ever since C#Builder the Galileo IDE (the IDE framework on which C#Builder, Delphi 8, and now Delphi 2005 are built) has had a module that implemented the “Welcome Page”  Admittedly the first couple of iterrations were a little lame and not quite to what I had envisioned.  That has changed for D2005... never mind that since that is neither here nor there... The problem is that I implemented a ASynchronous Pluggable Protocol, in order to “serve” the web pages from a specific local file storage instead of hitting local http server or what-not.  OK, all was fine and dandy up until around October 12, 2004.  This was about the time that Microsoft began pushing a “rollup“ patch of Internet Explorer (don't even go there... I'm not using Mozilla or Firefox folks, the IE WebBrowser is quite sufficient for the needs here), called KB834707, down the Windows Update service.  We started receiving reports from fieldtesters with the combination of Windows XP Service Pack 2 + KB834707 that they started getting a Windows security dialog popping up asking them to confirm the down load of the Welcome Page.  The same thing started happening with the HelpInsight stuff as well (You can find out about HelpInsight by following some of the links here).  This was confirmed by folks that uninstalled KB834707 patch and observed that those dialogs no longer appeared.  Of course reinstalling that patch caused them to reappear.

No problem, I figured I must not be doing quite the right stuff related to the APP.  So I spent a while trying to resolve this by refining how the APP responds to requests and what status codes it sends back.  Lots of Googling the newsgroups and web.  All boiled down to finally getting that security dialog to now have a checkbox on it which when unchecked would make that dialog not appear ever again.  Great. Fixed. Next...right?  Not quite... The problem is that by unchecking this checkbox, it is a global user setting!  We've just unwittingly led the user down a path of potentially opening a security hole in their system.

Now that I'd been wholly unsuccessful at resolving this issue in a satisfactory manner, it was finally decided to push the “contact MS support button.”  This is where it begins to play out like that old Bob Newhart one-sided phone conversation schtick or a George Carlin routine...  After a couple of email exchanges with the MS “handler” and sending my direct access office phone number, I got a call.  The names have been changed to protect the innocent (or guilty as the case may be ;-) and the dialog has been paraphrased.

MS Handler: “Hello, Allen?  This is Nancy from Microsoft support.  After your description of the problem I've gone ahead and contacted a member of our Developer Support Group.”
Me: “OK, Thanks!”
Nancy: “Please hold while I get them on the line.  I'll remain on the line during the call to help clarify any questions regarding your support contract.”
Me: “No problem.”
Click.  Silence. (at least they don't have that silly sleep inducing elevator or teeth griding bad hits from the 80's, music ;-).
Nancy: “Hi, Allen?  I have Bob on the line from developer support and he's already reviewed some of the description of the problem based on our previous emails.”
Me: “OK.”
Hmm... This might not be so bad after all...  famous last words..
Bob: “Hi, Allen.  What version of Visual Basic are you using?”
Warning! Warning! Danger Will Robinson! Ahhh!!!!
Me: “Uh... I'm not using Visual Basic.  This is written in Delphi.  In fact it is Delphi
Bob: “Delphi? Isn't that a Borland product?”
Me: “Yes it is.”
Bob: “I think you're going to have to call Borland then”
Flag down!  Miscommunication on field. Restart play.
Me: “Uh...This is Borl...”
Nancy: “Bob, Allen is from Borland.  He is a member of the Delphi development team.”
Whew!  Saved... Thanks, Nancy!
Bob: “Oh, I see.  I don't know if I'm going to be able to help.”
Nancy: “Why don't we let Allen explain the problem and maybe we can at least figure out who can help?”
Obviously her bonus' are based on how happy her support contract customers are.. this is a good thing...
Bob: “OK, I'm listening.”
Nancy: “Go ahead, Allen.”
Me: I regail Bob on the finer points of the problem, Asynchronous Pluggable Protocols, WinXP/SP2 + KB834707, etc...
Bob: “Do you have any sample code that will demonstrate the problem?  I'm not familiar with the changes that went into that patch.”
Me: “Sure, I can put something together.”
Hopes raised....
Bob: “Is it in VB or VC++?”
Knot forming in stomach... sweat beading up on back of neck and forehead... throat constricting...  ok.. no numbness in hands... heart still beating...
Me: “Uh, no.  It's written in Delphi.”
Bob: “Well, we won't be able to work with that since we don't support Delphi.”
Me: “OK.. It's going to take a while and I have some serious deadlines coming up.  In fact we may have to release the product with this problem.”
Bob: “I understand, but there is no-one here that can read Delphi code.”
Nancy: “Allen, looks like the quickest course of action is to try and reproduce this is VB or VC++.  I wish there was another course of action.”
So do I.  Gee, can't you just take a binary Delphi application and observe its behaviour from your side?
Me: “OK.... I can guarantee that I won't have anything by the end of the week, though.  We will also probably have to 'readme' this in the actual release.”
Nancy: “I understand.  If there is anyway you can get a test-case in the next couple of days, we'll look at is ASAP.”
Me: “I'll try.  I don't even have VB or VC++ installed.”

The conversation went on for a little bit more....  You've all heard about the silly support calls that come from customers about magnets and floppy disks, folding 5.25” disks to fit into 3.5” drives, etc... but the shear hilarity of one dev tool company calling another dev tool company is the stuff from which legends are made.  I knew this was going to be great blog fodder once I heard the words, “What version of Visual Basic are you using?

Stay tuned for another installment in this saga.  It ain't over yet as this is still an active support case.

Thursday, October 21, 2004

Falafel Developers Conference, Toronto

I mentioned it in a little blurb last week, but I thought I'd bring it up under its own topic.  On November 29th and 30th, 2004, I'll be speaking in Toronto, Ontario, Canada at the Toronto Congress Center.  My “cohort in crime”, Danny Thorpe will also be speaking.  You can get the details here and how to sign-up for this two day event being presented by Falafel Software.

Saturday, October 16, 2004

Delphi 8 .NET 1.1 SP1 Update...

I've been so busy with trying to get Diamondback/Delphi 2005 that I completely missed that Danny has posted a status update on the .NET 1.1 SP1 issue.

Thursday, October 14, 2004

Breath in.. breath out...

In with the good air... out with the bad... In with the good code... out with the bad code... Since we've announced Borland Delphi 2005, I suppose getting it finalized and out the door would be a good thing. We're current erradicating as many creepy-crawlers as we can, and as quickly as we can.

On another note, I'll be in Toronto at the end of November, the 29th and 30th. I'll be speaking at the Falafel Developers Conference.