Jan
18

Here is another one of those rules I have learned the hard way:

Never test install your application installer on your development machine.

Why? Many moons ago I did test one of my install packages on my development machine and then promptly tested the uninstaller. Testing the uninstall is not something I find many developers doing because most do not think their clients will uninstall the app or would prefer they never uninstall the app. Well I prefer a clean Add/Remove Program list on my test machine so I always uninstall right after I install just to make sure it works.

So Monday I was writing up some instructions for the latest install I shipped and needed some screen shots for the documentation. I was out of the office when I was writing the steps so I decided to run the install on my development machine. I needed screen shots for the last step (the progress thermometer) and the “you are done screen”. I finished the documentation late Monday night.

The install had a couple of OCX files, which are registered without merge modules (not my favorite way to do things). Do you know what happens when you uninstall an application with OCX files? Well they get unregistered. This is not a big deal unless you use them somewhere else. {g}

Forward to today. I am in a rush. One of my clients needs a new application before Friday. It is a small application and figure I can squeak it out in between the other three projects I am working on this week (which might explain why I have not blogged at all in the last week). So I crank open my friendly Visual FoxExpress Project Wizard to start this new project this evening and I get a crash!

OLE error code 0×80040154: Class not registered.

OK, lets see, what has changed in the last 48 hours? That’s right, Mike and Toni pulled their traditional Friday the 13th release last Friday and I updated last night. Great! So I try to put together the reproducible steps to the crash to help the Feltman’s debug the problem. I reverse out the update and it still crashes. I dig in to the debugger and try to find the code that is troubled. The code is very straightforward and points me to the class and the class library which cannot be instantiated. This is where it really gets interesting.

I fire up the trusty Class Browser to look at the class and see what object is in the class and firing the OLE error. The Class Browser chokes on the same darn error. Uh-oh.

Then it hits me, I violated another cardinal rule of development on Monday and now I have just wasted 45 minutes tracking down a problem that I never should have hit. Stupid me. I could have simply used a VirtualPC session, but I was not near my external hard drive where I have the virtual machines stored.

So I have decided to fine myself for this rule violation, and added this problem into my personnel file so I can include it on my next review.

I hope you can learn from my mistakes. I hope you can avoid this problem and not waste time chasing problems that never should happen in the first place. OK, back to work.

Jan
10

Subscribe to Fox Periodicals

Over the last five days I have received personal messages (other developers I am mentoring) and also seen several posts on FoxForum, ProFox, TechTips, and other sites questions that were simply answered in recent issues of FoxTalk and the Advisor Guide to Visual FoxPro (FoxPro Advisor).

Maybe some developers find it easier to post a question on the favorite site, but think of the knowledge you are missing by not subscribing. Wisdom from fellow developers. Developers struggling with the same day-to-day development you are struggling with. Developers who are more than willing to share their knowledge with anyone willing to read their articles.

Is it the cost? Is it the time to invest in reading? Is it the lack of knowing there are excellent publications to subscribe to for FoxPro content? Is your boss not willing to pay for it?

I can tell you I have subscribed to both mags for more than a decade. Always out of my own pocket. The reason is simple: I invest in my career. I also did not want to share with my co-workers each month when the issues arrived. I want my own set of archives. I read them on my own time. The investment has paid off in a big way.

Both FoxTalk and Advisors Guide to Visual FoxPro have online content. You can download solutions and examples immediately. In one case, the developer was looking for ideas on managing security and Doug Hennig is in the middle of a series on Security Roles and has a Security Manager object in the downloads. For US$79, the developer looking for ideas can get everything he needs to get started with an online subscription. Several other developers were experiencing the “Variable _REPORTOUTPUT is not found” error when the VFP 9 Report applications are not distributed with your application. Uwe Habermann’s article in FoxTalk clearly addresses all the runtime issues Fox developers face with the new reporting engine. Brilliant article.

Make it a belated New Year’s resolution to subscribe to these periodicals if you are not doing so. Save yourself a bundle of time and money by investing US$180. Do it now so you do not have to worry another minute on the excellent reading you are missing. Go ahead, it won’t hurt.

Jan
05

Just got this from a friend at Microsoft:

This is just a short mail to let you know that we have the patch for the WMF exploit available at http://www.microsoft.com/technet/security/bulletin/ms06-001.mspx. As this is rather a nasty exploit, I recommend you download and install this as soon as possible, and spread the word to whomever you come in contact with. I am pasting in the letter from the Security team that describes the vulnerability below.

Sounds like solid advice.

Jan
05

If you are dreaming while you are sleeping and this dream is about sleeping, are you getting twice the rest?

Ever since I have completely given up caffeine I am dreaming more and having stranger dreams during the prolonged sleep I now need.

Jan
02

Technical Editor Andrew MacNeill reviews HackCX Professional in the January 2006 issue of Advisor Guide to Microsoft Visual FoxPro (formerly known as FoxPro Advisor). The article is titled “Tools for Forms and Classes in Visual FoxPro.”

Subscribers to the magazine can read the article online before it is delivered to you via snail mail. You can find it on the new Advisor link: http://MSVFP.AdvisorGuide.com. Andrew writes:

“HackCX might have been written to deal with the most common type of “hack” developers need to make when browsing a form or a class — changing of the name — but that’s not all it does. Click on the Properties tab and you can review or change the settings for each object. Click the Methods tab and you can review the actual code. Perhaps most importantly, HackCX also brings sense to all those reserved fields you saw in figure 1. Click the Reserved tab and each field is labeled with its actual purpose. If you view a class library with HackCX, you’ll see that Reserved7 field is where the description of the class is stored and Reserved3 contains a list of all the custom properties and methods.”

And goes on to say:

“How valuable you’ll find HackCX really depends on the type of development you do. It isn’t expensive ($50 per developer license) but if you build applications using frameworks and rarely spend time cleaning up or refactoring code, then it may not be something you need. But the moment you need to re-define a class or make changes under the hood, you’ll wonder how you never lived without it.”

Heck, even people who develop with frameworks will find this tool valuable. In fact, most of the HackCX customers use one of the many commercial or their own custom frameworks. One customer wrote me about how he used HackCX to transition between frameworks.

Andrew, thanks for saying such nice things about our developer tool and informing the community about HackCX.

Jan
02

Feeling Off By A Second

Is it just me, or are you feeling off by a second since the Atomic Clocks were adjusted yesterday? I am always thinking it is a second ahead what the clocks now tell me it is.

How long will it take me to get my biological clock synchronized? Would it have been a better idea to have accumulated 5 or 10 of these and adjusted it once so everyone does not have to change their clocks by one second? How much time was wasted by this time adjustment?

What did you do with your extra second? I can tell you I was stressing over a big decision, not having fun like I was expecting.

Jan
02

Just in case you have been hiding over the New Year’s break…

Craig Boyd is inspired by Kevin Ragsdale’s Fox Phrase 2006 post and created a new Visual FoxPro promo. I think it would be fun to see several VFP developers create something like this.

Want to learn more about Visual FoxPro? Who doesn’t! Andrew MacNeill created the Learning Visual FoxPro site/blog. Subscribed.

Dec
31

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.