Archive for February, 2006


Just in case you were heads down yesterday like I was and did not see Milind sneak the March letter to the community out a couple of days early: the first Community Technology Preview (CTP) of Sedna was released yesterday and available to download.

The only word of caution to note is this is pre-beta software. It as been tested internally, but as you know with any pre-production software, it might not be ready for prime time or production applications. I still recommend downloading and testing out the NET4COM component if you are interested in the functionality provided in the specification.

There is more good news from Milind: the announcement of the initial list of seven ActiveX controls available for free from DBi for Sedna customers. I have used DBi controls in the past and have been extremely happy with the results. This is great news and a huge contribution from the folks over at DBi.


This week I upgraded my cell phone to the Treo 700 Smartphone as part of a technology update and plan update with Verizon Wireless. I read a number of reviews and talked to a couple of people who already own one and everyone was very positive. For the most part I have been impressed, but I have two huge problems I have not been able to resolved yet.

The Treo is a PocketPC running Windows Mobile 5 and a phone. I decided I wanted to integrate these two technologies together. I have a number of friends who have done this and have been very happy. I have been using a Palm Pilot (first the III, and then the m515) running the Palm OS. Everything on the Palm platform is seamless. Both of these have been real good machines and have saved me a lot of time managing my schedule and tasks. The two killer apps on this platform for me have been the To-Do List and a password database. I have been using PDASafe ID from Handmark for years and it works great and literally is the reason I stuck with Palm for so long. But the handwriting is on the wall with Palm moving the Treo to PocketPC.

Fortunately, I recently discovered PDASafe ID was updated and is now called SplashID available from SplashData. I upgraded today for $10, downloaded, installed, and quickly ported my data (over 300 password entries). The port to the Treo was pretty easy once I figured ActiveSync does not automatically sync the data between the app on the PC and the app on the PocketPC. This was the easy part.

The problem I am having is syncing my Outlook calendar, contacts and tasks. I figured this would be the simplest part. After all, ActiveSync is from Microsoft and Outlook is from Microsoft. The Outlook notes are syncing fine. ActiveSync is reporting support code 0×85010014. I have only found one site that discusses this problem most of the solutions tell you to upgrade to ActiveSync v4.1. I am already running this version. Should be fun figuring this out. I’ll keep you posted. Maybe there is a Windows Mobile MVP out there with the answer.

The other problem I have is going to take Microsoft updating ActiveSync. Apparently no one at Microsoft thought anyone would have multiple contact folders as subfolders under the Contacts folder. I happen to have more than a dozen and no one in the main contacts folder has an email address. This is all part of a strategy developed years ago when viruses started sending out emails to everyone in the contact list. If I ever get attacked there is no one to send to. The Palm in conjunction with Chapura has been dealing with this setup for many years. So I am looking for a solution for this problem in my limited spare time. If you have a solution up your sleeve please pass it along. I am definitely not opposed to paying for software that will solve this if it is reasonable.


Some developers are surprised to find out that the Project Manager is a drag-n-drop client and server. This means that files can be dragged to the Project Manager from many sources including other projects and from outside of Visual FoxPro. If you drag files from the Windows Explorer all the files will be added to the project.

Dragging from one project to another
Dragging files between two different projects creates a reference in the second project for that file. If there is a description for the file, this description is also added to the second project, even for files that don’’t store the description in the file itself. If the file is a program set as the main program of the originating project, VFP will prompt you with a question that asks if you want to make the file the main program in the second project. You do not need to be on the same page in each project. The file is naturally added to the correct category based on the file extension.

Drag objects from a project to a designer
Dragging files from the project to a form or class designer can save time during development. Many project objects can be dragged to the Form or Class Designer. The dropped objects are instantiated in the designer.

Dragging a field from a database contained table, view, or free table to a form or class will instantiate the associated class for the data type. The advantage of this feature is that it creates a bound object in the class without the use of a dataenvironment. Many developers I have mentored over the years feel they need to first drop on a class and then set the ControlSource.

While the manual setting of the ControlSource works, it requires developers to perform an extra step. The other advantage of this technique is that it incorporates the IntelliDrop capability seen when you perform this operation from the dataenvironment. This way the classes specified in advance are used instead of the VFP base classes. Tables dragged to a form or class will instantiate a grid. If you right-click and drag, you are presented with the option of the grid class (or other class you have set for the Multiple setting in the Field Mapping in the Tool|Options or via the Task Pane Environment Manager).

If you want a specific class dropped on another container class, you can select it in the Project Manager and drag it to the container class. This does not bind the object like the drag operation of a table field. This allows you to override the IntelliDrop settings that are premapped. I expected that an icon dropped on a form might set the form Icon property and that dropping a graphic would generate an image object. They don’’t. Other objects not mentioned in this section cannot be dropped onto a form or container class.

Dragging from project to program code
In the same spirit described in the preceding section, you can drag and drop different project objects to code editors. The name of the object is displayed in the code window. For instance, if you drop a field name in the Command Window, you get the field name. Unfortunately you do not get the table.fieldname syntax. This works for every object type in the project except the stored procedure names. The only objects that carry over the file extension are the files in the “other” category.


I was reviewing some of my past posts on this blog this morning looking to see what I have posted on user groups and noticed today is the first anniversary of this blog. Pretty cool. I know I was a late adopter to the blogging craze, but it is never too late to get started. If you want help in starting one just send me an email. I will extend the same help to you that I was given by several of the Fox bloggers when I got started last year.

Some interesting statistics:

  1. 135 posts
  2. At least one new client project
  3. Many new friends
  4. Several new critics {g}
  5. 6 requests for reposts and/or translations

I have really enjoyed writing the posts and hope you have enjoyed reading them.


Last night Andy Kramek stopped by the Detroit Area Fox User Group and presented his “Advanced SQL Queries in VFP 9.0″ session and wowwed the local Fox developers. It is a great session and one Andy is anticipating presenting at Southwest Fox 2006 in October. I anticipate this will be a popular session at this conference and one many developers will walk away from with a this-session-paid-for-this-conference type review.

DAFUG has really been blessed with excellent presentations in 2006. Last month Tamar Granor impressed us when she rehearsed her “Office Automation Beyond the Basics” conference session. The next two months we have more conference rehearsals with Mike Feltman presenting “How’d they do that? Inside F1 Technologies Visual FoxExpress” coming in March, and Cathy Pountney rehearsing her GLGDW “Best Practices for Project Management”.

Detroit has been very lucky when it comes to attracting great speakers from outside of our area and have several really solid presenters locally so each month we learn a lot and just as important, have a lot of fun. Our meetings do not end when the presentation is done. We always go out to get something to eat afterwards and you can learn more at these informal “sessions”.

Jealous? No problem, there are a lot of Fox Developer groups around the world so go join one. I have visited some really good groups over the years as you may know from reading past posts on this blog. Can’t find one locally, start a thread on one of the many Fox forums and see if you can hook up with other developers in your area. This is how we started DAFUG back in 1994. It will take some time and energy, but I can tell you it will pay big dividends. Sure you can get answers to your questions on the various online resources, but there is no better benefit to getting together with Fox friends than networking, just like the conferences.

I have been reading how groups are recently restarting in Toronto and Central Pennsylvania and watched the Chicago group resurge in the last couple of years. I suspect this is all part of the Visual FoxPro Surge Craig Bailey has been touting.

If you are ever in the Detroit on business or pleasure check out the DAFUG Web site to see if we are meeting when you are in town. We always welcome visitors.


A couple of weeks ago when I got the latest and greatest DVDs from Microsoft with my MSDN Universal subscription I noticed Office 2003 had a new service pack. I have not read about any problems so I decided to install all the service packs for Word, Excel, PowerPoint, Access, OneNote, FrontPage, Publisher, InfoPath, Project, and Visio.

For the most part there have not been any problems. The information about Outlook 2003 SP2 on Slipstick sounds promising, but unfortnately I have experienced several issues. Out of the entire suite I use Outlook the most. Guess what application in my opinion was affected the most by SP2? Yep, Outlook.

The first thing I noticed is it changed all my preferences for the Favorite Folders. This ticks me off because it is my favorites, not anyone elses. Several folders were removed, different ones added, and they are ordered differently. Who tested this stuff? And if it met the specs, who the heck wrote the spec to do this?

Next thing I noticed is my contacts. On the contacts page is My Contacts. Like the favorite folders they rearranged the order to be in alphabetical order. So my White Light Customers is now near the bottom, instead of the number one in the list. Stupid spec or stupid testing?

The next thing I noticed is all my plain text emails have the Arial font instead of the Courier New font. Sure enough I hunted down the settings to see they were changed. Why would anyone assume I would prefer their choice over my own?

I am guessing it took me 30-45 minutes to fix everything back to what I had before, and probably another hour to install all the updates. Wonder who I should send the invoice to at Microsoft?

There are a couple of other things that have been tweaked in Outlook that I had to re-tweak and I am not sure I have found all the changes made on my behalf. I can say the changes made to Outlook 2003 (especially in the fight against SPAM and the ability to not show graphics in HTML message) were the driving force to get me to adopt Office 2003 in the first place. Otherwise I was perfectly happy sticking to Office XP. For Microsoft to slam me with preference tweaks when installing a service pack is plain dumb. So if you have not updated to the latest service pack, maybe you should consider sitting on this one.

Off to find a bug reporting mechanism to see if they will address the issue, then back to work.


Yesterday I got involved in an email conversation about having FoxPro on my license plate. I see Whil Hentzen has been posting some geeky license plates and shows Dave Aring’s “FoxPro” license plate in the state of Kansas.

I know several VFP developers who show their Fox colors on their plates. Cathy Pountney has “FoxRox” here in Michigan, Marcia Akins has “FoxPro” in Ohio, Andy Kramek has “VFP MVP” in Ohio, and Sue Cunningham had “FoxPro” in Pennsylvania when she lived there.

The best story I have about my “FoxPro” license plate is when I was working at EDS. Another member of my team and I just finished a two day app for the GMAC Treasurer’s office. This app saved GMAC from losing 10 Million dollars. We literally cycled through the entire software cycle from requirements to deployment in two days and with no bugs reported. A couple days after the deployment a lady comes running up to me in the parking structure and says she saw my license plate and was wondering if I knew anything about FoxPro.

Apparently some hot shot programmers just swooped in to her department and kicked out an app for them and were “off working on another project and do not have time for us.”

I asked her where she worked and she told me the GMAC Treasurer department. I gave her another business card and told her all she had to do is call, we would be happy to help her out. {g}


I don’t really need a reminder why I love working for myself. But, today I experienced rush hour for the first time in over a year. Missing rush hour is one of the best parts about working for myself. I really hate wasting time and to me there are few things worse than sitting in traffic. I needed to drop off my tax return stuff at my accountants so I can get my refund sooner than later. So I headed out at 8:00am and sat in traffic for an hour crossing the suburbs of Detroit for 30 miles to the accountants office, then another 45 minutes on the way to a client on the other side of town. What a pain!

So I had to make the trip worthwhile so I included a little gift for the office manager Jean – the Staples Easy Button. Jean is great and I just wanted to show my appreciation for the hard work she does this time of year. I hit my email when I arrived at my client’s. Jean said my accountant was running around the office pressing the Easy Button, which plays the “that was easy” sound bite. It sounds hilarious just in the fact that an accountant is running around the office, but Howard is really an accounting geek so I get a bonus laugh out of the picture.

Made the whole drive time pain go away.