Sunday, July 31, 2005

Class Compare: Call for Beta Testers

Big Announcement!

Class Compare is a new tool from White Light Computing and it is entering beta. I have been working on this new tool for the last six months which compares VCX classes together. It is simple to compare PRG-based classes with any text comparison tool, but comparing VCX classes together is a bit more difficult. In fact, the more I worked on this tool, the more difficult I found it.

The use cases for this tool is simple. Developers regularly get updates to framework classes from the framework vendors. What has changed? What are the new classes? What are the changes to the existing classes? What classes were removed? What are the new attributes and behaviors? What classes changed baseclasses? I need a tool to help find this out with the framework I use.

Another use case is comparing the intermediate classes (subclasses from the framework classes) I have for different customers and their projects. To help keep these intermediate classes in synch I wanted a tool to help me understand what is different.

The next change is to compare two versions of the same class or the same class library. This is fairly simple today if you are using a source code control system, but I know all developers do not. This tool will help until they can move to a source code control model.

This tools not only compares two classes together, it will compare two class libraries together, and two folders of class libraries together. A report is previewed to show you details found during the comparison. If you have Beyond Compare from Scooter Software, Class Compare will optionally take advantage of this tool and create some extremely useful output. While I have selfishly developed it for my own needs, I believe the alpha testers have also found this a valuable addition to their VFP toolkit.

So the call is out: I need beta testers! I have been testing this with a few alpha testers since April and they have helped me iron out many of the rough spots and made numerous enhancement requests which have been implemented and made this product so much better.

What do you have to do to become a White Light Computing Crash Test Dummy? Simple, send an email to betatestATwhitelightcomputing.com (making sure to replace the AT with the appropriate email syntax) with the following information:
  1. Name
  2. Framework(s) you use
  3. Whether you have Beyond Compare from Scooter Software (not essential)
  4. How many developers in your organization might have time to test it
Not everyone who applies will be accepted to the beta program. You will know one way or the other in the next week or so.

This tool is VFP 9 only. Why? It takes advantage of the "no init" feature of the NEWOBJECT() function (one of the features that really allowed this tool to work exceptionally well) and the BINDEVENT() function's hooks into Windows events. So only apply if you own VFP 9.

What can you expect during and after the beta? You will get an initial EXE and one report form. I need you to test the program to the best of your ability. Hopefully using it in ways I have not. Bug reports will need to follow a certain format which you will get instructions with the initial beta release. I will be enhancing the tool and fixing bugs, and sending out occasional updates. I still have a couple of features to implement (which you will learn about when I ship the initial beta). Once the beta is over you will get a free copy of the tool.

But do not get to excited about getting a free tool because this will be a freebie tool when it is done. That is right, free, even though it is a product I think I could sell. It definitely will be on par quality and feature wise with HackCX Professional, ViewEditor Professional and the upcoming MenuDesigner Professional. It will even have a Help file (not in the initial release).

So let me know if you are interested in the beta program for Class Compare.

Saturday, July 30, 2005

Go for email

Taking a break before heading to bed tonight, I listened in on the Discovery wake up call via a video stream from NASA. Today is spacewalk day which hopefully is not overshadowed by the news media's constant probing to find some fatal flaw in the thermal heat shield. After the kids choir music was played to wake the astronauts, the crew was told they were "a go for email."

There are so many things we take for granted here on planet Earth these days. I never gave much thought about getting email while I am in space. How cool will it be when I can post a blog from space? Well I can tell you I have permission to buy my trip as soon as I win $100 million or more in the lottery. Now all I have to do is get the nerve to buy a ticket. :)

Another cool note, Sergei Krikalev, the current commander of the space station crew is starting his third year in space. He is on the way to setting the record for most days by a human in space. He will break the record before his tour is up. This is his second stay on the International Space Station after one extended stay on Mir.

Friday, July 29, 2005

Sedna is not 10??

Absolutely true! It was announced today scientists funded by NASA have discovered what is being called the tenth planet. It looks like this planet is larger than Pluto, has a moon, is three times as far from the Sun as Pluto, has an orbit which is 45 degrees from the main solar system plane, and is temporarily called 2003 UB313.

Full news release can be found on the Jet Propulsion Laboratory site.

Wednesday, July 27, 2005

Deployment Fox 2005 World Tour - New Stops

It certainly is shaping up to be a busy second half of the year with respects to presentations.

You may have read the White Light Computing news release a couple weeks back announcing my selection to speak at the 12th VFP DevCon Germany 2005 held November 10-12, 2005. I am very excited as this will be my first trip to Europe. I have heard from other VFP developers the German DevCon is a fantastic conference with premium sessions and a super facility. It is a priviledge to be select to present at this conference.

I can also announce I will be speaking at the 9th F1 Technologies DevCon, September 26-28, 2005 in Toledo. Mike and Toni have asked me to do a presentation on Debugging VFE Style, a session on XCase, and another session on integrating developer tools into your VFE development. F1 put on a great conference in 2002 in Vegas, so I have extremely high expectations for this year's trip to Toledo.

Looks like the rest of July and all of August will be packed with session preparations, which should be fun. It has been more than seven months since we wrapped up the writing for What's New in Nine. The break has been nice, but it will be good to get back to do some more formal writing. I have also promised David Stevenson a series of articles for FoxTalk. Looks like Microsoft Word will be getting a workout.

NASA: Grounding Shuttle Fleet Again!

Noooooooooooo, not again. Space.com and CNN are reporting the fleet is officially grounded until further notice because foam was spotted flying off the external tank during yesterday's launch. This was being heralded as one of the smoothest shuttle launches to date and in less than 24 hours the fleet is back in mothballs.

The irony of this decision is the crew of Atlantis is prepare to fly and rescue the Discovery astronauts if there is a major problem with the orbiter and cannot be repaired. So what happens if the orbital boom survey or the pictures from tomorrow's space station fly-by show more than a chipped tile and it cannot be fixed? God help the decision makers if this ever comes to pass. What happens if the same thing happens to Atlantis on the way to rescue Discovery? We could have two-thirds of the orbiters crippled and hanging in space. Not a good thought.

Is Russia ready to rescue the US Space program again?

VFP 9 Hidden Gem: Chaining Reports

I can now admit I have not used the report chaining capability Microsoft added to Visual FoxPro in VFP 8, at least until two days ago. It is the typical case of finally hitting the need for the feature.

One of my clients called me into a project where they are struggling to make a report break to a new page based on the data. I played around with the report for an hour and was able to break to a new page where they wanted it to break, but the side-effects were forcing a page break later that was not desired. I tried a couple more things by adding extra groupings, but it was not working as desired.

Since the developer was using VFP 8, I thought of chaining reports. I split the one report into two reports and called them with the appropriate commands:
SCAN
REPORT FORM Itinerary01 NEXT 1 NOCONSOLE NOPAGEEJECT TO PRINTER
REPORT FORM Itinerary02 NEXT 1 NOCONSOLE TO PRINTER
ENDSCAN
The NOPAGEEJECT clause tells VFP to not close the print job. This worked like a charm when printing to the printer. I then moved to the preview logic and whammy, I was getting two previews for each of the records. Crud! When I tested running the reports to Acrobat I was getting prompted for two file names. Double crud! Another great idea crashing and burning. Even though this report is not previewed as often as it is printed, I suspected the users were not going to be happy with this, especially since they like to print the reports to Acrobat.

So I fire up VFP 9 and run the exact same code. I was not expecting different results, but I wanted to see how the reports looked in the new Report Preview window. I was going to investigate how the new ReportListener might help. To my surprise, the preview window was only opened once per record. The VFP 9 report chaining is way smarter! A hidden gem (at least to me).

As a bonus, the graphic images not printing to the Acrobat 6 PDF driver in VFP 8 are printing just fine from the VFP 9 reports. Double bonus. So once again, Richard Stanton (Fox Team Report Designer guy extraordinaire): you da man!

So if you are struggling with reports in any version of VFP prior to 9, head out and upgrade and see if your struggles are reduced or even eliminated. This simple little behavior change just sold two copies of VFP 9 to the two developers I am working with on this project.

Tuesday, July 26, 2005

Godspeed Discovery!

The launch of Discovery this morning was spectacular as expected taking 7 new heroes back to space. This is the second time Discovery has healed the space program as it followed Challenger into space back in 1988.

Thanks to CNN (excellent coverage of the updated features on the shuttle system) and NBC (very cool animation) for the excellent coverage this morning. I really liked the new camera views and look forward to seeing a launch in person one day.

Thursday, July 21, 2005

When was that added to VFP? (redux)

Earlier this morning I posted about the different Web pages where developers can see what is new in the various versions of VFP. After posting I headed out to a client and on the way I recall some pages in the Fox Wiki where this information is detailed.

No sooner do I get to the client that BOb Archer hits me with an email about the Visual FoxPro Version Feature Concordance and just a little bit ago Steve Black was kind enough to let me know the same. Steve provided an extra hint as well:
"There, by version of Fox, are all the NEW functions, events, commands, files, pieces, etc and below that, what's ENHANCED (fly the mouse over a few and note the popup that explains what's new)."
This is a superb resource and a way cool feature!! Kudos again to Steve Black!

(Thanks to both BOb and Steve for nudging me, and my client for providing the 10 minute break during a very busy day to post this entry {g})

When was that added to VFP?

I work with other developers at my clients and mentor several developers on a regular basis. It is not unusual for developers to ask me the question "When was that added to VFP?" I am finding it harder and harder to recall the details off the top of my head with so many versions of VFP.

This morning over on FoxForum a developer who is getting back into VFP development wanted to find out how he could go through a history of VFP to see what new features were added since VFP 6. Naturally I wanted to answer this information is in the VFP Help file in the What's New section, but he last developed in VFP 6 and now owns a copy of VFP 9, so access to the 7 and 8 Help files is not on his machine.

Then I recalled the VFP Help files are online on the Microsoft MSDN site. Each version has a separate page:

What's New in VFP 9
What's New in VFP 8
What's New in VFP 7
What's New in VFP 6 (not found)
What's New in VFP 5


This is a great way for developers who skipped upgrading to each version to find out all the features which are new to them. Unfortunately I could not find what's new in 6, but I am guessing it is out there.

The definitive guide for me is the Hacker's Guide to Visual FoxPro 6 and Hacker's Guide to Visual FoxPro 7, but unfortunately there is no 8 or 9 in this series. I am also a fan of the What's New in VFP 7, 8, and 9 as well. I use these books along with the Help files to understand which versions of VFP I can support for the developers tools I have published. I find it easier to look up a command in the various resources than to find it breaks when I perform system testing for the developer tool in each version of VFP I plan to support.

Wednesday, July 20, 2005

Bill Gates is puzzled by computer science apathy

This is a headline in this morning's Great Lakes IT Report: "Bill Gates is puzzled by computer science apathy." I also read a couple of news items with the same story yesterday. If he wants to understand it, all he has to do is sit down with some high school students and he will get his answer. I have and can tell you there are several reasons.

The top reason is counselors are telling these young adults that computer science is a dead end career. Two years ago my son was talking to the Dean of the Math, Science and Technology school in our district. He asked my son what field he was interested in going into and what colleges he was interested in attending. I was in the room to witness the look of horror on the dean's face when my son noted Computer Science. Then I listened to ten minutes of blah, blah, blah about how all computer jobs were headed to India. Apparently the dean did not realize the field I was in and was not prepared for my ten minutes of counterpointing. The field of Computer Science is not dead in America! So Bill, tell the teachers and counselors in our schools to get a clue before they go off molding the next generations of minds and fill their heads with incorrect information.

Here is a quote from the same article: "Gates said that even if young people don't know that salaries and job openings in computer science are on the rise, they're hooked on so much technology - cell phones, digital music players, instant messaging, Internet browsing - that it's puzzling why more don't want to grow up to be programmers." This brings up three interesting points.
  1. The salary issue. At least here in the Midwest, salaries are not on the rise, They are stable, but more important, they are lower than five years ago (simple supply and demand). Even though more people are returning to work, flat out and simple, there are fewer people interested in returning to a job doing programming.
  2. Bill seems to have a different view than I do on this concept. Just because young people are consumers of this technology, does not mean they want to be the one to make it work different in the future. They want it faster and cheaper but in general they want some one else to do all the hard work. Most of my children's friends could care less about working today. The fact is most of them do not have jobs, nor have their parents provided incentive for them to get to work. What we need are passionate developers, and from my perspective, young people are not passionate about much.
  3. The third point about his quote: programming alone is boring. Bill needs to stress all aspects of Computer Science including interacting with people, understanding their needs, translating needs to design, programming, testing, installation, and production support. So many people miss the mark and think Computer Science is only programming.
The last point I want to make is the career path of Computer Science is not for everyone. I am sure Bill Gates understands this. I believe it requires a special type of person. I can not think of many careers requiring a complete revamp every two years. Sure there are developers still writing COBOL code and are working on the same project for the last 10 years or more, but this is rare. Most developers learn new technologies to better the software they create, to provide better value to their boss and company, to stay ahead of the competition, and even just because they like change. Change is the part of my career I have enjoyed the most. Sure I could have been one of the COBOL programmers working on the same project my entire career, but my personality does not tolerate boredom well. What I am witnessing today is more developers hitting burnout than ever before. So many developers are looking at .NET and questioning if it is worth climbing one more technology learning curve. I believe the next generation entering into college is recognizing this and questioning if it is worth it or not. Do they want to enter into a career where the financial business model for success requires built in obsolescence every 24 months?

So my humble message to Bill Gates is this: you want to understand why this the next generation is apathetic, ask and you will get hours of discussion. This is my personal experience.

Friday, July 15, 2005

Browser Compatibility Reading This Blog

This week one of my readers posted on Tek-Tips how much he enjoyed my post on Doing whatever it takes post, but he had a problem reading the blog in Internet Explorer 5.0. In particular he was getting what appears to be carriage returns after each single word. Unfortunately I do not have any old machines hanging out with IE 5.0 (or even 5.5 for that matter) so I am not able to test it out. I have tested it with all the current versions of Internet Explorer, FireFox, Opera, and Mozilla and they all work fine.

So out of curiosity I fired up an old copy of Netscape 4.7 to see if it works and sure enough it makes a mess out of the HTML. I tested this out on a number of Blogger blogs and other blogs posted on different sites to see how they fared. Most of the Blogger sites get messy to various degrees. Some of the other sites on Foxite and ASP.NET work okay, but are not exact.

So I investigated the Browser states on my sites. Netscape is not even at 1%, Mozilla shows up at 4%, FoxFire is 20%, and IE at 50% for the last couple of months. The other 25% is spread across several bots and browsers like Opera, Safari and Konqueror.

Drilling down into IE, just a little more than 1% are using 5.0.

So the question begs, how much time should I spend trying to fix this issue? I hate ticking off readers because of accessibility, but we are talking two percent of all hits on my Web site, not just the blog. I understand not all developers have access to the latest machinesand operating systems, but there are other resources like libraries, cyber cafes, and even family computers. For what it is worth, I have posted a question to Blogger support on this issue. They only maintain a list of browser compatibility for the posting functionality. Fingers crossed.

Monday, July 11, 2005

HackCX Videocast

This morning I posted the first of many videocasts to shed some light on the various developer tools I have posted for you to download and use in your application development. The first video is an introduction to HackCX Professional. It is a very quick seven minute video explaining why you would use a tool like HackCX and how it makes hacking a form or class library easier and a safer experience.

I plan on recording videocasts for all the developer tools, both commercial and freebies, at some point in the future. I think the videos will help developers understand the reason these tools exist, but more importantly I think most developers like me learn faster by watching someone else demonstrate how to do something.

Please let me know what you think. Let me know if you have an idea for a future video. I am very open to constructive criticism. This is the first one and it is not a perfect video. Recording it brought me a new found respect for people like Andrew MacNeill and the other pioneers in podcasting and videocasting. I am not a trained broadcaster. I think we have all heard of the technique of recording yourself presenting to learn to present better. Listening to this video the first half dozen times it was recorded was painful.

Sunday, July 10, 2005

Web site statistics

I have always found the traffic patterns on the various Web sites I maintain to be interesting. This morning I was working on updating the White Light Computing site and decided to poke around the statistics to see what developers and potential customers have visited in an effort to improve the site and provide more material.

It should not surprise me any more that the number one download from the site is the Programming Standards and Guidelines PDF file. Over the last year this file was typically accounted for 20% of the downloads for a given month. I attribute this to the fact there were very few files to download. Over the last six months I have moved more of the freebie developer tools over to the White Light Computing site from my personal site in an effort to provide one stop shopping for developers. Still, the Programming Standards and Guidelines are numero uno on the downloads (10% of all downloads in June).

The free versions of HackCX (8%) and the ViewEditor (6%) are catching up and if trends continue, will surpass the Programming Standards and Guidelines in the next six months. The free tools have always outpaced the commercial tools and associated Help files (available for free) downloadable from the site. No surprise the Fox Community (and developers in general) prefer free stuff.

I have on my to do list a set of blog entries about programming standards and their critical importance for all developers. I think these Web site stats prove there is definitely an interest. I am hoping to open a dialog on this topic and provide an update to the standards in the future. I have made some changes to this document internally, but I am hoping the numerous people downloading this document and reading this blog will provide me feedback.

In the last year several companies have asked permission to publish this document for their IT departments and programming staff, and I know many others have adopted parts of the document. I have always granted permission. I may own the published document, but these standards are not "owned" by me. The majority of the document is industry standards I have adopted over the years. I just made the effort to write them down.

Are you using programming standards and guidelines? Why? If not, why not?