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.

20 comments:

  1. It is funny up to some extend... MS handle MS code and generally would expect MS language to work with and I wouldn't expect them to know all VS.Net languages adapters available today, for example.


    There is MS newsgroups where people could help you even with Delphi code... and it will be free of charge.


    Actually, I would imagine similar conversation if I call Borland support with question about Windows Standard Control which was ported into Delphi. Do you think it would worth to try?

    ReplyDelete
  2. Not your job to know the ins and outs of it all but I assume when the Async pluggable protocol code was written you explain how you wrote the code and what windows API's or FSL were used (that Delphi exposes). At that degree Microsoft should have been able to recreate. I can understand that they can't debug Delphi code as it something that it sitting on top of those API's and VB/C++ may do things different.

    ReplyDelete
  3. Allen, I am sure what you are doing is more complex but I have done a couple of protocol handlers so I cleaned up one of them to something barebones. It appears to work on clean XP SP2 + the above mentioned hotfix with a user having stock non-admin privileges.


    http://www.run-time-systems.com/download/protoSample.zip

    ReplyDelete
  4. Now, that was a very funny story.



    Quote:


    "Try Anders Hejlsberg; he should be OK with it."


    LOL!!! I wonder what the conversation would have been like if if "Nancy" directed him to Anders instead of Bob. BTW, Allen did say that this is still an active support case so you'll never know. :)

    ReplyDelete
  5. Craig, that is just too funny. :) The best comment ever.

    ReplyDelete
  6. LOL! To both Allen's hilarious story and Craigs excellent response. :-)

    ReplyDelete
  7. That was priceless, in a tragic sort of way. I got that deja vu feeling all over again when I read that transcript. I've had many conversations with Sybase technical support over problems with their OLE DB provider. Even though they have people who know Delphi, I always have to create sample applets in VB to demonstrate the bug to them.

    ReplyDelete
  8. I had the same problem with VS 2003 help.

    ReplyDelete
  9. David Clegg

    I wish he had readlly said that

    ReplyDelete
  10. >>I had the same problem with VS 2003 help.


    Allen!!! read it. They should simply install VS2003 ;-) Maybe they can understand HTML if Delphi is too hard

    ReplyDelete
  11. 1.

    Try returning correct value from IInternetProtocol:ParseUrl for ParseAction=PARSE_SECURITY_URL. Returned URL is used to determine the Internet Zone the page belongs to.


    2.

    Implement IInternetProtocolInfo and return DWORD(1) for QueryOption(QUERY_IS_SECURE). You might also want to play with QUERY_IS_SAFE.


    3. The last option is to implement your own IInternetSecurityManager. You should take a look at the following page:


    http://www.euromind.com/iedelphi/iesecurity.htm


    Bye,

    Matej

    ReplyDelete
  12. Matej:


    1: Already doing that.

    2: Yep. Same here.

    3: Been there done that.


    Basically, I've already done all that stuff and more. Like I said, we don't call MS on a whim or before we've done our homework.


    Anyway, thanks for the suggestions.

    ReplyDelete
  13. I must say I'm a bit dissappointed. Borland would be one of the few serious competitors left for VS, and if you can't get results this just shows how marginal Borland must really be.


    Obviously Microsoft are not going to go out of their way to help, but you should have a lot better relationship.

    ReplyDelete
  14. this is just too funny to laugh.

    ReplyDelete
  15. To Whom It May Concern:


    I am getting rather frustrated because my fonts like e.g. Chiller do not work anymore in my Word documents. Only boxes do appear. Using Outlook express is not effected by it. Please, help!


    Many thanks in advance and kind regards,


    Angelika King

    ReplyDelete
  16. I must admit to being more impressed for it. I've even recommended it to all my friends.

    ReplyDelete
  17. I have been using it. Outlook Express more stable and secure than other programs.

    ReplyDelete
  18. Hello! I was interested in your article. It is rather instructive.

    ReplyDelete

Please keep your comments related to the post on which you are commenting. No spam, personal attacks, or general nastiness. I will be watching and will delete comments I find irrelevant, offensive and unnecessary.