Friday, June 29, 2007

Southwest Fox: Another sponsor

I am very excited to announce Sybase iAnywhere is now a Gold sponsor of Southwest Fox 2007!

I was curious why a company like Sybase would like to sponsor our small and humble conference, but the folks at Sybase are very excited about coming and showing what they have to offer Visual FoxPro developers. They are expecting to make some big announcements at the conference. Cool.

You can check out the complete list of sponsors on the Southwest Fox 2007 sponsors page. Please help us show appreciation for all their support of the conference and Fox Community by visiting their pages, and checking out their offerings.

Two more days to get in on the early-bird registration, and 111 days until we meet in Mesa.

Labels: , ,

Tuesday, June 26, 2007

FoxForward: Normal Registration Deadline Looming

For those planning on going to FoxForward this year, you should consider registering by Saturday June 30th so you can save yourself a cool US$100. The price is only US$450 and is a terrific price considering the value you will get out of the conference. The clock is ticking...

Labels: , ,

Lenovo ThinkPad Hard Drives

Yesterday I was talking to a Lenovo/IBM Technician because I want to know what type of hard drive is in my laptop. I want to purchase a backup drive in case this one fails (part of my disaster recovery plan). The technician tells me I have a SATA drive. Great, MicroCenter is selling a Western Digital 200GB SATA laptop drive for US$60. I was floored by the price so I plan to buy two of them and increase the storage on my machine by 80GB. I need the room. {g}

Then she asks me why I want to know. I explain my requirements to have a back up drive. She goes off for a minute to do something and comes back with "the best drive we have is a 100GB 7200 rpm drive."

No thanks IBM. She then tells me I have to purchase an IBM Drive because my Lenovo Z61P laptop only takes IBM components. What?!? Seriously?!? I ask her what the deal is, and what is it that possessed Lenovo to architect a laptop to only accept IBM components? Was she pulling my leg? I told her if this is true it is the last Lenovo laptop I am purchasing, period. She could not give me the exact details of why the laptop requires an IBM drive. In fact, I believe she does not know what she is talking about and is reading some script. Stoopid. She said the same thing about memory and I already put in third party memory into a Lenovo laptop.

Do you have a recent or not so recent ThinkPad, and have you upgraded your hard drive?

Labels: ,

Monday, June 25, 2007

Southwest Fox: Early-bird deadline 6.5 days away

The fax line is taking a beating (compared to the usual one or two a month I get) and the emails are coming in quite often with the registrations for Southwest Fox 2007, the best Visual FoxPro conference being held in October this year! You can sense the early-bird deadline is approaching when we took in 5 registrations one day last week.

Just in case you have not heard, the early-bird discount is scheduled to expire on July 1st (this coming Sunday). Now is the time to save yourself US$75, get that freebie pre-conference session (US$99 savings and way more value considering the sessions available), AND possibly get a US$300 tuition scholarship for the conference from White Light Computing. Definitely a great deal. There are more surprises on the way too!

Your humble registration taker (me) appreciates all the attendees who already registered and did not wait until the last week because I really need to get *some* development done for my clients. Still, I am willing to work at all hours of the day to process the registrations as they arrive, so keep on sending them!

Doug, Tamar, and I are happy with the registrations so far, but we are expecting this to be a busy week with those who like to wait until the deadline to push the credit card process out as far as possible. We understand, but the clock is ticking and we hope you get in on the great deal we have on the table at the moment. We know VFP developers are familiar with deadlines and how to manage them. Mark your calendar, post the reminder in your calendar software, stick a note on the monitor, or even write on your hand if necessary, but get the registration form filled out and sent in.

While you are at it, invite a friend to come along. The more the merrier.

Don't forget, if you need me to help you with the boss and getting her/him to send you to Southwest Fox, or any of the other VFP conferences - give me a call or send me an email. I will be happy to help you out.

I hope to see you in Mesa in 115 days!

Labels: , ,

Thursday, June 21, 2007

My new desktop image

For those who like to follow along with my current desktop image, I was able to update today to the latest configuration of the International Space Station (my summer place as I like to joke about).

I borrowed this beautiful picture on the NASA multimedia page.

As a side note: Atlantis is not landing today as planned because of bad weather. The plan is to try again tomorrow at Kennedy Space Center, and Edwards Airforce Base in California as a backup. They are doing a orbital burn to slow the shuttle orbiter down a bit to bring the landing in earlier when the weather is expected to be better.

It is interesting to listen to the interaction between the astronauts and Mission Control in Houston. Checklists after checklists with step-by-step processes ensuring a successful flight. The thing I really notice is the number of "thanks" being passed around. I think the "thanks" part is really missing in business interaction these days, and something I have to remember to do more.

So thanks for reading my blog today {bg}.

Labels: ,

VFP 9 SP2 and the Vista logo

After reading an email from Microsoft today about the two Window Vista logos I decided to ask Milind Lele if VFP 9 SP2 was going to be logoed with "Works with Windows Vista" or "Certified for Windows Vista."

Milind said VFP 9 SP2 will get the "Works with Windows Vista" logo.

If you want more details on the logo you can head over to the Microsoft Vista Logo site.

Labels: ,

Wednesday, June 20, 2007

Atlantis and Space Station Fly Over Michigan

Tonight I climbed up on the roof of my house with the intention of seeing the space shuttle Atlantis and International Space Station (ISS) fly over southeastern Michigan just before 11:00pm EDT. I missed them last night so I was bummed when I saw the horizon was cloud covered and the kids on the street behind us were blowing off some fireworks in the line of sight, but I was not disappointed!

The orbit took the two satellites from the northwest horizon to the southeast. They were only in the clear sky for a short time, maybe 10 seconds. It was an impressive site and well worth the effort. I probably could have seen the shuttle orbiter and space station from the ground, but the homes behind us are colonials and the orbit was 30 degrees off the horizon. I thought for sure the homes would block my view.

I am not sure which one was leading the other, but they are definitely on the same orbit and one was chasing the other. Atlantis is currently 10 nautical miles lower than ISS. It was definitely cool to see them. If you are interested in finding out when ISS is flying over your geographic location go to and put in your location.


Sedna DataExplorer Tips

If you want the new Sedna DataExplorer to be the DataExplorer showing up in the Task Pane Manager you need to copy it from the Sedna Beta folder location to the VFP 9 root folder. You might want to rename the existing one before doing this in case you want the old one for some reason. For some reason I expected Microsoft to include the new DataExplorer in place of the old one, but the Sedna beta installs itself below the VFP root folder.

If you are tired of typing in a long path to run the DataExplorer in standalone mode you can do a couple of things to save you time:

1) Once you copy the DataExplorer.APP to the VFP 9 root folder you can type DX in the command window to run it in standalone mode.

2) You can edit the DX entry in FoxCode to run the DataExplorer.APP in the Sedna beta folder. To edit the script you need to bring up the IntelliSense Manager, go to the Custom page, find the DX entry and click on the Script button.

3) Type in the Command Window one of the two:
DO HOME() + ""
DO HOME() + "Sedna Beta\DataExplorer\"

Hopefully you are all testing the new Sedna extensions and VFP 9 SP2.

Labels: , ,

CNN's Dobbs on America's Education System

A friend of mine just passed along this link to an editorial about the sad state of America's Education System written by Lou Dobbs called "Dobbs: A legacy in search of a president." This editorial really points out something I have been harping on for the last 15 years about the education of our kids with respect to mathematics and science (and other subjects too). How do we expect to fill technical jobs in research and development, design, and programming in medical, engineering fields, and computer science?

I am shocked to hear how few kids graduate in the Detroit Public Schools (which my kids thankfully do not attend). A quarter of the kids graduate?!? In comparison I would guess less than 5% of the students in my daughter's class did not graduate. I am fortunate to live in one of the best school districts in the state. Detroit Public Schools appear to be real bad, but this is a nationwide problem in big cities according to the numbers presented by Mr. Dobbs.

I have intentionally left politics out of this blog, but I absolutely agree with Mr. Dobbs' request for President Bush to build his legacy by using the last months of his term to starting a course of correction on this issue.


Friday, June 15, 2007

VFP 9 SP2 and Sedna Beta

I know several people have been blogging about this today, but the long awaited beta is released and you can get it here. I wanted to comment on one thing on the fix list I did not think was going to make the cut:
VFP9: Debugger: ToolTip for character variable in the TRACE window no longer has quotes around the value. Did in previous VFP versions.
I know this might feel like one of the small things in the life of a developer, but it still throws me each time I see the quote-less string. Thanks Fox Team! This one has "bugged" me for a long time! The entire list is extensive and impressive. Looks like we are going to have some fun over the next couple months.

Labels: ,

XFRX 12.3 Released

I am a big fan of XFRX and today I got notification from Martin Haluza that the newest version was released. There are a number of speed improvements in the PDF generation and a few bug fixes which should directly benefit my customers, but the big news is the release of a new output type of XPS.

XPS is the new XML Paper Specification by Microsoft. This has been touted as a "PDF-killer" by some people, but I really don't think PDFs are going anywhere at the moment. I just like my VFP solutions to offer integration with new technologies and Martin has done all the work that will make me look like a hero to my clients. I downloaded the Microsoft XML Paper Specification Essentials Pack since I don't have the .NET 3.0 framework loaded on my development machine yet. The process was surprisingly painless. It installed the Microsoft XPS Document Writer (printer) so I can print from any application to a XPS file (not required by XFRX), and the XPS Viewer to look at and print XPS files (just like Acrobat Reader for PDFs). Slick.

Thanks Martin, and keep up the good work with XFRX!

Labels: ,

Debugger Frame Learning Experience

Last night Tamar Granor was in Detroit and stopped by the DAFUG meeting to present her excellent session "Using the VFP Debugger Effectively."

I have done sessions on the VFP debugger and think I have a good handle on debugging, but as usual for me in any session there were some points Tamar made that I was able to "relearn", and one particular point I did learn and wanted to share with you.

During the session Tamar mentioned the "Fix" feature of the Trace Window is available when you run in the Debug Frame, but is not available in the Trace window when running in the Fox Frame. The Fix feature directs the VFP debugger to cancel the execution and open up the current source code in the appropriate designer and code editor. This feature saves you the time of closing the debugger, getting to the project, opening up the source, and finding the line of code you want to fix. This took me by surprise as I thought I used the Fix feature, and I normally run the debugger in the Fox Frame.

Now anyone who knows me knows I have been very wrong about some VFP stuff in the past and this could be another one of those moments where I am imagining the behavior. So I open a simple PRG I was working with recently and ran the program in the debugger. Sure enough, when I right-click on the Trace window the Fix option is disabled. Hmm, I should not be shocked that Tamar is right and I am wrong, but I really thought this should work. I could just have easily been running with the Debug Frame when I use the Fix because I do switch to the Debug Frame when I want to load a debugger configuration from time-to-time (wish the Fox Team had time to add this to the Fox Frame too).

I have the program run a form (SCX). In the form's Init method I SET STEP ON. When the code stops I right-click to bring up the shortcut menu. Sure enough the Fix option is enabled and the form opens when I ask VFP to Fix it. I did the same thing in a class and the Fix option is enabled. Interesting - programs get the short end of the stick with the Fix feature. More importantly, if you are using PRG-based classes you are getting the short end of the stick with respect to this powerful time-saver.

The reason I was so sure it was available is I use Visual Fox Express for many of the projects I develop, and the code is almost entirely included in VCX classes. So the option is almost always available to me when I am using the debugger.

So do you think this is a bug in the debugger? Tamar is under the impression there might be some internal limitation the Fox Team cannot work around to get it the source code open when running in the Fox Frame. I am thinking if they can get it to open forms and classes, they probably should be able to get it to open the less complex PRG file. Unfortunately I also think this is a minor problem and I would rather they work on more complex issues before shipping VFP 9 SP2.

Labels: ,

Wednesday, June 13, 2007

VFP DevCon Prague Sessions

I see Igor Vit has the session schedule posted for the Prague DevCon. This conference is the most attended conference year after year and there is no doubt why, great sessions and inexpensive registration fees. If you are in Europe (or anywhere else for that matter) and you have room in your schedule next week (June 19th to 21st), head on over and get registered for this great conference.

Labels: , ,

Saturday, June 09, 2007

Southwest Fox: Craig Boyd is speaking!!!

The biggest questions I got about the Southwest Fox speaker list was:
  1. Where is Craig Boyd's name?
  2. How could we freeze out Craig Boyd from speaking at your conference since he is one of the more popular speakers in the community?
  3. Do you and Craig have a problem since you replaced him at OzFox?
(OK, I made up the last one, but heck, there is not enough turmoil and friction in the Fox Community at the moment {g})

I was considering creating a FAQ page on the site just so I could point people to it. If I had a dime for every time I had to say: we would have loved to pick Craig Boyd, but he did not submit sessions, I think I could be closing in on fully funding two kids in college.

So now that Craig has officially let the cat out of the bag on the real reason he was not on the initial list of speakers (and why his blog has been quiet - leading to a huge drop of VFP on the Tiobe index), it is my great pleasure to announce he is speaking at Southwest Fox 2007! Even if you don't want to read the details of the real reason, you have to check out the cute picture of Scarlett Elizabeth Boyd.

I will keep you in suspense a little longer about the sessions (Doug will get the Web site updated with the new sessions when he gets a moment on Monday or Tuesday) to help get some traffic to the SWF Web site, but I can guarantee you will find them very Boyd-esk.

I cannot wait until October!

Labels: , ,

Friday, June 08, 2007

Atlantis ready to fly

Space shuttle Atlantis is a little over four hours from launch. This is going to be an exciting mission to the international space station where the crew is going to add a couple more trusses and another solar array to "balance out" the space station. Currently the orbiting lab looks unbalanced (although there really is no balance in zero-g) with only one solar array "wing."

I am looking forward to watching the launch scheduled for 7:38 EDT and a new desktop wallpaper shot of the station after this assembly mission is complete.


Thursday, June 07, 2007

Southwest Fox - More Sponsors

I am very excited to announce SweetPotato Software Inc. (owned by VFP MVP and Fox Guru Craig Boyd), and Cully Technologies, LLC (owned by Kevin Cully who runs the FoxForward conference) are Bronze sponsors added today for Southwest Fox 2007!

Craig has been helping the organizers by hosting the Southwest Fox Web site and handing administrative details concerning the email accounts we have. This has been a huge help behind the scenes here at SWF, and is one of those things we flat out have not had to worry about.

Both of these gentlemen are huge supporters of the Fox Community and we are very excited to have them aboard as sponsors. You can check out the complete list of sponsors on the Southwest Fox 2007 sponsors page. Please help us show appreciation for their support of the conference and Fox Community by visiting their pages, and checking out their offerings.

Thanks again guys.

Labels: , ,

Wednesday, June 06, 2007

Workers Compensation Insurance

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.

Labels: ,

Twenty years of fatherhood

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).


Code References Tip of the Night

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.

Labels: , ,

Monday, June 04, 2007

FoxCentral gets facelift

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.

Labels: , ,