Oct
21

Southwest Fox 2006 – Day 1

VFP: Past, Present, and (most importantly) Future is the theme of this year’s conference, and was the theme of this year’s keynote.

No baloney and no marketing (with one little exception), and lots of pure fun is how I describe the keynote delivered by Craig Boyd, Doug Hennig and myself.

Craig started out the keynote with a story of how the three of us got in an accident driving over a cliff and into a ravine, and crashing into a tree. Dave Bernard and Bo Durban recall the details of the story better on the UT Coverage for the conference. The happy ending is the story was a story and Craig makes the point that fear is not good, spreading fear is definitely bad, and we should all not be fearful about our future with Visual FoxPro because it is very bright.

We did not want to focus much on the past for two reasons. People usually get all nostalgic about the past when some one dies and we all know VFP is not even close to dead. The second reason is we had more than enough future to consume the entire keynote. But we came across some super secret video via the FBI, CIA, the Department of Home Land Security to prove Microsoft has a plan to market Visual FoxPro. Well, before I start all kinds of rumors, we came across some vintage video of Fox Software marketing the all new FoxPro for DOS. Lots of gurus from the past like Walt Kennemar, George Goley, Pat Adams, Rich Grossman, Adam Green, and of course Dr. Dave Fulton (the father of FoxPro and president of Fox Software) to name a few. Listening to the video and removing some obvious references to older hardware technology, you can clearly listen to the message and hear the numerous competitive advantages mentioned and know even 16 years later that they still apply today. Fast, powerful, easy to use, fast, works on less than state of the art hardware, modern user interface, fast, extendible, backwards compatible, and many more. I personally enjoyed this video and was glad this last minute addition to the keynote was enjoyed by the Fox Folk attending the session.

The present section was also very short. Craig outlined how VFP 9 is very stable, how you have mainstream support through January 2010 and extended support though January 2015. I think it is obvious many developers have already upgraded to VFP 9 and are getting excited by SP2 and Sedna CTPs released last week.

The best part of the night was next: VFP Future.

Craig talked about Service Pack 2 and demonstrated the new reporting enhancements worked on by the Fox Team and their core contractors (Lisa and Colin Nichols). Craig show some of the really nice additions the team has added to simplify things like rotating text on a report, and some of the dynamic properties report expressions can have. I personally think the implementation is elegant and look forward to using these enhancements to make the report output be more flexible without writing any code. The new reporting extensions write all the code for you that you previously had to do under the VFP 9 release. Nice work by the reporting team. I also think we will be reading more and seeing more demos about Service Pack 2. The timing of the release days before the keynote made it hard to incorporate into the keynote, but Craig did a great job.

Next up was Sedna.

Doug showed off the My Namespace and Upsizing Wizard. If you have not seen the My Namespace, it is a class library which exposes various Windows API functionality through Intellisense. But this is only what it does initially. My is extendible (naturally, because we are talking about FoxPro here). My comes with a builder so you can add your own classes to the My Namespace. Not only can you add your own classes, but you can add classes from a any framework. Think of this as a way to include shortcuts to functionality without needing to write a lot of code.

The Upsizing Wizard is an upgrade to the existing one, but really is new and much improved. Lots of changes to simplify the steps to upsizing a VFP DBC to SQL Server (2000 or 2005). I have been testing this for a while because I integrated it into the Data Explorer for the Sedna release. It is easy to use and very fast! I upsized one of my client’s databases to SQL Server in less than 10 minutes. Granted, the database is not huge from a record count perspective, but Doug has even improved the data import speed by a factor of 10 or better using the SQLXMLBulkLoad. The engine is separate from the user interface and Doug demonstrated how you can programmatically upsize databases. This will be very handy when you are upsizing vertical market apps or implementations where you have several copies of a database. I think you will be impressed with the changes he has implemented.

Next up I gave a demonstration of the enhancements I have made to the Data Explorer. I have more than a half dozen bug fixes and almost a dozen enhancements rolled out in the current CTP. All of the enhancements came from the suggestions from the community. There are several changes to the Run Query dialog including showing ShowPlan details (Rushmore optimization via SYS(3054)) on the query results and the number of rows returned for VFP data (the row count is displayed only for SQL Server connections currently), and expose the F5 key which is in the current release, but not obvious. View nodes now have the option to display ShowPlan details (configurable on the Options dialog). There are better sorting options for the treeview so you can sort the tables, views, stored proc, etc., but the column names are now separate from the object sort feature. I also demonstrated how you can call the Upsizing Wizard direct from the Data Explorer, and previewed a couple more ideas I have been working on in the last week since the CTP was shipped including a Database Documenter feature output to HTML with cascading style sheets to control the presentation, and a copy column to the clipboard so you can build SQL Select statements or CREATE TABLE/CURSOR easier. I did not get to show all the new stuff and plan to blog more about the complete set of changes in the future.

I then covered the NET4COM object. This is a DLL helping you expose .NET framework classes to your VFP application. I have read plenty of posts online how developers have been underwhelmed by this part of Sedna. Sure some of the features in the component can be done in VFP without the “overhead” of the .NET framework. I believe those complaining are missing an important aspect of this. It is not the features exposed, it is how it is expose and the code examples of how to do this. This is designed so those with little .NET experience can see how you can take advantage of the thousands of .NET classes. For those with experience, it gives you a leg up on the exposing even more classes. So think about this as a tutorial of how you can expose functionality you can do easily in .NET that would be hard to do in VFP natively. I have only a little .NET experience and appreciate how Microsoft approached this feature.

I then talked about the cool stuff DBi Technologies is doing for the Fox Community by giving us seven commercially sold controls for free in the Sedna release. This is not part of the Community Technology Previews released to date, but is something coming in the production release. More details can be found on the Web site. A very generous company and one that has supported the Fox Community for years with some great products.

Craig then kicked into his high energy presentation of the Vista Toolkit. Most of the demonstration was done on Windows XP. This is really key to note. Much of the functionality he exposed in the toolkit was back ported to Windows XP by Microsoft. The MS Feeds (RSS) an
d Desktop Search were demonstrated. Craig showed a feed reader he wrote entirely in VFP 9 to access the feeds stored by the OS. Impressive functionality for sure. I think the Desktop Search was even more impressive. Most desktop searches today will look for strings in files. Craig demonstrated queries into the file system and email, but there are many more sources that are searchable. He also pointed out the queries executed actually have a SQL Select behind the scenes. The performance is very fox-like, extremely fast.

Craig rebooted his machine into Vista for the rest of his presentation so we took the opportunity to show some of Kevin Ragsdale’s VFP and VFPX promotional videos. Kevin did a great job with these.

Craig continued and showed VFP under Vista. He showed some of the minor user interface problems he knows the Fox Team is working on. More importantly he showed how VFP forms already work with the new Areo user interface techniques. Craig was not even running SP2 to demo this. This is a good sign of how well VFP will play in the Vista sandbox. Craig then showed how a VFP form can run XAML (Windows Presentation Foundation / Avalon) code to extend the form user interface. I personally was impressed by this and see how this opens up the possibilities for the future user interfaces for our VFP applications.

Craig finished up the Sedna portion of the keynote by demonstrating the XPS listener he is working on. This works with reports and outputs to the new XPS format. The XPS format is Microsoft’s new portable document format. It works and smells like a PDF, but is all XML. Craig discussed some of the possibilities for VFP developers to use this format and how powerful the viewer is for end users. The more I hear about this the more I am interested in this technology.

The future is in the Fox Community’s hands as Craig talked about VFPX and VFPY and how the members are working real hard in these two open source projects to create add-ons for VFP developers everywhere. I am impressed with the outpouring of support and the ongoing development of these projects. We did not get a chance to demo some of the projects going on because we already were going over the scheduled time.

Ken Levy drew the ticket for the winner of the MSDN Premium Subscription Sweet Potato Software donated as a prize for the keynote. Cathy Pountney was initially drawn as the winner, but she was ineligible because she is an MVP and MVPs already have a subscription. The winner (and I forgot his name unfortunately) was obviously very happy to have won this very valuable prize.

The last thing of the keynote was really a surprise for Doug Hennig as he was named as the third recipient of the VFP Lifetime Achievement Award (previously given to Whil Hentzen and Rick Strahl). Ken Levy hosted the announcement from Microsoft and the Fox Community. Doug was very surprise as we arranged this behind his back {g}. This was well deserved. Congratulations Doug!

Several people have told me they really enjoyed this year’s keynote. It is apparent from the feedback that we hit a home run and more importantly, got the message across that the future is indeed very bright. More to come…

Oct
19

Southwest Fox Starts

We are minutes away from the pre-conference sessions…

Registration opened a couple of hours ago…

The weather is hot if you are from Michigan, cold if you are a native of Arizona…

I have already seen a few friends…

So many sessions, not enough time, but this is always the case at a FoxPro conference…

Craig Boyd is hiding some where in the hotel and is avoiding me {g}…

The hotel rooms are way better than the Twin Palms…

Let the conference begin!!!

I am hoping to blog each day, but I have a busy schedule this time around.

Oct
14

I can hardly believe the team I referred to as our minor league baseball team is taking this town to the championship of baseball. Seriously. I would never have imagined it, and definitely would not have bet money on it. Every 22 years or so we get enjoy this baseball fever (1968, 1984, 2006).

Detroit is Championship City! Again!

This means all our professional teams have played in the playoffs this year (yes, our men’s football team is not professional by anyone’s stretch of imagination). The Pistons won the NBA championship in 2004, The Shock won the WNBA title this year, the Red Wings are always good and last brought the Stanley Cup to our fair town in 2002, and the Detroit Demolition of the Independent Women’s Football League won 4 championships in a row from 2002 to 2005 based on a 52 game winning streak. Now the Tigers are getting close again.

And to all my friends in Chicago who were kind enough to rub my nose in their good fortune last year at Southwest Fox, the tables have sure turned. {g}

Oct
13
(this is a sort of warmed over blog post from VFP 9 SP1 Installation Tip posted back on September 24th 2005)

Please note, there has been some confusion in the community about the VFP 9 SP2 release announced by Microsoft this week. It is a Community Technology Preview (CTP), which is another way of saying pre-release, alpha testing. Do not load this over your production copy of VFP 9 SP1 (or no service pack) without reading this post and understanding the advice it offers.

Before you install this service pack, back up your original files in case you need to go back to the original version. This tip also allows you to run both the release version of SP1 (build 3504) or the original release of VFP9 (build 2412), and the beta of SP2 on the same computer. I have done this for the service pack testing of VFP 7, VFP 8, and VFP 9 and it worked well. Here is what I do before installing:

  1. Go to the following folder: C:\Program Files\Common Files\Microsoft Shared\VFP
  2. Create a subfolder called VFP9SP1
  3. Copy all the VFP9 Runtime files including VFP9r.dll, VFP9t.dll, VFP9rXXX.dll (resource files, especially the ones you deploy), the three Report*.app files, the FoxHHelp9.exe, and the FoxHHelpPs9.dll to this new subfolder.
  4. Go to the following folder: C:\Program Files\Common Files\Merge Modules
  5. Create a subfolder called VFP9SP1
  6. Copy all the VFP 9 merge modules to the new subfolder
  7. Copy the main VFP 9 folder to another folder. I call mine: C:\Program Files\Microsoft Visual FoxPro 9 SP1

You have to worry about those three folders.

Craig Boyd and Bo Durban have also heading into the waters and provided some sage advise on the SP2 install.

If you want to be extra careful you can also export the registry settings for VFP 9. I have not done this in the past and have not had any problems skipping this precaution. You also might want to back up your FoxUser files and the HOME(7) folder where files for the Data Explorer, Environment Manager, ObjectBrowser, Task List, Task Pane, and Toolbox save their metadata.

Now you have backups of the VFP 9 SP1 files and it is safe to install both the Sedna and VFP 9 SP2 files.

I take these precautions for two reasons. The first is so I can double check things in the released version to see if something works differently with the second SP installed. I can verify bugs which are suppose to be fixed, and validate problems found in SP2 to see if they are newly broken since the released version.

The second and more important reason is I might have to release new versions of my current VFP 9 apps and I do not want to do this with the beta runtimes. I can build the apps using the VFP9.exe in the SP2 folder. Before doing so I swap in the VFP 9 runtimes and merge modules. If I need to do this I create subfolders with the corresponding SP2 files just like I did with the original files. After I am satisfied with the testing I build my installs with the released version files. Once I ship the product I swap in the SP2 files and proceed with the testing.

I install the SP2 beta over the original folder (C:\Program Files\Microsoft Visual FoxPro 9). Note, this will automatically overwrite the merge modules and runtime files too. I create two shortcuts to VFP 9. One for the SP2 folder and one for the SP1 folder. I use the appropriate shortcut for the type of work I am doing, but I can tell you I use the beta version for most of the time. The Fox Team has been very good about shipping stable betas over the last few years.

This is the first of hopefully many releases between today and the time Microsoft ships VFP 9 SP2. This is also very early in the testing cycle, so your results can be interesting. Especially when Microsoft has not posted the changes in the Service Pack (hopefully an oversight soon to be corrected).

Happy testing! I will watch for feedback on the release, especially where the Data Explorer is involved {g}.

Oct
01

MVP’d again!

This morning I received some great news from Microsoft that I have been named an MVP for the 2006-2007 season (renewed on October 1st each year). This is the sixth consecutive time I have been honored with this award.

The MVP award is the way Microsoft recognizes individuals for their contribution in supporting Visual FoxPro developers by answering questions on forums, presenting sessions at conferences, and writing articles, blogs and books. More information about the MVP program can be found at the MVP site.

This is an absolutely an honor. It is my intention to continue helping other VFP developers on FoxForum.com, the MSDN forum, other forums, at conferences, through this blog, and via some articles I am putting together.

Oct
01

I am pleased to announce the official release of White Light Computing’s ViewEditor Professional v3.6 Service Pack 1! This release is free for registered developers.

List of the new/updated features in this release:

  • Include comments in view script (like the date/time it was generated and the view Comment property).
  • Added more documentation on setting up macro substitution view parameters with VFP 9 based on feedback from developers in the “Macro expansion and view clauses topic” in this Help file.

Bug Fixes:

  • The Inherit Table Properties feature triggered the error message “Not a character expression” when running the ViewEditor from the Stonefield Database Toolkit.
  • The Inherit Table Properties feature stopped inheriting field properties if one field has a bad UpdateName.
  • The Copy View Code feature was missing the Comment property for fields (it has been in the view properties).
  • The Copy View Code feature was using brackets for quoting character strings on DBSETPROP() values. This was a problem if you had bracketed strings for view and field properties such as Caption, RuleText, etc. The code now has brackets ([]) if you have single or double quotes, and double quotes if you have brackets in the strings. Single quotes are used if there are no brackets or single quotes in the string. If you are mixing and matching you may get unexpected results in the code.
  • Cleaned up view code with respect to DBSETPROP() in the generated code.

The current ViewEditor Help file is available for you to review if you want to learn more about this popular tool.

Sep
30

The IT Miracle

I believe you have all experienced a client who asks for the impossible, but despite all odds you some how pull it off. You produced what I call the “IT Miracle”.

Depending on your perspective and beliefs, a miracle can have many meanings. So for the sake of this discussion I propose the meaning to be this:

1. an effect or extraordinary event in the software development world that surpasses all known human or natural powers and is ascribed to a supernatural cause.

An IT Miracle is simple. The user asks for something you figure can only be accomplished by using a time machine, a magic wand, pixie dust, telepathic communications, more money than the customer has, and a truckload of Staples Easy buttons.

Not only do they ask the impossible, they put up several roadblocks, leave out critical details, respond slowly to questions, accelerate deadlines, and maybe toss in a few extra last minute requirements they got to have or the project will not be deemed a success.

Some of these impossible tasks are driven by business needs, some are necessary to provide competitive advantages, some of them are wild and crazy ideas by pointy-haired-bosses, some are in response to project disasters, some are necessitated to help users who are desperate for help, some are driven by governmental legislation, and the list goes on…

Add in the dependency of others pulling their weight on the project. Maybe it is counting on a project manager to handle all the critical paths, solid specs from the business analysts, developers providing good estimates and finishing up their components on time, DBAs making the data changes on time, testers building the proper and efficient test plans, users performing acceptance testing, tech support folks coming up to speed on all the changes, hardware being delivered on time and in some cases designed/developed/built. Maybe you are in charge of all these aspects, which may or may not be better than having others help you.

Clear communications is always one of the biggest stumbling blocks. Forget one little communication and the whole house of cards can come tumbling down.

Quite frankly, I am amazed the simplest of projects come together. Maybe every project is an IT Miracle.

I just finished working on my latest IT Miracle project. It really was not a whole lot of fun. Usually they are fun. Five conversions from four different database schemas to one common database in three months. This means five different customized conversion source code bases (even the data in the common database schemas were different enough from each other). Lots of code had to be written and had to be perfect to ensure no data was lost. Three of the conversions were from databases we had no prior contact. The last time we did one of these from scratch it took four man months and we were asked to do all five in three months. I told the customer it was going to take an IT Miracle. The client was not open even slightly to any deviation to completing this before September 30th.

The last conversion happened last night despite the odds. Only because key players on the team did what ever was necessary to get the job done. This is the key. Find people who are dedicated to pulling off the impossible and be flexible enough to work around those who are speed bumps along the way. Adrenaline junkies with a a few of these qualities: a sense of humor, excellent coding skills, lots of patience, the ability to skip sleep cycles, willing to pick up the slack from others, ability to communicate clearly, and take the heat of those who call you on the carpet and question your integrity. The few and the proud.

I have been lucky in my career to have surrounded myself with quality developers with these qualities.

The question pestering me today: how many IT Miracles are we allowed in our careers? Reading my earlier conclusion about the possibility all projects are IT Miracles has me thinking I should be praying there is no limit.

Fortunately most of my clients have reasonable expectations. For this I am blessed. I am sure the next IT Miracle project is just over the horizon so I have decided to enjoy the break in between them this time while I work in projects with sane requirements.

Sep
23

More ISS Transit shots

I was surfing the Web this morning looking for the latest images of the International Space Station to see the latest changes done by the crew of STS-115. My hunt lead me across some more transit pictures and actual video of one such transit with the lunar surface as the back drop. Check out the video on Ed Morana’s page to see how fast ISS is traveling when some of these pictures are captured. Very impressive stuff.