Visual FoxPro Stack Overflow

Overflow in the stack of ideas comprising the software components the Visual FoxPro ecosystem.

Ken Levy

In software, a stack overflow occurs when too much memory is used on the call stack, usually caused by programming errors, typically resulting in a program crash. In ideas, a stack overflow might occur when too many ideas, all with good intention, comprise a concept which is too far reaching and/ or unrealistic to reach its goals.

Short Summary of VFPS (Visual FoxPro Stack)

VFPS stands for Visual FoxPro Stack, an acronym used to define the key software components making up the Visual FoxPro platform and ecosystem.

This article is somewhat of a part 2 of the FoxRockX editorial article I wrote for the January 2009 issue. That article can be read online at http://www.foxrockx.com by clicking on Visual FoxPro Stack in the left navigation area.

VFPS was an idea inspired by a long conversation I had with Rainer Becker one evening during the VFP DevCon 2008 event in Frankfurt, Germany. The thought was to have an umbrella stack for evolving VFP community components that added awareness and enhanced branding, like LAMP is to popular open source development tools and components. Not a product, but simply a mindset and perception by referring to VFPS as the latest bundle of VFP related components, like how LAMP in 2010 can be compared to the LAMP stack back in 2008.

In that January 2009 FoxRockX editor article, I wrote as a starting point is a suggested list of components that might comprise VFPS (below):

Visual FoxPro 9.0, Sedna and XSource, VFPX, VFPY. Also included are VFP 3rd Party products including tools related to .NET for Visual FoxPro such as VFP Studio, Guineu, .NET Extender for VFP, VFPCompiler for .NET, and VFPConversion.

 At the time that issue was published, I created a new wiki page online for VFPS at http://fox.wikis.com/topic/VFPS .The primary calls to action was for VFP developers to review the VFPS wiki page as it evolves, provide feedback and discussion around the evolving components of VFPS, and contribute to the awareness branding of VFPS.

Overflow of Visual FoxPro Stack

Since it's been just over a year since my article about VFPS was published, it's worth reviewing the related results since then. From a logical definition, some areas have evolved well and some have not.

To be honest, when I wrote that article I wasn't expecting much result from the VFPS idea and article, I know it was a long shot, but I felt it was worth putting the idea out there to find out any feedback and potential community follow-up. The VFPS wiki page I mentioned above received very little contribution from the community. The primary feedback is the paragraph below copied from that VFPS wiki page:

[2009.06.27] I like Ken's idea a lot. However, it looks like he wants to include everything under the sun related to VFP in the FoxPro solution stack. Ideally, all open source VFP code projects would be included in it (or the most popular ones) or at a minimum, they should be free. This just goes along with the Open Source principles of LAMP, etc. When you start including things like VFPConversion in it, it's kind of a selfdefeating idea and not a solution at all. I think it should make it less confusing to implement a solution and not more confusing by throwing in options that don't even use VFP code.

I'll start off responding to this feedback stating that I, for the most part, agree with these comments. There is no real way to draw a line for what should or shouldn't be part of VFPS, it's very subjective. For example, should Windows be part of VFPS? Probably not, but yet it plays a dependent role in all VFP apps. The reason I originally included products, technologies, and content that didn't use VFP code is that those things did contribute to existing and evolving VFP applications in some way - just as one or more of the LAMP stack components contribute to various open source "based" applications.

There's probably nothing that's going to result in the VFP community referring to the overall FoxPro ecosystem as VFPS (Visual FoxPro Stack). While the idea is likely valid in many ways, realistically it is just a concept that some developers will consider but not use or contribute to.

I know many VFP developers, including myself, who are fans of space exploration and follow @NASA on Twitter. I reference that because I'll use a related philosophy, that often big ideas are needed to take a big step forward, which sometimes result in either failure or limited success, but all is a learning experience and usually worth the effort.

I don't think VFPS will go beyond these FoxRockX editorial articles, but just helping set the mindset about the importance of the overall VFP ecosystem and its evolution into this new decade probably has some value.

VFPX and @VFPX

Speaking of value, and in the spirit of a collection of related and evolving technologies, VFPX is the real deal. And if there was a VFPS, its likely VFPX would be the most popular and evolving aspect of the stack. Projects continue to grow and to be enhanced for VFPX (http://codeplex.com/vfpx). Even if you don't contribute to VFPX projects, it's important to download existing VFPX and provide feedback to VFPX contributing developers in order to support their continued evolution of VFPX tools and components. You can follow announcements for VFPX on Twitter @VFPX. If you don't use Twitter, you can still go to http://twitter.com/vfpx  and subscribe to the RSS feed for @VFPX just like you would a blog feed.

Sybase Advantage Database Server with Visual FoxPro

Within the concept of VFPS there's an important product and technology that would logically be added to a VFPS 2.0 (or VFPS 2010), and that's Sybase iAnywhere's Advantage Database Server. Advantage Database Server (ADS) is the only product today which is actively enhancing how developers can work with Visual FoxPro based data (DBF tables and CDX indexes). What's unique about ADS is that it can help enhance VFP applications into the next decade by bridging VFP DBF data with other technologies and platforms.

There's a new free 12 page PDF download edition of FoxRockX - January 2010, Number 4, 2 ADS Special Issue 2 at http://portal.dfpug.de/dFPUG/Dokumente/FoxRockX/FoxRockX201002.pdf which I authored entitled Sybase Advantage Database Server with Visual FoxPro.

In this special edition of FoxRockX I describe in detail, with downloadable samples, how using Advantage Database Server with VFP allows .NET and other technologies to use DBF based data without requiring any modifications to existing VFP applications. You can find additional ADS with VFP related technical content (articles and screencasts, some of which I created) at the portal http://sybase.com/foxpro .

Visual FoxPro 9.0 Support

A few months ago, on January 15, 2010, Microsoft standard support for Visual FoxPro 9.0 ended. On the next day, and every day since, nothing changed. Extended (paid) support for Visual FoxPro 9.0 ends in January 2015.

Visual FoxPro 9.0 will eventually no longer be available for sale as a stand-alone shrink wrapped product, but will continue to remain available via MSDN Subscriptions and possibly through Select volume licensing. For a while now, upgrade versions of VFP 9.0 have been out of stock at the online Microsoft store ( http://store.microsoft.com ), while as of this month the full version is still in stock, probably while supplies last. Currently there are only 10 copies of Visual FoxPro 9.0 are left in the Microsoft employee store and I don't expect any new inventory will be added once those are all sold out.

Visual FoxPro 9.0 runs well on Windows 7, and there's likely no additional service packs planned from Microsoft. It's likely the only additional hotfixes Microsoft will ever create for VFP 9.0 (if any) are either for critical bugs or for future platform (Windows or .NET) compatibly issues.

It's worth noting that the actual media (files) included with Visual FoxPro 9.0 Professional, Upgrade, and Academic editions (product SKUs) are all actually identical. The only thing that varies in each version is the licensing from the purchase.

Visual FoxPro Trademarks

You can search for current and no longer active registered U.S. Trademarks at http://www.uspto.gov/trademarks  (click Search Marks). There you an verify that Visual FoxPro is trademarked by Microsoft Corporation. What I only recently discovered is that Microsoft never renewed its trademark of FoxPro, and actually let it expire in 2002. When it expired, I was never made aware of that and I don't know anyone on the Fox Team who was told, it was always just assumed to be active. It appears "foxpro" actually went 6 years as an unregistered trademark. That was until in 2008 when a company called FOXPRO, Inc., founded in 1993, registered the "foxpro" trademark. Their website is gofoxpro.com, and ironically, in a very negative way, they sell a product called FOXPRO which is used to hunt and kill foxes. Here is a partial FOXPRO product description from their website:

At FOXPRO Inc., calling and hunting wildlife is our passion... Whether you are a die-hard predator hunter, waterfowl hunger, big game hunger, or a wildlife photographer, FOXPRO game calls get the job done.

In another unfortunate twist of fate, now when you search "FoxPro" via google.com or bing.com, the gofoxpro.com website is the first search result link rather than anything related to Visual FoxPro.

When you search Twitter for the term FoxPro, you will often find tweets about the FOXPRO hunting product as well as VFP related tweets. You can easily search Twitter at http://search.twitter.com, and then use the advanced search features for specific search criteria. You can also use Twitter client tools such as TweetDeck to follow search results automatically. I have search columns configured in TweetDeck that follow on Twitter the strings VFP and FoxPro. In doing so, you will find that VFP now commonly used for at least two other acronyms other than Visual FoxPro:. One is Volunteers for Peace (vfp.org) and the other is Veterans For Peace (veteransforpeace.org).

It's unfortunate that we have to deal with the term FoxPro and VFP "stack overload" in searches and social media content. What is even more interesting to consider here is that now that FoxPro is a registered trademark by a company FOXPRO, Inc which is unrelated to Visual FoxPro. FOXPRO Inc. could possibly enforce its trademark on things such as take over the @FoxPro twitter account, prevent the use of the use of the name FoxPro when not used as Visual FoxPro, and who knows what else. All these potential issues, simply because Microsoft either decided against or failed renewing the trademark registration of FoxPro back in 2002. I'm sure the FoxPro community would have gladly pitched in and donated to Microsoft the small trademark costs needed. I'll probably never understand why the FoxPro trademark registration was ended nor why the Fox Team was never notified about it.

FoxCentral.net and @FoxCentral

In the fall of 2001, within a few months after I became the VFP product manager at Microsoft, I met with Rick Strahl in Redmond to discuss my an idea of a central news feed that would be a web page with RSS feed to allow various VFP community entities to self-post community and product news to the site. We discussed the key features, architecture, decided on FoxCentral.net as the domain, and soon after Rick implemented FoxCentral.net and also created a VFP tool for self-publishing. Almost 9 years later, FoxCentral.net is still active on a regular basis.

While writing this article, I came up with the idea of @FoxCentral on Twitter and discovered that it was an unused account. So I created @FoxCentral, and setup the account to follow one account so far: @FoxPro (another Twitter account I created a while back). Then I sent Rick Strahl an email letting him know I created @FoxCentral on Twitter and asking if it would possible for him to add a function to the FoxCentral.net server that auto posts any new FoxCentral.net news item to the feed. My assumption is that the best implementation would be to have the tweet text be the subject of the post (trimmed to 125 or so) followed by a bit.ly link created from the URL the post links to. This way people can follow @FoxCentral and know when there's new items posted on FoxCentral.net, and to allow @FoxCentral posts to be viral on Twitter.

The @FoxCentral account now exists on Twitter, so it will be interesting to see what the result is and how the account can be used. I can't say for sure how @FoxCentral will get used at the time of this writing, but at least it won't be used for something non-FoxPro related - unless some company decides to register FoxCentral as a trademark and take it away, but not likely.

Visual FoxPro Strategy at Microsoft

For the November 2009 issue FoxRockX, I wrote an editorial article called VFP Strategy at Microsoft. You can read that article online at http://www.foxrockx.com  by clicking on VFP Strategy at MS in the left navigation area.

It's worth me noting here some follow-up details and corrections to that article. Randy Brown read my article and provided some valuable feedback. Randy is a close friend of mine, and he was the lead program manager and architect of Visual FoxPro 9.0 at Microsoft.

First off, Randy reminded me that the entire Visual FoxPro 3.0 team at Microsoft in the early 1990s was closer to people 75 total rather than 50. And, the Visual FoxPro 9.0 team was closer to 15 members total and not the 8 total I mentioned, since we need to also include those who worked on documentation and the extended test team.

Another issue in my article, somewhat of a "stack overflow" of my memory which I should have verified first, is that Borland was actually the owner of dBASE in 1992 when Microsoft bought Fox Software, not Aston-Tate as I implied. Aston- Tate was bought by Borland prior to the Fox Software merger, and this was certainly was a major contributing factor to Microsoft buying Fox Software, along with the other reasons I mentioned in the original article.

 Randy emphasized that one important thing to note about the history and eventual demise of FoxPro is that Microsoft's decision to kill VFP was done long before there was actual business justification (i.e., declining sales and market). And once that decision was made (at time of VFP 5.0 release), there wasn't much that could have been done to save it at that point since the decision went all the way to the top. One irony from my article was that I included the word "strategy" in the title, and I was reminded that the only real strategy that Microsoft had with FoxPro was for the first 5 years (1992-1997). After that (starting with VFP 6.0), it wasn't so much strategic as merely maintenance mode, plus marketing/community efforts to keep VFP developers on the Microsoft/Windows platform.

FoxRockX and @FoxRockX

You can see in the FoxPro History timeline at http://www.foxprohistory.org/foxprotimeline.htm , it was 6 years ago when Pinnacle was going to end the publication of FoxTalk. When I learned of this news in early 2004, I setup a phone call with a key person at Pinnacle and convinced them to continue publishing FoxTalk, along with a new name of FoxTalk 2.0, with the agreement that I would provide a monthly article called Tips from the VFP Team. The agreement also included that the Fox Team would help promote the publication to sustain the subscription base. I also recall in the conversation that Pinnacle would continue the publication for another year and then review to determine if they would continue publication or not. The VFP community once again showed its support and FoxTalk 2.0 continued on 4 more years until it was taken over and evolved into FoxRockX.

@FoxRockX on Twitter was recently created for FoxRockX related news and announcements. And now a fun question to end on... would/should FoxRockX be considered part of the Visual FoxPro Stack?