Archive for December, 2005


Yesterday was a great day. I started the day out playing Santa to a few developer friends, went to work at one of my clients, came home early to finish our annual Christmas/New Years letter to put in our Christmas cards (we never get them out on time), spent a fun evening with my wife’s extended family, and then came home and relaxed by watching a geeky movie.

One of the benefits of being a geek is being able to appreciate movies like Boondoggle Films’ Aardvark’d -12 Weeks With Geeks. I bought it strictly out of curiosity to see how a successful developer shop like Fog Creek works, and how they directed interns to crank out a production ready application in just twelve weeks.

I really respect Joel Spolsky (the same Joel of Joel on Software fame) based on the common sense expressed in his blog. I appreciate and value common sense. If the movie is truly representative of the way he runs his company (and I really believe it is), then Fog Creek is the reality of the vision I had for my own company more than 8 years ago when I was sitting in the cube farm at EDS.

As I watched the 80 minute movie I found myself laughing and reminiscing about past projects. I learned a couple of things and took notice on how cool his office is designed. The movie is interesting. There are no flashy special effects like Star Wars, no seriously tense scenes like you find in Indiana Jones (although the cock roach infestation was close {g}), no time traveling like Back to the Future, and no mushy romance like in When Harry Met Sally or Sleepless in Seattle. Yet I found it entertaining, educational, and done well. Heck, I even learned you can grow tomatos in the shade eighteen stories high in cement canyons.

I have given some thought to working with interns in the last few years. Our local school district has a program where the best and brightest can go to the Math, Science and Technology program for a half day. Each of these brilliant students work as an intern at the end of their junior year. The problem I have is my office is in my home. So I am not sure it would work out.

While I worked at Kirtland Associates I lead two projects with interns from my alma mater who were “slaving” at one of our clients. I assisted two students from Oakland University’s business school who entered into the Applied Technology in Business(ATiB) program. This is a great program based completely on scholarships. Jannel and Tone, and later Angela and Alan successfully worked on projects developed in Visual FoxPro 6 with Visual MaxFrame 4. They knew nothing about Visual FoxPro, and very little about developing software. But in a very short time, with our mentoring and direction, we took them through the software development lifecycle and produced a program implemented at the clients central office. It was a cool experience that I appreciate more now than I did back then. Angela now works for Deloitte & Touche LLP, Alan went to work at Accenture, Jannel started at Eli Lilly, and I see Tone is working for Ford Motor Company. Fun times.

After watching this movie I also found myself pondering the question: will White Light Computing be the realization of the original dream from 8 years ago? Or has my dream changed based on the experiences I have gained at Kirtland, Geeks and Gurus, and now White Light Computing? The original dream was based on my experiences at very large companies like Unisys and EDS where I spent the first thirteen years of my career. The dream has survived for eight years through the Y2K boon, the dot-com bust, and the lean years following the terror attacks on 9/11/2001. I also think it has been enhanced.

The last two years have revived my faith in our industry and in the realization of the goals I set out accomplish when I handed in my resignation at EDS back in 1998. I am very excited by the prospects of 2006, energized by a very successful 2005, and extremely proud of the work White Light Computing is doing to make this world a better place.

In 2006 you can expect me to keep paying-it-forward with this blog, some articles I have almost completed and those in the planning stages, conferences sessions already accepted and in the planning stages, another user group tour (although probably shorter this time around), as many forum posts as I have time for, the MenuDesigner (yes, it is almost ready for testing), SednaX, and several other things I am going to do but cannot talk about yet. This is definitely going to be another E-Ticket year.

Life is so good! Have a safe, healthy, prosperous and Happy New Year.


I wish all my readers a blessed, safe and healthy holiday season. I for one am looking forward to the break this weekend, and spending time with family and friends.


Craig Boyd Rocks! Ok, I know, I am the master of the obvious. {g}

My last post about IIS Dead in the Water proves two things.

  1. Blogs are simply powerful and an easy way to solve problems.
  2. People in the Fox Community are the smartest and most generous around

Craig pointed me to a post on Experts Exchange. So I ponied up $10 for a one month subscription and hit the “View Solution” button. The first solution was to reinstall IIS so I was a little nervous. The second solution pointed me to a Microsoft KnowledgeBase article (811259 – How to determine and recover from Winsock2 corruption). In this article is a command to reset the Winsock. So in the Windows command window:

netsh winsock reset

Reboot the computer, and whammo, bingo, magic, IIS is running properly and my OpenWiki and FogBugz is running.


I must admit, I was a little nervous resetting something important like a Winsock, but I appeared to be hosed anyway. There is a warning for me to watch:

Warning Programs that access or monitor the Internet such as antivirus, firewall. or proxy clients may be negatively affected when you run the netsh winsock reset command. If you have a program that no longer functions correctly after you use this resolution, reinstall the program to restore functionality.

Small price to pay if it materializes, but so far everything seems to be functioning so far.

So I called Craig and thanked him for his pointer and ultimately solving my problem. I interrupted him during a recording of his latest Learning Visual FoxPro screencasts, but he took time out of his evening to chat about the solution I implemented, VFP, and things going on in our community. It is great having friends who are so darn smart and more important willing to share. Thanks again Craig.

I also emailed the very helpful Technical Support people at Fog Creek so they have one more solution to offer their other customers if this happens to them.


Dead as a doornail. Less useful than a pet rock. Internet Information Services (IIS) v5.1 on my Windows XP Professional SP2 (all the latest patches) development box has decided to take a holiday break. Normally this would not be a big deal, but I use it every darn single day to access the OpenWiki running on my machine and Fog Creek’s FogBugz for my bug tracking.

I am almost positive it started with the latest Windows Update. All of a sudden I was getting these “HTTP 403.9 – Access Forbidden: Too many users are connected” errors from IIS when I accessed FogBugz. I checked this error in Google and have all the proper settings in IIS. If I ran IISRESET the problem would go away for a short period of time, then the error would come back. Huge aggravation, but I could still get to my information.

I sent in a support ticket to Fog Creek. They had me follow the documentation on the their handy support site (I already found this before submitting the support ticket), but unfortunately all my settings for IIS and user IDs were just fine. The last instructions were to reinstall FogBugz. I did and now IIS is completely dead. Grrrrreat!

I now get back a completely blank browser when I hit any of the Web site home pages on my machine. The world wide web still works, but all the sites on my machine are nothing. The pages are there and I can use the IIS applet and the Computer Management applet to access the IIS Service, but it will not serve a page.

Running IISRESET now displays this:

Internet services successfully stopped
Attempting start…
Restart attempt failed.
IIS Admin Service is disabled

Looking inside the MMC services, the IIS Admin shows it is started and same with the dependencies. If I use MMC to restart IIS I get “Unexpected error: 0x8ffe2740, Remote Procedure Call Security Account Manager.” (when are errors ever expected??)

I found nothing on the usually very helpful Microsoft Knowledgebase. Googling was not much help either. I did find a couple of interesting Developer Help sites which tease you with alleged expertise, but they want high subscription rates and I am not sure of the quality of the people even monitoring the forums. I have read several threads on forums and they typically die without any posted resolution.

Fog Creek is telling me to reinstall IIS. I thought I would check with the real world experts first. Anyone got a fix for my bind?

If IIS needs to be reinstalled, what is the impact to my current configuration of Web sites I am running (like the Wiki and FogBugz which are both classic ASP apps, and my test configuration for my Web sites I host with ISPs)?

Have I mentioned I hate software when it goes bad? Why can’t things just work together in the sandbox?


In Andrew’s The FoxShow #34 podcast he mentioned my frustration with DBFs I posted as “DBFs cause hair loss”. He noted in his show how my views broke when I changed the structure of my table. This was not correct. Breaking views is something that never, ever happens to me when I change DBF table structures.

My frustration post was about the DBF structure not matching what the DBC thought it should be. The DBC contains metadata about all the DBF columns (and much more). This is how VFP determines the mismatch. There is only one way I know to accidentally cause error 1984. You can copy a different set of DBC files (DBC/DCX/DCT) or a different set of DBF files (DBF/CDX/FPT) into the appropriate folders. This would cause the mismatch between the DBF and the DBC. I guess something programmatically could go wrong. I can see this problem occurring if you issue an ALTER TABLE, and between the changing of the DBF and the update to the DBC the power goes out or VFP crashes. I think this possibility is extremely low. No matter how it happens – it is a frustrating error.

The view problem Andrew mentioned is fairly common. So how can I claim my views never break when I change table structures? It happens to everyone right? No. The simple solution is to never write views which have the asterisk as the fields clause. You see, the view with an asterisk tells VFP you want all columns, so in the DBC the columns are specifically listed when the view is saved. If you change the table structure and do not modify the view, the DBC still only knows about the original list of columns, not the new ones added or the ones you removed.

Every view I create has the individual columns specified in the view (the ViewEditor Professional helps with this via the columns to clipboard feature). It does mean I have a little extra maintenance when I change table structures, but the trade off is well worth it to me. If you use Stonefield Database Toolkit (SDT) to maintain your table structures it automatically validates the views and updates the DBC so this problem does not bite you in the behind. Either way works great. I use SDT for reindexing and updating the structures in production all the time, but prefer xCase for data modeling and table structure changes.

So Visual FoxPro developers have at least two different ways to code views and not have them break. I would not doubt if there are more.


(Updated: Spoiler Alert)

Two weeks ago I predicted Trump would hire both of the finalists on this season’s The Apprentice. Tonight he was on the verge of hiring Rebecca after he hired Randal. He asked Randal if he thought he should also hire Rebecca. After talking up Rebecca each week and winning as a team, Randal selfishly noted there should only be one apprentice. Mr. Trump – you blew it by not following your gut.

Randal showed his true colors by influencing Trump to not hire Rebecca. Mr. Alleged Nice Guy turned out to be Mr. Backstabber. Shocking? Not in the least, after all it is all business, right? Disappointing since I thought Randal was a good guy.

The reason I watch The Apprentice is not the reality TV hoopla. I watch it to learn more about business from people who are successful. It is one of my personal philosophies: surround yourself with successful and smart people and learn how they became successful. Each week Trump provides some wisdom and I usually learn something or reaffirm something I already know. This week he broke one of his own rules about following your gut. All good business people follow the their instincts. This was a big mistake on his part..

If Trump is smart he will correct this and hire Rebecca anyway, but I doubt it.


I get the FoxPro Advisor Alert each week. This is an email summary of previous and upcoming articles I can look forward to reading. A few alerts ago I noticed Advisor is changing the name of the magazine to Advisor Guide to Microsoft Visual FoxPro. From what I understand, the change is coming with the January issue.

Interesting. Why would a magazine change its name after more than a decade of publishing? Well according to the Advisor Alert:

“To better tell the world what we do, the new name of FoxPro Advisor is ADVISOR GUIDE to MICROSOFT VISUAL FOXPRO — same publication, new name, continuing Advisor Media’s 20 years providing expert advice on Fox software.”

Darn, I was hoping for a new and improved publication. I still enjoy reading FoxPro Advisor each month, but it is getting thinner and thinner. I understand all the reasons why (just count the amount of advertising done in the magazine each month and look at the subscriber numbers), but I want more content. The magazine use to be double the size and 50% less expensive.

I also know the reality the Internet has played on the print publishing world. The instant availability of material via blogs, wikis, and developer Web sites is much faster to market than the 3 month lead time many publications face. I am sure this is why Advisor has their email alerts, have revamped their content on their Web site, and have made electronic access part of the subscription (as FoxTalk has for years).

Don’t get me wrong. The authors are good, the material is valuable, and I still easily justify the subscription. I just want more! It is my hope more Visual FoxPro developers subscribe to all FoxPro publications. It is a simple economic reality. The more subscribers, the more vendors will be willing to advertise because a larger audience is available for their ads. This means Advisor will have a bigger budget, and can pay authors to write more and print more pages. So we all would win.

Good luck Advisor – I hope you take this opportunity to improve your magazine.

If you are not subscribing to both Advisor Guide to Microsoft Visual FoxPro and FoxTalk 2.0, you are missing out on some excellent reading, ideas, and concepts.


A friend of mine emailed me today asking for sources of what’s new in VFP from an end user’s perpective (as in user interface issues). He has not upgraded since VFP 6, and is finally persuaded by the reporting features in VFP 9 to make the jump. My answer was fairly simple: read the Help file. Unfortunately he does not have the Help file for 7 and 8. I also mentioned the What’s New books from Hentzenwerke.

So I spent some time reviewing the Help files and going through the What’s New sections and documenting user interface feature improvements and enhancements. Quite a list I sent…

VFP 7.0

1) Implements: hooking into events happening in other applications.
2) Icons on menus
3) Hot tracking command buttons
4) Easier row highlighting in Grids
5) Wordwrapping in grid headers

VFP 8.0

1) Wordwrapping ToolTipText and longer tips (bumped from 255 to 4095 characters)
2) Ctrl+Home and Ctrl+End to move to top and bottom of grid
3) Updated Windows dialogs for open and save when running on Windows 2000 and XP.
4) Grid column autosizing (one or all, very similar to Excel).
5) Better control over the CommandButton position graphics
6) Tab orientation on pageframes (top, bottom, left or right)
7) Hyperlink support in text and editboxes.
8) XP Themes
9) Easier and more flexible image support (animated GIF files and other formats, rotation and flipping)
10) Docking forms
11) Grids as listboxes
12) Better graphic performance on Terminal Services and CITRIX
13) Change background color on CommandButtons
14) Images in grid column headers
15) Suppressing the data related messages in StatusBar
16) Hiding columns in grid (not just taking the width to zero
17) Support for XP style icons

VFP 9.0

1) Field Tips in grid and BROWSE
2) Anchoring – far less need to handle code in the form resize event
3) Checkboxes and Option groups support wordwrapping
4) Better image/text alignment on CommandButtons
5) You can hide captions on CommandButtons, OptionGroups, and CheckBoxes (allowing for hotkeys to be supported without text)
6) Grids support Rushmore which makes them faster to surf
7) Label rotation
8) Better Theme backgrounding for labels
9) Toolbars can show and hide separator objects
10) Textbox controls have autocomplete feature available (like Internet Explorer address bar)
11) Updated InputMask/Format for controls
12) Reports – much better previewer, more control and events
13) Better printer dialogs for setting printer properties SYS(1037)
14) DisplayOrientation if users have TabletPC
15) Windows EventBinding so your apps can respond to events in the Operating System

Now I might have missed some things. If I have, pass them along in the comments and I will forward them to my friend. What are your favorites?