Wednesday, March 31, 2004

Crop circles..

There have been some 64bit .NET sightings over on Danny's blog. I'm using a backup machine I brought along just in case something whacky happened to my main machine. So... while the patient is being reformatted and installing on a new hard drive, I'll post this link...

Kicking hornets nests..

It certainly looks like I kicked the proverbial hornet's nest with my last set of comments. There are some great comments and feed back on what folks thoughts are on the importance of native 64bit computing. What we are looking for here is a critical mass that would convince the marketers of its viability. Also there are the opportunity costs associated with targeting another platform.

Tuesday, March 30, 2004

Fun with bits. 64bits that is...

Danny and I are currently visiting Microsoft for a 64bit OS Dev lab. In fact I'm posting this entry from within the lab itself. We're here doing relative performance comparisons with native 64bit and .NET 64bit. This is just us keeping our finger on the pulse of upcoming technologies. One thing that was loud and clear, was that MS is clearly pushing developers to use .NET as their migration story into the 64bit OS space. Of course for the low-level/device-driver crowd, native codegen is still important, however for application developers and their associated tools, .NET is the wave of the future.

What do you think?

Shorter Path Software - Tips for Converting VCL Components to VCL.NET

Shorter Path Software - Tips for Converting VCL Components to VCL.NET

TeamB'er, Yorai Aminov, has a very well written article outlining various steps that you should take in order to port your existing Delphi VCL components to Delphi 8 for MS .NET. I do like the subtle note on the sidebar that implies you should now think of a "pointer" as a breed of dog and not a language construct...

Good job, Yorai.

Friday, March 26, 2004

Some changes

I've changed my comment system from dotComments to blogKomm since it supports inline comments without a popup window. I also preserved the existing comments by writing a little Delphi application that grabs the comments in the dotComments format and translated them to blogKomm's format. Additionally I shamlessly stole some styles from Danny's blog.

Attribute Syntax

Attribute Syntax

Danny asks a rather pointed question regarding attribute support in future versions of Delphi for Win32. Remember, this is a very unscientific poll...

Wednesday, March 24, 2004

Intel on 64-Bit: We copy AMD but we're still better...

Intel on 64-Bit: We copy AMD but we're still better...

The posturing has already started. The Intel spin-doctors are certainly working overtime now...

EU slaps record fine on Microsoft | CNET

EU slaps record fine on Microsoft | CNET

I have many friends and acquaintances up there in Redmond. They are all very dedicated and talented engineers. I'm personally conflicted on this whole issue. On the one hand, I am convinced that MS has abused its dominant position. On the other hand, I'm also convinced that at the development levels they feel that they are providing true value to the customer. I also believe that they do. I'd have to say that since they've retained the services of many... ahem... former Borlanders, there has been some truly remarkable and innovative technologies. Now I'm not saying that this is a direct result of former Borlanders as they certainly have some very talented engineers that have never worked for Borland. I just find that at the core of many of the new, neat and interesting technologies, there is at least one former Borlander.

Since Microsoft has been under the anti-trust microscope, they have been a much more open company. They have certainly started to show that under that tough exterior, there is a relatively soft underbelly. I've said this many times before, Borland's relationship with Microsoft over the last several years has been better than it has ever been in the past. Yes, part of the reason for that is that Microsoft is trying to keep the anti-trust wolves at bay, but they also really see the value in third-party development tools supporting their platform (Windows).

Tuesday, March 23, 2004

The Beneifits and Truth about Quality Central

The Beneifits and Truth about Quality Central

That most prolific newsgroup posting dude, Nick, has some interesting insights on Borland's Quality Central and the overall purpose it serves. Another interesting point is that now that BDN has RSS feeds, I've personally subscribed to the Delphi Quality Central RSS feed and can now see all the new bug reports against Delphi as they are reported. This is a great way to get a quick summary of new reports. I will personally be encouraging other Borlanders, esspecially on the QA staff, to subscribe to these feeds.

How to be a Borland beta tester

We are currently in the middle of planning, researching and developing the next release of Borland Delphi. As previously indicated here, we plan on releasing the next version of Delphi with both native Win32 and .NET support within the same IDE. This is going to require more testing and feedback. If you feel you can add significant value to the beta testing team, you may consider signing-up. In order to increase your chances of being selected as a Borland beta-tester, there are a few things we are looking for:

  • Experience with the product - Indicate that you have been a user of the product since version XX.

  • Technology experience - Tell us your level of experience in some new emerging technology that is likely to be supported in the product.

  • Able to devote a reasonable slice of time to testing - Tell us how many hours a week you feel you can devote to this task

  • Unique projects and usage - We are always looking for folks that are using Delphi in new and unique ways.

  • Positive excited attitude - Enthusiasm can go a long way to making your application stand out.

On the flip side, here's a few things that are sure ways to get your application placed in the "round-file."

  • Private agendas - I want to make sure this defect/issue/feature gets fixed/implemented.

  • Bragging rights - Since you would be required to sign an NDA, this is silly.

  • Free software - Yes, many beta-testers do receive a free copy of the product. However, that is generally based on the level of participation.

  • Early access - If all you want is early access to the product, then consider becoming a Borland Partner.

The field-test program is not expanded technical support directly from development. While we do try and assist the beta-tester with new product features, questions regarding existing features and problems are better handled in the public forums. You may disagree with the resolution of a defect or issue, that is fine. In fact, if you wish us to reconsider our position, it is best to provide reasonable and well thought out arguments. Also, explaining how this will benefit a large numbers of our customers also helps since that is a key criterion for how things are prioritized. Personal attacks and over-zealousness are sure ways to have your pleas fall on deaf ears. Once a final determination is made, please don't continue harping on the subject, esspecially if it doesn't go your way. Yes, it is true that "squeaky wheels get the grease", however it is also true that "infuriating wheels are replaced."

Non-Disclosure Agreements are not to be taken lightly. Yes, Borland may choose reveal some detail about a beta-test program, but that is purely at the discresion of Borland. A beta-tester is not a spokeperson for Borland. In fact, the standard NDA restricts one from even revealing that they are a beta-tester, both during and following the beta-test period. This protects not only Borland, but you as well. There have been many incidents in the past where a member of the press has contacted a suspected beta-tester and was able to pump them for a lot of information. They use many different tactics like pretending to already know a lot of information about the product just to get confirmation. They have even been known to state that they are a Borland employee! In all cases where a beta-tester revealed sensitive information, they have been removed from the program. Do not assume that a beta-tester you've interacted with in the past is still a beta-tester. If there is a question, please contact FieldTest Administration. Also, if you have signed an NDA as an individual, don't assume that it covers your co-workers. They may have have a lower set of morals and betray your trust. It is ultimately your responsibility if information is leaked a result of a seemingly innocent "water-cooler" conversation. If your company has signed the NDA, then everyone in the company should be bound to that agreement. It is that company's reposibility to make sure only the correct folks have access to the beta-test information and materials. Being careless with NDA'd materials is a sure way to get that NDA revoked. Of course, I am not a laywer, so you should consult qualified legal counsel before signing any agreement.

Finally, Borland beta-test cycles can be fun and exciting. There is a lot of commeradere between the individual testers and with the various R&D, QA and Pubs folks that patrol the beta-test private forums. While we do try and keep it "all business," there have been some cases where some good-natured bantering and ribbing goes on. Esspecially between some of the seasoned beta-testers and Borland folks.

So, if all this sounds like you'd be willing to help out in this, please keep watching for more information on how to apply and where. At the minimum, it'll be an email address to which you can send your information, but ideally, we'll have an on-line form you can use to submit your information.

Monday, March 22, 2004

Now listed on

Ok. I've capitulated.. My main RSS feed is now provided by by converting my ATOM feed to RSS. The internally generated RSS feed is still there, however it may break from time-to-time such as when I post something that I forget to properly escape. I would suggest that you now pick up this feed from one of these two links:


Friday, March 19, 2004

Time Warner, Microsoft on AOL

Time Warner, Microsoft on AOL

The lawyers are thinking that there are only a few antitrust issues in a deal like this? <tongue position="cheek">Oh right, there's still Earthlink, NetZero, Juno... All those other mega-monoliths in the Internet Service Provider space...</tongue>

Wednesday, March 17, 2004

Flogging with The Falafel Software Team

Flogging with The Falafel Software Team

Lino, Steve and crew are sure to stir the pot with the addition of their "flogs." This is going to be an interesting time...

Tuesday, March 16, 2004

I saw it on the Internet - it *must* be true!

MSNBC - Local officials nearly fall for H2O hoax

I think I just split a side laughing so hard when I read this... I remember my chemistry teacher in high school asking us to identify 'hydrogen hydroxide' (HOH), a less common "trick question." To all those folks that state "what am I ever going to use this knowledge for?" This is why, folks... it keeps you from looking -- STUPID! 'Tis better to remain quiet and thought a fool, than to open one's mouth and remove all doubt.

Saturday, March 13, 2004

Revenge of the Automated IDE Incident reporting

Now that Delphi 8.02 is delivered and available, I can go ahead and publish what I'd been hinting at for the last couple of weeks. You can now download from Code Central a zip file containing the nessesary pieces to install the IDE incident reporting package. Included in this zip file are many .jdbg files that contain detailed symbol information for each Win32 binary that we build for the product. This information is used to correlate each entry in the stack trace to a specific line of code in a specific function, or as close as it can be. The exception and stack tracing code is included courtesy of the JEDI Code Library. You can visit them here, for more information on this code. You'll also notice that several other run-time packages are included as well, dbrtl71.bpl, soaprtl71.bpl, dsnap71.bpl. These are included because this system uses the publically available Quality Central WebService. The WSDL can be found here: As a matter of fact, anyone can create a client that talks to this service.

It has also been requested that I provide the source code to this IDE plug-in. I will certainly take that under advisment, however there are several places where this plug-in touches some deep internal pieces of the IDE. These will need to be cleaned up before any publishing can take place. One thing I can say is that this code is now an integral part of the normal Galileo IDE build process (which includes Delphi/Win32, Delphi for .NET, and C#Builder products). What this means is that during both field tests and future product releases there is a very good chance that this functionality will be included as part of the release, or at least provided as a separate install/download.

Now on to the installation of this feature:

Install Delphi 8 Update 2 first:
Download from this Code Central entry:
Unzip the file into the "bin" directory of the Delphi 8 install. For example: c:\Program FilesBorlandBDS2.0Bin
Open RegEdit <normal registry editing warning and disclaimer inserted here>
Add the following value:

[HKCUSoftwareBorlandBDS2.0Known IDE Packages]
$(BDS)binexceptiondiag71.bpl = "(untitled)"

You can verify that it is installed correctly by opening Help|About. In the list box, there should be an entry called "Borland Quality Insite."

For once, this is a feature I certainly hope you never have to use.

Thursday, March 11, 2004

Delphi 8 for .NET update #2 now available

Delphi 8 for .NET update #2 now available

Come and get it!

A glimpse of the future...

Michael Swindell, a Director in the Developer Tools Group here at Borland posted this enticing bit of info in the borland.public.delphi.non-techinical newsgroup.

Following up from my earlier message a little over a month ago - Delphi 8
update 2 will be available for download by the end of this week. This 2nd
update improves on the already good quality of Delphi 8 and raises the bar
to our highest quality Delphi in years with over 200 addressed issues. The
complete readme with all the details can be found in Anders' Weblog at
In addition, we'll also be making a complete documentation update available
at the same time that improves the Delphi 8 documentation in both in content
and ease of use.

The next update you can expect to see will be for Delphi 7 (Win32). We are
working on a Delphi 7.1 patch that is expected to be released in the second
quarter. This 7.1 update is planned to address a variety of Delphi 7 issues,
particularly in the dbExpress area, and will be available as a free download
to all registered Delphi 7 and Delphi 8 customers. We do recognize that
Win32 support continues to be important for many Delphi developers,
particularly for maintaining existing applications but also for new
application development. As such we also plan to continue supporting and
developing new Delphi Win32 features for the foreseeable future. Our plans
include moving Win32 support into the "Galileo" IDE along side Delphi .NET
in the next major release - which is planned to combine both Win32 and .NET
features into the same IDE. So if you're still on Delphi 3 thru 6 and you've
been waiting to upgrade for news of a v7 update or a Win32 commitment beyond
v7, now is the time to take advantage of the great upgrade value in Delphi 8

Though we plan to continue supporting Win32 development, there will be no
slow down in our .NET momentum. We plan to continue supporting more and more
.NET technologies in Delphi - such as Compact Framework, .NET Whidbey, and
Yukon, all the way to Longhorn, WinFX, and beyond. So whether you're a long
time Delphi Win32 developer or a soon to be .NET developer or both - if you
haven't yet upgraded to v7 or v8, I highly recommend the upgrade to Delphi 8
(which includes D7 for Win32 in the box) it's an great value for both Win32
and .NET developers. Either way, .NET or Win32, we'll continue to support
you with quality Delphi releases and updates.

On behalf of the entire Delphi development team, thanks again for using
Delphi 8!

Best regards - Go Delphi!

Michael Swindell
Developer Tools - Delphi and .NET
Borland Software Corporation

Delphi 8.1

Today, March 11, 2004, may be the day that we go live with the Delphi 8 update, aka. Delphi 8.1. So don't touch that dial!

Monday, March 8, 2004

Delphi 8 Update #2

Delphi 8 Update #2

Looks like Anders Ohlsson has gone ahead and posted the Readme for the upcoming Delphi 8 Update #2. You can see that there were more than just a few issues addressed in this release. Hopefully, I'll be posting some more information about automated IDE incident reporting within the next few days as well.

The importance of backing up..

iTunes song swap helper vanishes from Net | CNET

This just highlights the importance of backing up your system... or at least back up the important data. I'm not nessesarily condoning the use of this software, I am simply using it as an example of a very public "oops!" I hate it when that happens ;-)..

Dan Miser's now in the blogsphere

Dan Miser

The vernable Dan Miser has now joined the blogsphere with his own blog. Welcome aboard, Dan!

Play the rumor game/Public Instant Messaging

Play the rumor game

OK, Andrew I suppose I owe you an apology as well. I re-read my post and it seems that the tone of my message may have come across a little harsh. It was my feeble attempt at some humor.

I would like to clarify the reason I made the statement that class helpers have nothing to do with IDisposable. Class helpers were introduced into the language to facilitate easier porting of existing Win32 VCL code to .NET. For instance, TComponent has the properties ComponentCount: Integer; and Components[Index: Integer]: TComponent;. Since TComponent is actually declared as an alias to System.ComponentModel.Component, those properties don't exist. By creating class helpers, we can seemingly add methods to existing classes without using inheritance. This is pure "syntactic sugar." When I mentioned the IDisposable thing in the context of class helpers, I was trying to illustrate that <object instance>.Free; pattern was facilitated by the use of class helpers. I tried to indicate that class helpers were a feature in and of themselves; "Delphi introduces an interesting language construct called "class helpers." There could be a whole tome written about the subject of "class helpers"..."

The IDisposable pattern is actually triggered by the declaration of a destructor override. So if you declare an override to destructor Destroy; override; you are telling the compiler to implement the IDisposable pattern. You must override the Destroy; method in order for the compiler to see this pattern. We would have done this even if we didn't have class helpers. That is why I tried to downplay the relationship between class helpers and the IDisposable pattern. The fact that class helpers eased the programmers use of that pattern was purely serendipitous ;-)

Thursday, March 4, 2004

The blog "Rumor "game

Have you ever played that fun party game "Rumor?" It's the one where you and your friends form a circle. One person starts at some point on the circle and whispers a sentence to the person to their left or right. That person in turns has to repeat that exact sentence to the next person and so on. What is funny is that by the time this "Rumor" makes it around the circle, it will bear little or no resemblance to the original statement... Sometimes with hilarious consequences.

It seems the blogshpere is turning into a huge "Rumor" game... case in point Delphi 9.0, Helper classes and GC :-)..

Uh... there is no Delphi 9.0, and helper classes have nothing really to do with the IDisposable pattern... No big deal, I'm just surprised that my blog is indirectly linked.

Nick's Newsgroup Manifesto

Nick's Newsgroup Manifesto

The most excellent dude, Nick, has a few works on how one should approach and behave in the Borland newsgroups. And, I for one can attest to being cajoled, pestered and irritated personally by Nick :-o... no matter how good he thinks he looks...

Automated IDE incedent reporting - Redux

Thank you for all your responses to my question about IDE incident reports. You have certainly confirmed my suspisions that many folks would find this a very reasonable and useful addition to the IDE. However, some comments did mention some legitimate concerns. Here's how I'm thinking it will work.

When an exception is raised in the IDE (remember not all exceptions indicate that there is a "defect" or "bug", thus the term "incident."), a slightly modified error dialog is displayed that includes an extra "Details" button. When this is pressed, the dialog will unfold to reveal a listbox containing a detailed stack trace from the origin of the exception. That by itself would probably be extremely useful to the component developer even without the next feature.

On the dialog, there is now a "Send" button that will display a wizard that will walk the person through the process of gathering additional information in order to send a copy of this detailed report back to Borland. They are given the opportunity to supply a description and possibly reproducable steps that are added to the report. They will also have the option of supplying their Quality Central user id/password so that the report will be sent as being reported by them and will allow them to query the QC database for all their "Incident Reports" and track their status. If they don't want to do this, they can choose to report anonymously, at which point the report will only be seen by QC Sysops. All reports are marked as private such that only QC Sysops and the reporting individual can see their incidents until a QC Sysop makes them public. This will tend to keep the number of redundant publicly visible reports to a minimum and allow for a more formal review process.

The whole point of this is to not be overbearing and intrusive. The user can elect to install or uninstall the add-in. The user is in full control over when and what reports are sent back. Just like the integrated Windows XP crash reporting system, this allows the user to choose when to send the information. However, unlike the Microsoft version, you can actually see the reports in the publicly available Quality Central database. They don't merely disappear into some random bit-bucket on some mystery server up in Redmond, WA...

If you're interested in becoming a Quality Central Sysop, please read the Quality Central Sysop Guide.

Stay tuned for more information on this.

Tuesday, March 2, 2004

Delphi Compiler Core

Delphi Compiler Core

You wanted it, so now you have it. Danny Thorpe has joined the venerable ranks of Borland Bloggers... welcome aboard Danny! Also, Anders Ohlsson has started his own blogging experiment...

Automated IDE incident reporting

I may come to regret this ;-)... however I was wondering if folks would find an IDE add-in that would trap all exceptions, provide a stack trace, and give the user the opportunity to send this information back to Borland in the form of a Quality Central incident report? Please use the Comments link to let me know. Please keep the comment to a minimum. Things like, "That would be awesome!" or "I'd rather Borland QA the product." are fine. However, long diatribes about a specific issue you're having are counter productive to the intent and spirit of the question.

NOTE: There is currently a problem with the comment code that doesn't refresh the comment window when you submit your comment so it appears as if the comment wasn't accepted. So please only press "Submit" button only once.