Archive for June, 2007


I recently had a frustrating conversation with my Workers Compensation insurance vendor. I don’t really need WC insurance for myself, but I do for my son’s wages, and on occasion my customers will ask if I have it. A few clients have requested I provide a certificate of insurance for a project. Last week I learned why this is so important.

It all centers around the definition of the word employee. I am an employee of White Light Computing, in addition to my ownership in the company. As the company president I get paid a modest salary. For each US$1000 of salary I get paid, the company pays US$0.80 in premium for the insurance in case I get hurt on the job and cannot perform my duties as a software developer. Just in case you are wondering, roofers are one of the most expensive jobs to insure: approximately US13.00+ per US$1000 salary. So we have it cheap.

The annual audit arrives and the paperwork I fill out asks me the usual questions about the business, how many employees, and how much I pay them. This year I also had to provide details about subcontractors and how much I paid them. Previous years asked if I had subcontractors, but never the amount of money involved.

This triggered a long discussion with the auditing department. They asked me to get certificates of insurance from each of the subcontractors. Several of them are just moonlighting at night and won’t have the coverage, but I do business with a couple of companies. So I spent an enormous amount of time documenting my subcontractors, the work they did, the time periods when they worked, and tracked down as many of the certificates as I could. I hate wasting time on this administrivia. Frankly it would have been better financially to pay the extra premium and spent all this time billing on projects that are way more fun to work on, but the principle of the matter is this: I dislike insurance companies and certainly don’t want them double-dipping on me and the companies I have hired.

The reason I had to do all this work is to not get charged the extra premium because the insurance company was going to consider each subcontractor as an employee. They did not care if my contract states they are not employees of my company and responsible for their own taxes, insurance, etc. They did not care that I do not have them on my payroll and that my payroll service has never paid them a dime. They only care that they *can* charge me a premium and it is my responsibility to prove otherwise. Guilty until proven innocent. Their definition of employee is anyone I pay and cannot prove they have their own Workers Compensation policy.

I asked them a simple question: if one of my subcontractors was hurt while working on their site (not mine), would I be able to make a claim? The answer really was not unexpected, but really seems unbalanced. “Sir, it does not matter where they were hurt, they are subcontractors, not employees, and thus we would fight to the death to not pay the claim.” I thanked them for the clarification and double-talk. They were also kind enough to inform me that I would find all their competitors do the exact same thing. Having written software for the WC industry I know how bad employers get the short end of the stick.

Let’s review the rules of the insurance game: business owners always lose and there is absolutely no way to play the game where you can win, or have it even fair. Thanks for the clarification, not!

So for all the employees out there who read my humble writings – be thankful for your job and all the little things your employer does on your behalf that lowers the profitability of the company you work for, and ultimately lowers the wages you can get paid. For all the business owners and independent folk: I know, nothing new here. Just me having another stressful business moment.



Twenty years ago today I became a father when our oldest son was born in the middle of the night (2:56 am). We were very young and married for only 10 months. We were broke because we bought a house when we got married. Each of us were working full time, and trying to establish ourselves in the world.

Therese called me at 4:00 in the afternoon on a Friday and asked me not to work late because she thought she might be experiencing labor pains. It was one of those weeks where I was more than happy to come home because I worked a lot of hours on a tough project hoping to meet some deadline before our new baby arrived. I was ready for my week long “vacation” (there was no such thing as paternity leave back then).

It was a nice warm day so we were able to take a short walk when I got home. We followed the instructions given to us by the doctor and waited to the contractions to get 10 minutes apart before heading to the hospital at 10:30. Sure enough the admissions people pushed us right up to the maternity ward and hooked Therese up to the contraction monitor machine. Captain Obvious (me) noted on several occasions when the contractions were starting, something I never mentioned to Therese during the other three births {g}.

During the contractions I watched the heartbeat of our son and how it would go from 120 to 60 beats per minute during the peak of a contraction. During one of the hard contractions I watched the heartbeat go flat line. So I did what any good husband would do, I panicked and screamed for the nurse who then calmly called out Stat-something or another, Code-something or another. I sat in a chair at the foot of the bed as a crew of doctors and nurses rushed the room (just like on the TV show ER or Grey’s Anatomy) calling out different observations and making guesses as to what was going wrong. They hooked up a probe to my son’s head to get more accurate readings. I felt myself passing out (not good with blood or bad medical news) so I put my head between my legs. At least I remembered proper first aid {g}. Sure enough the monitor was bad and needed to be replaced. So all night long I got hammered by every nurse and doctor as the dad who could not keep it together. I never passed out, but I did require some orange juice to keep it together. As you can see, my hatred for hardware even goes to the extent of the hospital equipment. Chris was born and was healthy (a blessing we took for granted). The doctor had some fun by letting loose blood from the umbilical cord. It splattered all over the very clean delivery room.

The next day I got to change my first diaper ever with my mom looking over my shoulder. I handled it like I had done two or three before. Today I could probably change one in my sleep as I have done so many times over the years. Actually it has been more than 10 years since I have changed one, but I am guessing it is like riding a bike. The key with boys as we learned the day we got home is to cover them up when you take off the old diaper. Twice on the first day we got to witness the fountain of urine {g}.

I have learned a lot about being a father in the last twenty years and know I have a lot to learn in the next twenty years. Today is another one of those chapters as my oldest daughter goes to her Senior Prom tonight. Now where did I store that Super Soaker? (not much into carrying a real gun around {g}). Actually the young man taking my daughter to the Prom is a nice guy and I figure this night should be no different than any other date they have been on except it is costing them a small fortune.

So Therese and I will celebrate our parenthood by taking a ton of pictures, calling Chris to wish him a happy birthday, and then going out to dinner. It will be much different than twenty years ago, but one thing will be consistent: I am exhausted after a long week of work trying to meet a deadline (but today is only Wednesday).


From the files of Captain Obvious: Code References does not search open files. I know, duh.

Tonight I was searching for all the places a table column is used in an application. I pulled out the always trusty Code References tool (one of the nicest tools Microsoft has included in the last couple of releases of Visual FoxPro in case you are still using VFP 7 or earlier) to perform the text search of all the files in the project. The search result list comes back with less than stellar results because it does not show any place where this column is used. I know it should be manipulated and even set as a ControlSource in one object in this form I have open, and yet the results show nothing. Argh. I have the form open!

The key to understanding what is going on is to pay attention to the Warnings/Errors details displayed in the pane at the bottom of the Code References window. This will list off all the problems the Code References’ search came across when it was looking up the text you asked it to find. In this case the form I had open was not searched and this was the form with all the code to work with the column in question.

So the moral of this lesson is to always review the status at the bottom of Code References for the search you just performed. One more bonus tip, the warnings and errors are retained as long as you keep the search results. In my particular case I was able to close the Form Designer, click on the Code References Refresh button, and see the results I was expecting.

, ,


One of the resources in the Fox Community that does not get a lot of publicity and might be a little under appreciated is FoxCentral. FoxCentral is hosted by West Wind Technologies and is a great place to get news about things happening in the Fox Community. Many user groups announce future meetings, third-party product producers inform you about releases, conference organizers post updates to entice you to attend their conference, etc.

Not only is FoxCentral a Web site, it is also a Web service you can access from VFP or anything else that can access Web services. For instance, the Web service is used by Foxite to display the news on the Foxite home page.

FoxCentral has been my Web browser home page since it was introduced. I also subscribe to the RSS feed in FeedDemon. Many thanks to Rick Strahl for hosting this site and for the recent update. The new look is very nice. For those who post entries, make sure to get the latest client because there have been changes to the Web service.

, ,