The title of this post is a quote from Everton in the BBC television series Chef!, which stars Lenny Henry. If you don't know what I'm talking about, you need to buy this or find somebody to borrow it from.
I'm just sayin'.
I've reformatted and posted a couple of old-but-new articles in the Spacefold articles section today.
This time and effort doesn't count as a distraction from VFP-TMM, because one of the articles was my attempt to doc something (using Image Controls in reports) that was underwhelmingly documented in the RTM-timeframe. In my general VFP-TMM plans, I am resolutely not looking further back than what should have been added in SP1 docs. But this particular item needed help almost immediately after RTM. I wrote this article to leverage FoxTalk as a platform that could support this missing docoid, little knowing what a shaky platform it would be.
It also doesn't count towards not moving towards my goal of posting non-VFP-centric topics this weekend because one of these old articles is about a subject that is dear to my heart no matter what environment or language I happen to be working in: Coverage and Testing. Rather than explain further, I'm just going to repeat the entire (new) introduction to the article here. It serves to show how all my technical interests tend to converge at a couple of key points... and it also does a reasonable job of explaining why I continue to find this particular article relevant.
This article is taken from session notes I delivered at a couple of conferences in 1998. I dug it out in 2006 to show Bob Lewis how long I have been quoting him.
If you don't already read Bob Lewis, stop reading this right now and get yourself to www.issurvivor.com, where you will truly find words to live by.
The (extensive) source for this article is available in Spacefold downloads. I dug it out for this Spacefold publication event, so there is no guarantees that it exactly matches the text of the article, which may have been taken from a different version of the session notes. It has some interesting examples of leveraging the shipping COVERAGE.APP interfaces. You'll find more information on this subject in an old article titled Visual FoxPro Coverage Profiler Add-Ins and Subclasses, if you're interested.
You'll notice that one of the add-ins in that old piece gives you a way to display stack-level information, which is discussed briefly in this piece as not having any default representation in COVERAGE.APP. As you may know, we later updated COVERAGE.APP to have a simple representation of stack level information using XML and XSLT. You'll find more information on that COVERAGE.APP change, as an illustration of XML capabilities and applicability in VFP, in another piece I wrote to discuss the relationship of VFP and XML a long time ago.
Of course, even though VFP7's COVERAGE.APP provides only a simple stack representation, it's XML + XSLT, so you don't have to live with it in the delivered format -- please keep that in mind. Naturally, when we added this feature to COVERAGE.APP we also added a configuration option so you could change the XSLT. Go to town, write some XAML!
As another version note, there is a section discussing using the shipping COVERAGE.APP with VFP 5; keep in mind that the app originally shipped with VFP 6.
It's all interesting, and it's all interconnected. But the source, and all these ways you can leverage COVERAGE.APP, no matter how extensive, isn't the point.
After you've grokked Bob and Bob's wisdom on http://www.issurvivor.com/ and have returned to read this article, you will find some advice that's really timeless. That's why I'm re-publishing it now. Understanding coverage and code profiling, creating good test practices, policies, teams, and plans, are requirements that never go away.
It's also not coding-environment specific. If someone has recommended this article to you and you are not a VFP programmer, don't leave too quickly. Read the intro and then skip down to the testing section that follows the VFP-specific implementation details.
Back to working on a dynamic RS-SQL walkthrough now...