Archive for August, 2006


(with much thanks to Rick Borup for permission to use his theme…)

During my Use and Extend the VFP Data Explorer session at the Advisor Summit I used a magnifier to zoom some of the hard to read user interface objects and text for the session attendees to see better. VFP MVP Igor Vit was impressed by this handy presentation tool and asked me for a link after my session.

Mike Henderson (friend and fellow VFP developer) pointed me toward this utility a couple of years ago when we were working together on a gig here in Detroit.

I emailed the link to Igor, and figured I should definitely pay it forward to you as well:

Virtual Magnifying Glass

Yep, it is open source and it is available for free.

I use it for more than just presentations. I also use it when I am looking to line things up on forms and visual classes and I cannot tell for sure how close they are. I run at a very high resolution (1900×1200) so every once and a while I need to zoom things up so I can see the nitty-gritty detail.


I just want to post a few closing thoughts about Advisor DevCon. (I am writing this on the flight home)

The Advisor organizers did a great job onsite and were very helpful in answering my questions. Being a rookie speaker at the conference, you never know exactly how things will go. The folks were helpful. A special call out to Heather who was kind enough to stop by my sessions and give me the “five minute” warning. Nice touch.

The conference hotel was very nice and the facilities were outstanding. The prices for the food were a bit pricey, but as far as Advisor “resort” location, this one was as cheap as they have come. There was a nice selection of restaurants at a nearby mall and I enjoyed many good meals with friends. My only gripe about the hotel was the fact they wanted to charge me US$10 a day for Internet connection in the room. Advisor provided lots of connections for us to use in the conference meeting area so I used those instead. I stay in less expensive hotels all the time and they have wireless or wired for *FREE*, as it should be. Resorts trying to stiff me for this is ridiculous, but I digress.

The lack of a speaker dinner did not bother me. In fact, I like hanging out with speakers and attendees for dinner and lunch so this meant I got one more meal to share with all my friends. While the dinner is a nice gesture to say thanks to the speakers, I am thinking these should become an artifact of past conferences, or done before or after the conference. I did not miss it at GLGDW 2006 and did not miss it here.

Arizona in August was not something I was honestly looking forward to, but it really is a dry heat with lots of air conditioning indoors. The timing of the conference was not something I appreciated with my son moving back to college and missing the last week my girls are off school. But it all worked out. Next year I hope the coordinate with the other conferences to provide better timing and better value to the Fox Community.

In my original post about the first day of the conference I mentioned there were probably 100-120 people. This was an unofficial estimate based on the attendance of Alan’s Keynote and figuring some people were not attending the 8:00am session. I attended many sessions and did some unofficial counting. On average there were maybe 70 people in attendance of both sessions. Maybe the VFP attendees were hanging out in the other tracks, but I am guessing there were less than 100 VFP attendees at this conference. Unfortunate.

There were only three VFP vendors at DevCon (Stonefield, DBi Tech, and Micromega). I know the reason is pure economics. I would have to sell 20 White Light Computing tool bundles at full price to break even and I have never sold even close to that at any conference. I applaud those who made the effort though. I also hope they all sold a bunch of licenses and it was worth their time and expense. It was good seeing the guys from DBi and look forward to the DBi bucks they are offering at Southwest Fox in October. Great supporters of the Fox Community.

One huge take-away from the conference was the CD-ROM with all the white papers. I started reviewing some of these on the way home. A big thanks to the speakers who worked hard on these!

Second big take-away is the discovery of the Strataframe Database Deployment Toolkit. I have been looking for the equivalent to the Stonefield Database Toolkit for SQL Server. Last night at dinner Doug Hennig mentioned this product to me. This is something I am going to look into next week when I get some time after catching up on all the work I delay this week while I was having a bunch of fun at a conference.

OK, that is all for the Advisor Summit. Time to wrap up preparations for my Southwest Fox sessions. For those that have it, have a great Labor or Labour Day weekend. I for one am getting a head start tomorrow.


The final day. If you have attended any conference you know the routine. Drag yourself from a short slumber and slide into the 8:00am session. If you are lucky and attending the conference you might be able to get up at 7:30, maybe hit the snooze button to get an extra ten minute, then scramble into the shower and head down a couple minutes late. That does not work if you are the speaker.

I did not have this luxury Wednesday morning because I presented my Real-World Visual FoxPro Application Deployment session at 8:00am. I always get the first session of the last day. It does not matter if the organizer’s name is Whil, Russ, Mike and Toni, Bob, Rainer, or John. Somehow my reputation for avoiding hangovers has won me the honor of kicking off the festivities of the last day. I really don’t mind doing it, but I rarely sleep well when I know I absolutely have to be up early. So in typical DevCon fashion I woke up every hour.

The best part of the 8:00 session is you get the hard core conference attendees. These are the hardy folks who know how to tough it out. These are the folks you want in the fox hole with you when you are doing battle with the evil-doers. I had a good group Wednesday morning. They participated and shared their ideas and approaches for deployment. I learned a few things as usual. It was a good session from my perspective, and all but one eval was very positive. Thanks to all who came out.

Next session was back to see Toni Feltman give her billionth session of Advisor DevCon (actually it was her fifth one, which she keeps reminding me how highly unfair that I only had to present twice {bg}). Toni presented Build Cutting-Edge Web Applications with AJAX and Visual FoxPro. I figured it was important for me to learn more about the use of house cleaning products and how they interact with VFP. OK, bad joke – did I mention I was exhausted? Actually, Toni did her normal excellent presentation showing us how to use existing Web and Web Browser technologies. I have done some reading on this topic and saw Rick Strahl present on it at the German DevCon last year. Toni helped me solidify my understanding. Now all I have to do is find the right project. Five of five stars.

Next up was Craig Boyd and Use GDI+ in Visual FoxPro and Reports. I thought it was one of the best sessions of the conference. I have watched how Bo Durban, Cesar Chalom, and Craig Boyd have written 50,000 lines of code for the GDIPlusX project on VFPX (SednaX) to take the work Walter Nicholls did on the GDI+ Fox Foundation Class (FFC) to the next level (or as Colin Nicholls mentioned in the session, complete the vision Walter Lisa Slater Nicholls designed in the VFP 9 GDI+ FFC). Craig provided the background and the demos to help us understand how we can really extend VFP graphically. This was the most attended session of the conference except for the keynote, at least of the sessions I attended. SIX out of five stars.

I played hookie for the last breakout session and instead had a great conversation with wOOdy (Juergen Wondzinski) about some of the cool projects his German company has going at the moment, and how busy he and his team are these days kicking out VFP solutions. This is something I have been hearing from a lot of VFP developers. Same story: so many projects, not enough time and available programmers to get the job done in the time the clients want it. This is good news for VFP developers and the type of problems we want as business owners and employees. I am very excited for wOOdy!

I also talked with Christa Ayer from Advisor Media about some more articles she wants me to work on for future issues of The Advisor Guide to Microsoft Visual FoxPro. I have corresponded a lot with Christa with the publishing of my series on VFP Builders. Christa has been a joy to work with during the series and has been more than flexible letting me wedge these articles into my super busy schedule. It was nice meeting her in person and I look forward to the upcoming articles.

By the way, in case you are unfamiliar with these “unofficial sessions”, they are as beneficial as attending one of the breakout sessions. If you are sending employees to a conference and think they are goofing off when they play hookie like this, put it out of your mind – they are learning valuable information and making important networking contacts. Playing hookie is okay at conferences. Five out of five stars {g}.

We closed the conference with a Question and Answer session. I thought this was much better than previous Advisor DevCon’s I have attended. The reason is simple: the questions were positive in nature, and were real-world issues that the people in the room needed solving. Thanks to all who attended and to everyone who provided feedback to the people looking for solutions. I know I learned a few things!

I walked out of the session thinking, wow – that conference flew by. In some ways I am happy to be going home to see my family, but in other ways I would not have minded one more day with the FoxGang and some more sessions. It has only fueled the fire for the rest of the conferences this year. More general thoughts to be posted later.

(updated 4-Sep-2006: corrected Colin Nicholl’s comments about the vision of the GDI+ FFC class).


The Advisor Summit continued into the second day in the heat of Arizona. The sessions rooms are air conditioned in the very nice facilities here at the JW Marriott Desert Ridge.

I started out my day attending Doug Hennig’s Integrate RSS and Visual FoxPro. Doug did his usual excellent presentation on a subject I think is starting to mature. More and more developers are integrating RSS feeds into their desktop and Web applications. Doug demonstrated some example code I believe can be used right out of the box. It was a great follow up to the session Rick Borup gave last year at Southwest Fox. Definitely five stars.

The second session slot of the day included a couple of sessions being given for the second time at the conference and I have seen both so I took some time to catch up on some emails I owed a couple of clients, and wrote and post the day 1 blog entry.

I picked Cathi Gero’s .NET with Visual FoxPro in Action session for the third slot of the day. Cathi is extremely knowledgeable on both .NET and Visual FoxPro, and the session delivered on my expectations. I don’t really do .NET development. Doug Hennig has referred to my experience as it being a “read-only language”, meaning I have only read about it. So I like to attend session like this one every once and a while to get a little more exposure to the product. Five stars.

After lunch I decided to absorb Lisa Slater Nicholls’ Interoperability Scenarios using XML and Visual FoxPro. Lisa’s session took several different XML concepts and addressed each one during the session. Lisa started the session with a walk down memory lane and some of her writings about reporting and her inspiration for the session. One of the ideas demonstrated is how reports will be extendible in the future using concepts similar to member data. Interesting ideas, four out of five stars.

Next up was Alan Griver’s Integrating Visual FoxPro Data Sources with Visual Studio. As noted earlier in this post I am not a Visual Studio developer, but I already saw Toni Feltman’s InfoPath session in a rehearsal at the Detroit Area Fox User Group. Alan did his usual top-level presentation and gave us some insight into the Fox Team’s implementation of DDEX for the VFP provider. What DDEX does is tell Visual Studio 2005 how to interact with a VFP DBC and the tables inside the VS Data Explorer. It will simplify interaction with VFP data in the VS 2005 IDE. It made me wonder how many Visual Studio developers use DBF files as a data store. Four out of five stars.

I finished up the break out session slots by attending Toni Feltman’s Visual FoxPro Client-Server Data Access Techniques. Unfortunately I was a little late in arriving because I had to attend to a client matter just as her session got started. This was Toni’s third session of the day and she still had the same energy you expect from her regular session. Toni detailed all the pros and cons with the different data access methods (remote views, SQL Passthrough, Stored Procedures, and CursorAdapters). She was right on as usual, but was non-committal on what was the “best” approach for VFP developers. This was key from my perspective. I have listened to different developers say approach X is the only way to go with remote data. They are willing to argue to the death to defend the decision. The truth is (at least from my perspective) is a combination of the techniques is going to best serve the VFP developers. I am looking forward to reading her white paper on the subject. Five out of five stars.

After dinner I attended part of Ken Levy’s Developing with the Windows Live Platform bonus session. I really don’t have a lot of knowledge about Windows Live other than using the Messenger so I was hoping to become enlightened on the subject. Unfortunately I was late because it took longer to get our dinner than we expected, but it was still interesting, and I learned something about bots. I hear how Microsoft is planning on making money from this, but I have not determined how I will, nor have I seen anything that hit me as a serious productivity booster to make me more profitable. The jury is definitely still out on this. No rating because I did not attend long enough to make the call.

More to come on day 3, but the post will definitely depend on my access to the Internet and it might be posted later tomorrow before I head out for a four day weekend to recover from the standard conference exhaustion already kicking in.


Sorry for the delay post, but I have been a bit busy here in Arizona at the Advisor Summit. I am here as a speaker for the first time.

To understand this conference completely, you might not know there are really six conference going on at the same time. VFP, MS Access, MS SharePoint, SQL Server/.NET, Lotus, and Novell GroupWise.

VFP, Access, SharePoint, GroupWise each have two tracks, and SQL Server/.NET has one track. Lotus has three tracks.

The VFP Keynote was given by Alan Griver. Alan showed off some of the Sedna components released in the Community Technology Previews (CTP) as well as some of the reporting changes expected for the VFP 9 SP2, and the some of the community happenings like the VFPX project (referencing the GDI+ project headed by Bo Durban) and promotional videos generated by the community. He opened the session with a tribute to Drew and Brent Speedie. He showed a couple of Kevin Ragsdale’s promotional videos and some cool GDI+ examples developed by Cesar Chalom. Overall it was is good keynote. Not a lot of flash of past years, but I would say there was more concrete examples than PowerPoint fluff. Definitely more on direction than marketing junk we have seen at more recent conferences. Overall, I’d rank it a 4 out of 5 stars.

Based on the attendance at the Keynote, we are estimating there are between 100 and 120 VFP attendees at the conference. This is an estimate and nothing official.

Next I attended Craig Boyd’s How to Build .NET ActiveX Controls for Use in VFP session. Craig showed how you can simply build controls in VB.NET or C#.NET to add more modern UI controls to your application. Honestly, it looks pretty easy, but only because Craig did all the hard work for us by building a recipe for us to follow. I am looking forward to reading his whitepaper on this topic. Overall, I’d rank it 5 stars.

Next session was Jim Duffy’s SQL Server 2005 Express and VFP. I only wanted one thing out of this session which is the installation and initial configuration of SQL Server Express. Jim took a risk and scrapped his install and started from scratch in the presentation. His knowledge on the subject was good and he delivered on the things I wanted from the session. There was not much VFP in the session, but I think the overall value was extremely high for developers considering upgrading from MSDE. The best part of the session was the comparison between the different versions of Express (which I was not aware of), and I learned the SQL Agent is not included in Express as it was in MSDE. So I guess I gain Vista compatibility, but now I have to build code to schedule backups for my clients. Overall – 5 stars.

Lunch was good – Mexican.

I skipped the first session of the afternoon because I saw both Tamar Granor’s Customizing the VFP Property Sheet session and Cathy Pountney’s Advanced Reporting in VFP 9 session. Instead I rehearsed the material for my Use and Extend the Visual FoxPro Data Explorer session, which was next. According to the evals, it was well received. This session was the first time anyone outside of Microsoft has seen some of the potential changes coming in the Sedna version of the Data Explorer.

The last breakout session of the day was Craig Boyd’s Windows Vista and VFP. Craig spent a lot of time showing us Vista and the capabilities of Vista. Specifically he concentrated on feature with APIs VFP developers can hook into. I think the API to the desktop search will be something very cool and beneficial to business applications. Craig also showed us VFP 9 SP1 (not any previews of SP2 which is suppose to address Vista issues) and how well it is already working and some of the glitches he has experienced with the Report Preview window. Great session that got me thinking about some of the future possibilities. After all, the Vista compatibility is my number one feature of SP2 and Sedna. Five stars.

There was a good reception after the break out sessions. The food was excellent and the discussions fun. Ended up outside with Rainer Becker, Craig Boyd, and Kevin (sorry, I have forgotten his last name). We discussed VFP related stuff and hassled the waitress who delivered cold food the night before until 12:30 or so. Good times and a sore stomach muscles from laughing so much. A great day.


Congratulations goes out today to Dan Taylor of PowerChurch Software. Dan’s entry was randomly drawn from the folks who registered for Southwest Fox 2006 in the first 15 days of August. Dan is the winner of the $300 scholarship from White Light Computing. This is the first door prize we are giving for Southwest Fox 2006.

This is going to be Dan’s first trip to Southwest Fox and he is very excited about going.

Again, congratulations Dan. I look forward to meeting you in Arizona.

Thanks to all who have registered for the conference. Keep them coming. There is no better time to get your registration processed than right now. The conference is only 63 days away!

(Yikes, I better get my session materials finished up)


I found one more disaster recovery issue with the loss of my hard drive.

Today is administrative day here at White Light. Every Monday morning I cut expense checks, process invoices, do a little marketing, correspond with a couple of prospects, send monthly reports to the accountant, etc. It is a way to get all the stuff I least enjoy about my job done before I have fun for the next 80 hours or so.

I ran my bank reconciliation report after balancing my checkbook. All the reports I generate out of Quickbooks get printed to Acrobat 7.0 so I have a permanent electronic version (naturally backed up for offsite storage). The report displayed in the viewer like it always does, but today I was prompted by a “your system has changed, please activate or this product will no longer work” message. Fortunately I was connected to the Internet and all went well with the activation.

But what would have happened if I was not connected? What if I was testing some reports in my applications while I was sitting on the beach at my in-laws cottage? What if I was at a client’s office and running some reporting scenarios, or they asked me to print an invoice while I was visiting? Would I have been hosed? I think so. Sort of reminds me of the stories where someone is on a plan about to use one of the Microsoft Office apps and it prompts them with a surprise activation sequence. Don’t have your CD or DVD with you? Bummer.

So the question begs: what does Adobe know about me and my machine?

Looks like another case where the pirates have won. I understand the need for activation, but in the long term it really only hurts those of us who are honestly licensing our software. The pirates know all the hacks and where to go to get the ones they have not used.


This week I was able to test part of the White Light Computing disaster recovery plan for my primary development laptop. I experienced the siuation I believe every computer user fears most with their machines: hard drive failure.

Wednesday evening I returned home from one of my clients. I pulled my laptop out of my backpack and put it on my desk. It started whining and screeeeeching, and making the horrific clicking sound you hear when the drive is beginning to fail. I was very fortunate in the fact that the drive did not immediately die, and I was able to get it to stop making the bad noices by placing it absolutely level on the desk (in case you are wondering, I normally place it in a port replicator on a stand on the desk which is not level). If I picked it up it would click and screech.

I immediately connected it to my backup drive. I am using two Western Digital 250MB USB 2.0 drives to back up each of the data partitions using Powerquest’s DriveImage (now owned by Symantec and the technology rolled into Ghost 10). I ran the back up jobs normally scheduled each night. I just backed up the C: partition on Saturday and have not loaded any new programs so I figured I was okay on this.

Thursday morning I called HP support and reported the problem. The young lady was nice enough to listen to the clicking and screeching, but had to follow procedure to get my drive replaced. I told her I was willing to do so as long as none of the steps was FORMAT C-colon. The BIOS drive diagnostics showed nothing. I wasted more than an hour running these which is time lost forever. I told her I was going to buy a replacement drive anyway and needed the drive specs. She offered to sell me a 80GB drive for US$628. I asked her if she was offering me a new laptop for that price.

I picked up a new 120GB drive for US$200 at the local CompUSA. It took me 15 minutes to install it. I had some work to do at one of my clients (who is kind enough to provide me a boat anchor to work on when I am in their office). I was hoping to restore the drive while working on their conversion code. For some reason I could not figure out how restore the images from the DVDs I burned and I did not think to bring my USB drive.

I was able to handle all my email via the Web interfaces. I realized at the time I did not have access to any of my email templates I use regularly. I have five email templates used to correspond with developers who buy my developer tools, and a couple more for reporting hours to clients. I also have several templates to answer common questions on the various FoxPro forums. This was failure point number one. To fix this I will be putting the templates on a thumb drive.

Thursday night was our monthly DAFUG meeting. Cathy Pountney visited and rehearsed her testing session. It was a great meeting, but it delayed the reload. I got home after 10:00 and spent some time with the family. They were watching Harry Potter 2 and I got sucked in.

The reload started at 11:30. I was anticipating each partition restore to take a little less than it takes to back the partition up because I was verifying the image before loading. The 25GB C: partition took less than an hour (it takes close to 2 hours to back up). I did not watch it and was planning on it running overnight. I could not sleep so I checked it and it was already done. I kicked off the 15GB D: partition that took fifteen minutes, and the 30GB J: partition took a little more than a half hour.

Rebooted and the machine started just like it did before the drive crash. SWEET!

I had to change the drive letter for the J: partition as it was assigned to F:. I had to reactivate the IntelliSync software (used to sync my Treo phone). I was half expecting to have to reactivate Windows XP because the drive size changed, but it did not ask me to do so.

The one thing I was surprised about is Zone Alarm lost its marbles. I had to go through the cycle of approving Internet access for several applications. This is not a big deal, but aggravating. So action item number two is to export out my Zone Alarm settings periodically.

I had the machine in working order by 3:00am including downloading emails, checking a couple of newsgroups, and letting FeedDemon refresh the RSS feeds.

The only other problem I have experienced is files saved to the desktop. Under my partition backup scheme, these files are only backed up once a month when I image the C: partition. I happened to create a spreadsheet Monday morning and saved it to the desktop. This is really rare for me, but it pointed out a hole in the disaster recovery plan. It only took me a couple of minutes to recreate the spreadsheet and in this case I still have a working drive I could have recovered it from. If the drive was completely dead I could have lost nearly a month of work. Action item three is to ensure the Documents and Settings folder gets backed up more frequently and I only have shortcuts on the desktop.

I lucked out. The situation could have been catastrophic. It was not. I did lose much of a day, but was still able to deliver some work for one of my clients. I had to delay another client for something I was hoping to deliver Thursday, but he was very understanding.

I am going to buy a second 120GB drive later today and go through this process on a regular basis. It was an excellent way for me to test the recover process. The thing that slowed me down was the time to go get the drive and the time to restore the images. If I had the drive I literally would have been up and running in a couple of hours.

I only tested out part of my disaster recovery. What if my machine died completely? I have a spare laptop (older but still working as a test machine) and the data images I can use to restore the latest files as apposed to restoring the partition. Now if a fire destroyed both laptops I would be in trouble, but this is a risk I am managing.

The questions of the day are:

  1. Do you have a disaster recovery plan?
  2. How good is your disaster recovery plan?
  3. How long would it take you to get back in business?
  4. Would you be able to recover all your data?

I am very happy with the way DriveImage saved my day. I have used it before to restore files, but never to restore entire partitions. Yes, I never really fully tested my disaster recovery! I fell into the 95 percentile who don’t. I am ashamed to admit this, but I can also say I am part of the luck few (maybe the 5 percentile) who survived despite not doing the appropriate testing.

So how well would you survive losing the drive on your primary development machine?