Archive for September, 2005


Today is the best day of the MVP Summit because today is the day the Fox MVPs got together with the Fox Team. We got to see a lot of what Microsoft is thinking about and considering in the Sedna release. Back in June, I revealed my personal number one requirement for Sedna in my post VFP Roadmap provides direction: Longhorn compatibility. Today we got a to see a preview of VFP 9 running on Windows Vista (formerly known as Longhorn). I can tell you I saw it running. There are still glitches and the Fox Team is still evaluating the full impact, but I am very excited by the small progress. We did not see it do much, but Ken was able to run the Class Browser / Component Gallery and it did not crash.

If you are headed to Southwest Fox (yes there is still time to sign up), you will get to see what the MVPs saw today (and probably more knowing the team). You will also have the opportunity to provide feedback to the Fox Team as well.

Oh, and more good news based on dinner Thursday night here at the summit. I was discussing the MenuDesigner I have been developing for a couple of years. We solved a major problem, which was holding up the progress on the development. One little 15 minute discussion and with some real smart Fox developers and I am rolling past a big issue. This discovery was well worth the cost of this trip and the investment of time.


I have not installed the public beta of VFP 9 SP1 yet. I will be installing it on September 27th after the last session I give at next week F1 Technologies VFE DevCon. I have a personal policy not to install software the week before a conference or major presentation. One of those once burnt, never gonna happen again type policies.

I have one tip for you concerning the installation of VFP 9 SP1 recently made available to the Fox Community. Before you install, back up your original files in case you need to go back to the original version. This tip also allows you to run both the release version (build 2412) and the beta of SP1 on the same computer. I have done this for the service pack testing of VFP 7 and VFP 8 and it worked well. Here is what I do before installing:

  1. Go to the following folder: C:\Program Files\Common Files\Microsoft Shared\VFP
  2. Create a subfolder called VFP9NoSP
  3. Copy all the VFP9 Runtime files including VFP9r.dll, VFP9t.dll, VFP9rXXX.dll (resource files, especially the ones you deploy), the three Report*.app files, the FoxHHelp9.exe, and the FoxHHelpPs9.dll to this new subfolder.
  4. Go to the following folder: C:\Program Files\Common Files\Merge Modules
  5. Create a subfolder called VFP9NoSP
  6. Copy all the VFP 9 merge modules to the new subfolder
  7. Copy the main VFP 9 folder to another folder. I call mine: C:\Program Files\Microsoft Visual FoxPro 9 NoSP

If you want to be extra careful you can also export the registry settings for VFP 9. I have not done this in the past and have not had any problems skipping this precaution. You also might want to back up your FoxUser files.

Now I have backups of the VFP 9 files without the service pack beta.

I do this for two reasons. The first is so I can double check things in the released version to see if something works differently with the SP installed. I can verify bugs which are suppose to be fixed, and validate problems found in SP1 to see if they are newly broken since the released version.

The second and more important reason is I might have to release new versions of my current VFP 9 apps and I do not want to do this with the beta runtimes. I can build the apps using the VFP9.exe in the NoSP folder. Before doing so I swap in the VFP 9 runtimes and merge modules. If I need to do this I create subfolders with the corresponding SP1 files just like I did with the original files. After I am satisfied with the testing I build my installs with the released version files. Once I ship the product I swap in the SP1 files and proceed with the testing.

I install the SP1 beta over the original folder (C:\Program Files\Microsoft Visual FoxPro 9). Note, this will automatically overwrite the merge modules and runtime files too. I create two shortcuts to VFP 9. One for the SP1 folder and one for the NoSP folder. I use the appropriate shortcut for the type of work I am doing, but I can tell you I use the beta version for most of the time. The Fox Team has been very good about shipping stable betas over the last few years.

The fix list for SP1 is very impressive and I am happy with the bugs squashed so far. It is now up to you to help out with the rest of the bug discovery. Make sure to follow the Microsoft specifications to reporting bugs. Making a post noting “the report designer is broken” just does not cut the mustard. Provide concise reproducible steps, code examples, observed behavior, detail what you expected to happen, your hardware configuration, and any additional notes you think are important.

Happy testing.


Lots of people are remembering tips and tricks Drew Speedie passed along over the years. It was one of his many specialties. In the spirit of this I want to pass along something I have accidentally demonstrated three times in the last couple of weeks and something I learned this afternoon.

With the BROWSE window open you can press Ctrl+F to bring up the VFP Find dialog. Enter in any text and click on the Find Next button and VFP will search all the columns in all the records looking for the text you typed in. It is a quick and dirty way to find keys, or strings in columns, or numbers in numeric data. This does not work with memo fields or date/datetime fields. The searches start with the current record.

I noted this was accidentally demoed. I cannot say how often I use this little trick, but it has been around forever. Fortunately a brave developer was not afraid to ask about what I did when I “demoed” it at the Detroit Area Fox User Group and a couple of others learned the trick as well. I was looking for something in the DataExplorer metadata at the time. Same thing happened on my southern California tour last week.

Today I was working at a client and did another accidental demo of the feature. This developer has been using FoxPro since the 80′s and was surprised when he saw me look up data in a cursor. His usual technique is BROWSE FOR something. Two different approaches to the same end.

So my friend turns around and shares a cool tip I did not know about. Adding the DISTINCT clause into an aggregate function in a SQL Select statement:

USE (_samples+"data\customer") IN 0 SHARED

SELECT ;    COUNT(*) as nTotalCustomerRecs, ;    COUNT(DISTINCT Country) as nDistinctCountries ;  FROM Customer  INTO CURSOR curBeAmazed

I was amazed by the result set! I tested this all the way back to VFP 5.0 and it works (except for the _samples system memvar).

I swear you can learn so much about development and Visual FoxPro by watching any other developer. It does not matter what your experience is, or what the other developer’s experience is. I have seen this happen repeatedly throughout my career. It is so cool to do pair programming and gain this knowledge. This is also a common experience attending conference or user group presentations.

Drew would be proud!


I cannot even begin to express my sadness about this, but I read minutes ago that Drew and his son Brent died in Yellowstone park a couple of days ago. I sit here stunned with tears rolling down my cheeks. Such a tragedy.

Our community has lost one of the best people around and our thoughts are with Irene, all of his family and friends, and the entire Visionpace family.

You both will be sorely missed. I hope you both get great seats in heaven when hockey returns.


Last week I noticed Calvin and Hobbes returned to the newspaper comic pages. I am very excited by the return of my all time favorite comic. Today I did a little research and found out this is only a four month special rerun of select strips to help promote The Complete Calvin and Hobbes. Bummer. I thought Bill Watterson was getting inspired again to bring joy back to all his readers who miss the daily dose of childhood imagination and humor this strip brought to so many of us.

I guess I will just have to enjoy it while it lasts and start saving my quarters again. The three book set is 1440 pages, has every strip printed, and costs US$150 (but I saw it as cheap as US$85). I am a huge fan so this will be added to my MustHaveIt list.


It only took me 14 hours from the moment I left home to arrive at my hotel here in LA. I am probably the only geek who flew to LA today who is not headed to the LA Convention Center. I saw plenty of developers hanging out in the airports. Quite a few had TabletPCs on my flight.

I come to earthquake central for a different geeky reason. I am here to spend time with Fox developers in LA, Orange County, and San Diego. I have been looking forward to this trip for a long time.

Naturally the moment I land I get a call from my wife who is all worried because the stinkin’ news media had falsely reported the power outage suffered in downtown LA was under suspicious circumstances. Could be terrorists. No, it was caused by human error. Someone cut the wrong wires and made another mistake when they reconnected them. A mistake any of us could have made, but this one happens to affect a half million people and puts geeks in the dark at the PDC.

Another media gaff. I am really considering swearing off listen to old-fashion media outlets. To put it politely, they really have their heads in a dark channel. They will point out every little thing someone else screws up, every one of the littlest mistakes normal humans make, point out failures big and small, but don’t even question their inability to get the facts straight. There will not be any screaming for someone’s job. They will not holler for an instant investigation on this. They will continue to editorialize stories and present it as fact. Total nonsense, and I am really sick of it. Sorry for the rant, it must be all this smog and the sleep depravation.

To top things off, there was a suspicious package in downtown Ann Arbor where I was earlier in the morning to drop off a care package for my son on my way to the airport. The radio folks in the Detroit area were chatting up 9/11 and how extremists made threats the day before. More hateful FUD. Never fails. When ever I travel there is something going on.

Oh, one more thing. Where is this expensive California gasoline?? The stations at home are still hovering close to $3.00 and here in California I have seen it as cheap as $2.75.

Maybe I will crash the PDC on my way down to San Diego Thursday. {g}


Burt Rosen of Software News and Views posted a review of our ViewEditor Professional. Burt does Visual FoxPro development and also runs a Web site dedicated to reviewing business software. He is starting to review VFP related tools and books, writes for the UniversalThread magazine, and is a presenter. My favorite quote from the review is:

“In summary, I give ViewEditor an A for features, an A- for documentation and an A+ for technical support. I highly recommend this product. At a $75.00 per developer license fee, it is well worth the money. I easily saved the cost of purchase in my first use of this software.”

Thanks to Burt for the kind words. I can now reveal that Burt was the developer who provided me the reproducible steps to finding the ViewEditor table/view name ordering bug I complained about in my Having ASORT of Frustrating Day post. That might explain the A+ for tech support, but the rest of the high grades are mostly Steve Sawyer’s doing.

If you want to read the entire review you can sign up for a free thirty day trial on his Web site.


I have always been fascinated by patterns of numbers. Today it was all nines.

September 9th (9/9), I overslept and woke up at nine o’clock. I had nine emails waiting in the inbox and nine more in the Junk Mail folder this morning. On my way to my client I rolled the odometer from 16399 to 16400 miles and spent a lot of time working with their division 9 conversion.

All true.