Skip to main content


Showing posts from February, 2008

Rerun: Concentric Hosting is Currently Down AGAIN - and up again!

Back in December, I found that my hosting partner, Concentric, was down : Andrew MacNeill - AKSEL Solutions: Concentric Hosting is Currently Down

And now today, it decides to go down again.

At that time, I wrote that it was only the SECOND time in 10 years I had lost service, but now this is three times and twice in the past 3 months.

They came back on a few minutes ago (around 12:45 EST)
Thankfully the outage was only an hour and a half. Strike 1 was in December...this was strike 2.

Learning the Basics

Working with FoxPro developers with different degrees of knowledge, it's interesting to see where the general knowledge line is. What do I mean by that?

If you put a bunch of FoxPro developers into a room and talk about standards, you get one indication of where their technical level is at. Yet when you look at the code behind the scenes of individual applications, you can get an entirely different impression.

I've had two (well more actually but two will illustrate it) situations where this came up. Someone was running a query where the results had more records than were expected. When I looked at the query statement itself, the WHERE statement was TRIM(tablea.field1) = TRIM(table2.field2). So that was the problem but why was that in there? As it turns out, it comes back to misunderstanding one of the basics of FoxPro comparisons:

x = "John"
y = "Johnson"

? x=y && Returns False
? y=x && Returns True

Why? Because when FoxPro compares two values, …

Screencast on Advantage Database Server

Over on Shedding Some Light, Rick Schummer notes that JD Mullin has a demo of how to get started with VFP and the Advantage Database server. I'm glad to see these types of demos get put up more and more by the people behind the scenes of a product instead of just the marketing types.

I did a FoxShow interview with JD over at the start of the month and he really goes into details about what the ADS is and what it isn't.

VFPX & FoxPro Community - Quiet? Hardly

I keep on doing Google Searches for VFP and Sedna or VFP and VFPX to gauge traffic. It's not scientific and by in large, I use my own news aggregators for real check-ups but I like to use Google every now and then to get a reality check outside of the VFP blogosphere community.

If you do that, it would seem there isn't that much activity in the VFP world since Sedna (many searches would suggest discussions started to dissipate after mid-2007.

But this is hardly the case. Over the weekend, I noticed that Craig Boyd has continued to take it upon himself to refresh the VFPX site over at CodePlex, ensuring that ALL of the public-licensed code is now available for updates, including all of the XSource pieces and more.

Although I'm not quite sure I like the idea of prefacing all of the base VFP Components with XSource, (especially since now WE are responsible for the growth of VFP), this is great news for everyone.

Why? Let me take one tool that doesn't get a lot of respect: th…

Doh! - figure out return values before coding for them

Many developers will tell you "Development is full of "aha" moments" - those moments when something clicks and everything falls into place. What they don't tell you is that there are also a few "doh" moments - moments where you see code (usually your old code from years back) and instantly see why it wasn't doing what it should have been doing in the first place.

So here's a recent "doh" moment in VFP.

I'm tracking some strange behavior issues in some CursorAdapter code and figure I can use the AfterRecordRefresh event to see if I did get a refresh or not.

I have a lot of my code wrapped in a TRY CATCH LOOP but I had a little piece of code outside of it that I wanted to trap why a record was not refreshed.

The AfterRecordRefresh event gets three parameters:
nRecords - The number of records to refresh (passed to the recordrefresh method)
nRecordOffset - The record offset passed
nRefreshed - the return value from the RecordRefresh method


Using Debugger Configuration files

Andy Kramek has a great post explaining Form Event Sequences in VFP and while reading it, I was also debugging a piece of code in which I had the fortune (or misfortune) to use the Track Events feature in the Debugger. (what do the two have in common? You can actually see the Form Event Sequences very easily by using the Track Events feature).

Track Events is one of those features that doesn't appear useful until you actually need to use it. The big problem is that you have to spend quite a bit of time either a) selecting each event you want to track OR b) selecting all and then removing the events you don't need to track.

Some basic events whose tracking simply takes up space and I almost always turn off:

One feature that I don't see used that often by other developers is the ability to save the Debug configurations. The debugger typically retains all of the settings from the previous session so why would you need to save a separate configur…