Skip to main content

Posts

Showing posts from April, 2006

Hmmm....could SolutionExplorer have a continuous integration component?

After reading this post from Eric Sink, I was intrigued about CruiseControl and if it could be made to work with VFP.

It doesn't sound like it but the concept is something that might play very well with similar concepts in VFP.
This article describes it:
What is CruiseControl.NET - Confluence

In VFP, one could imagine setting up a dedicated folder for Production Builds and then monitoring the source control repository. When an update is made, it automatically downloads it (this part could all happen with CruiseControl if it would recognize VFP components) and then it would run a build on a specific project.

Is anyone doing this today?

This also reminded me of this post by josborn.

Which reminds me, Craig/Scott - didn't Solution Explorer mention some kind of cool integration pieces....

Scary Thought: Is Scoble Mini?

After reading this post - How Microsoft can shut down Mini-Microsoft - yesterday, I had a very disturbing thought.

In the middle of the night, after putting down the camcorder, relinquishing his SmartPhone and stopping his SecondLife game, Robert goes down to basement of his home, knocks three times on a bookcase, and pulls on his signed copy of "Business @ the speed of thought". The bookshelf moves forward and spins around, unveiling a dark room with a single AMD black computer on it. (possibly running Linux, or maybe even, gasp a customized MacBook Pro)

His usual smiling face is replaced with a scowl that could only be described as...(slightly - punkish)


Hmmm - am I far off? As from the description "(Mini is an anonymous blogger, who generally talks about things that Microsoft is doing wrong, and/or that he wants to see improved. His motto is to, by slimming down Microsoft, make Microsoft a more lean profit-making machine)."

Scoble is always talking about making Micr…

Blogging Conferences

Maybe it's just that Australia has better wireless in their conferences. I think it's great when developers blog the conferences they are attending, as Craig is doing with his DotNet: Code Camp.

While I've always liked the Universal Thread Conference coverage, I hate logging into it - it's just a complete pain (especially since this board doesn't even support RSS)

So for all those who were there, how was Great Lakes?

Hey - and as I just saw on the UT, there's now even a RUSSIAN VFP DevCon.

What's Wrong With This Statement?

Code in a textbox valid method:

IF TRIM(THIS.Value)<>TRIM(THIS.oObject.SavedValue)
THIS.oObject.SavedValue = TRIM(THIS.Value)
ENDIF

On the surface, this code may look like it should execute properly, right?

There is one approach that you might change immediately :

Sethe ControlSource property to THIS.oObject.SavedValue. This would remove the need for this code completely.

But is there anything else wrong with the statement?

When you look at the value of an object and compare it to something, it's easy to get into the habit of only changing the initial value. If THIS.Value isn't empty, then you're going to do something but in the case of the statement above, what about the comparing value? (the one stored in THIS.oObject.SavedValue)

IF "Andrew"<>"andrew"
** This code will execute
ENDIF

IF "Andrew"<>""
** This code will NEVER execute
ENDIF

As a result, the original code (that updated the value) would never execute.

A sma…

The Two Most Important Words in Blogging | Copyblogger

Originally noted by Bubba, I think you'll find this post valuable if you blog at all because it helps differentiate valuable content from mindless drivel.

Yes, you may read some drivel on here from time to time and sometimes, the best way of explaining a technical problem is to walk through the steps you've gone through to arrive at your conclusion, so I may lapse from time to time but the CopyBlogger is definitely right about delivering good content.

Is this something new? Absolutely not. Advisor Communications and FoxTalk have been recommending this approach for years (at least the first word).



The Two Most Important Words in Blogging | Copyblogger

The Transient Web

Great post by Steve Rubel about The Transient Web

His main point? "Only one site, eBay, seems to have retained users over the past ten years. And that's because they listened to their community and innovated. Google, so far, has done the same. But will they?"

If you read the comments, you'll see that some of his examples aren't as persuasive as others, but I think you'll get the point.

In the development world, the same could be said. Fifteen years ago, you programmed other MS applications with DDE. Now you do it with VBScript, COM or other tools. You used to write code with C, maybe C+, and Basic. Now you do it with C#, Java, VB.Net or any number of other languages. You used to swear by (or at) the Waterfall methodology, now everything is agile.

What's the same? Oh yeah - the power found in a FoxPro application.

I know there are other technologies that are still around (and in use) from 15 years ago. What are the ones you can think of?

Wonder what we'll …

Go to Sleep

Franlkin makes a note on how to go to
Franklin Sleep en VFP (Sleep in VFP)

It brings up a very important reminder of working with DLLs.

The code was this:
Declare integer Sleep in "kernel32" Long dwMilliseconds

Sleep(200)

The trick? VFP Developers get so used to being case-insensitive if you define it as

Declare integer sleep ...

It won't work. API calls are case-sensitive.

It was a handy post too - I was just getting ready to use

INKEY(5,"H")

What's that last "H" do? It hides the cursor.

A lot of older code coming from DOS days just used to say INKEY(2) - and you would see a cursor sitting there on the screen. UGLY!

With INKEY, you can set the second parameter to "S" - to show the cursor, H to hide it, M to wait for a mouseclick or E to expand a keyboard macro.

But with the Sleep call, you don't need to worry about it - and rely on the basic Windows API call.

Thanks Franklin!

Pet Peeves: _SCREEN.Activeform

While it's a great product, there are just times that FoxPro really drives me nuts.

A great example? _SCREEN.Activeform.

I know people have ranted about this for years so now it's my turn.

_SCREEN.Activeform returns a pointer to the current form object. But what if there's no current form?

Does it return NULL? An empty string?

No. It errors out.

Does anyone know what the reasoning was here?

Now, you can verify it by doing

IF TYPE("_SCREEN.Activeform")="U"
** Now you KNOW there's no form there.
ELSE
ENDIF

but then you still have to do a

IF NOT ISNULL(_SCREEN.Activeform)

ENDIF

Note that you can't use VARTYPE() because Activeform isn't a variable. (example : VARTYPE(_SCREEN.activeform)) - which is a shame because VARTYPE is the faster of the two.

In that blog post, if you read the comments, you'll hear things like "use PEMSTATUS" instead of Type for objects but the problem here is that ActiveForm IS a valid property for _SCREEN (unless you act…

Putting Your Best FoxFace On

I've always been a bit troubled by "skins", the way that many consumer or hard-core geeky tools (WinAmp was one of the more popular ones) allow users to apply skins. Not to say I don't like them ( I like a good Star Trek Skin- but I can certainly understand how they can confuse other users.

That said, I'm intrigued by this new tool for Visual FoxPro 7 through 9.
FoxFace - skin VisualFoxPro (VFP) applications with our VCX class, VFP skin, Visual FoxPro skin, skin Visual FoxPro, skin VFP - the downloadable demo is unfortunately terrible (it only shows one skin and doesn't size properly on a 1024x800 resolution) - but they do have a nice presentation on how to use it here

For $59 US, if you wanted to let your users "skin" your app themselves, they can do so. Has anyone tried this out in a real application yet?

In looking at the demo, there appears to be a FOXFACE table that contains the skin ID, name, author and email and then a variety of fields that lo…

Express Yourself Freely

As Paul Mooney notes, Visual Studio Express Free Forever.

For developers, that's great news - certainly it helps Microsoft continue its push to get more developers using Visual Studio and DotNet technologies. Of course, they will need to pay for their large scale solutions but who doesn't.

Hmmm --- wonder if that will deal with Claudio's issue?

That stuff aside, Paul's post also notes some other very cool announcements including a Skype wrapper and a variety of initiatives and videos.

But good on you, Microsoft and the entire Coding4Fun group!

Restoring Work Areas: ALIAS() vs. SELECT()

Most programs like to save and restore the calling environment when they execute. The environment may include settings, work areas and more. This is something that is fairly unique to Visual FoxPro rather than VS environments that don't really have the concept of a work area. In Visual Basic for example, you retrieve your dataset object, execute your commands separately and basically treat it like an object (this isn't about VB so don't flame me on the basic description).

In Visual FoxPro however, you have the concept of work areas. So when you decide to work on the Customer file, you can say SELECT Customer and that becomes your main "area" that you are working with. This can be extremely handy for a variety of purposes. But coming back to the matter at hand, saving and restoring environments.

FoxPro provides you with a few functions that can tell you what you're working with. If you want to know what table you are currently working on, you can use DBF() to re…

Big Continent, Small World Indeed

Ken's recent post does a great job of covering some history of names recently joining the Microsoft Live world (via FoxPro, xBase and by all strange coincidence, Antarctica.)

Hmmm....don't know why but I almost see a funny viral version of March of the Penguins in there somewhere...

Developer Abstraction: Read this article

Ted is talking about Joel Spolsky's latest article as is Jamie Osborn and there's no reason why every developer or manager involved in the software business today shouldn't.

Maybe standing meetings should be the way every meeting should be conducted.

Ted - I agree. Between Joel and Eric Sink, they have some of the most insightful articles on the web (for developers) today.

What Are You Doing on that computer?

Classic blogger quote:
Finally, a little story for you: At 11:00 pm a few weeks ago, my wife asked me, “What are you doing?” I wish I could have said, “Making money.” Instead I told her, “I'm changing the world, 15,000 people at a time.” To which she deadpanned, “Oh, you're blogging again...”

Bona tempora volvantur--by Guy Kawasaki: The First 100 Days: Observations of a Nouveau Blogger

No More FrontPage

"After nine years of being an award-winning Web authoring tool, FrontPage will be discontinued in late 2006. We will continue to serve the diverse needs of our existing FrontPage customers with the introduction of these three brand-new application building and Web authoring tools using the latest technologies, Microsoft® Office SharePoint® Designer 2007 for the enterprise information workers, Microsoft® Expression™ Web Designer for the professional Web designer and Microsoft® Visual Studio 2005 for the Web developer." Linked here

News Of Interest from AKSEL Solutions: The next generation of Microsoft Web authoring tools

The FoxShow Returns

The FoxShow returns from a 2 1/2 month(!!!) absence with an Intervie with Rod Miller.

Who's Rod Miller? He works at DBI Technologies who recently announced that they would be including some of their ActiveX components with Visual FoxPro Sedna.

The interview discusses the controls included in the update as well as how developers can start getting involved in using them (hint: the trial versions are unlimited with a nag screen).

I'll be covering some of the controls in a series of updated white papers on them. I covered them back in 1999 (wow - 7 years ago) for FoxPro Advisor (one summary article is here) but I'll put my new reviews on them into my white papers repository.

Beware of Using AutoComplete for everything

(note: Yes, I know the first version refered to using .T. - it's been updated)

VFP's AutoComplete feature totally rocks. You turn it on and you've immediately provided a valuable tool for any data entry application where repetition is almost always a way of life. So valuable that you might be tempted to turn it on in your base text box class. In a word (ok it's a contraction so maybe two words) , don't.

The reason? AutoComplete works with password fields.

Huh?

AutoComplete has several properties but the most common one is simply to set AutoComplete property to a value other than 0. When this happens, FoxPro "magically" remembers the previous entry and recalls them in a selectable list each time the user comes back into it and enters the same first letter.

This "magic" isn't all that special : default, the file AUTOCOMP (located in your application data folder or current folder for runtime) contains 7 fields: source (the object name), data (the va…

Rick: FoxPro Rocks Parsing Data

Oh yeah! I had a similar case recently only I had to create a database from about 5 different versions of the same catalog document. The time was a bit different due to manual checking and inconsistent terminology but I could only imagine how much time it would take for a non-VFP developer to do the same.

I wonder how many companies have documents that should really be databases? I'll bet that number is huge.

I know that once all data is saved as XML, it won't make THAT much of a difference, right? (at least that's what we keep getting told - nudge, nudge, wink, wink)

I think when that finally happens, a whole series of new tools wil be needed. I noticed on SednaX, someone was asking for something similar to the BizTalk Document Manager. That tool is very cool but, in my mind, still overly complicated for what some people want or need to do. Maybe there is a need for a lower-end VFP tool to do something similar - in effect, it becomes an automated XSL generator. I know there…

CodeKeep: Snippet Repository

Saw this on Scoble originally linked by James.

It's funny - back 15 years ago, snippets were a term that was fairly unique to FoxPro (snippet editor was the one of the most commonly used terms in the 91 devcon). It's not just the technology and experts that have made their way through Microsoft - it's also the terms! (disclaimer: I'm sure snippets weren't just for VFP but they seem to have really found their way into VS in a big way with 2005)

It even has FEEDS! - where's the VFP feed? (I've asked for one - currently they don't have one - for shame!!)

Now where can this go? Imagine having an Intellisense script that reads the feed and allows you access to Web-based snippets, even better than those found in Visual Studio 2005 (one of my favorite features) - oops - they already have an add-in architecture for Visual Studio!

CodeKeep : Home

VFP to UML

Hmm....Dave Ballard is proposing an opensource tool to analyze VFP projects and convert them into XMI, which is a fairly open UML standard.

This would be fairly cool - especially since very few that I know of use Visual Modeler, Visual UML and Rational Rose is just too darn expensive.

Importing an XMI into Visio would be very cool.

My question would be: why not include this into SednaX?

OpenTech :: View topic - VFP to UML

OK Rick - I'm a little envious

Rick Schummer recently did a TechSmith field trip and posted about it yesterday.

I'm a little envious - I am a big fan of Camtasia and loved learning about his little trip.

Only one thing, Rick - did you actually get to see Morae in use? I'm excited about trying it but I'm too far along on my own app right now to put it into the dev process but I would LOVE to hear about it in use.

What Happens when Analysts have too much time on their hands

BugBash is awesome.

Has this ever happened to you? I'm not discounting use-case scenarios and the like, but sometimes analysts and managers go way too far trying to "describe" the environment about their needs instead of actually defining the need itself.

These people need training in elevator speeches. Maybe a similar approach would work for better analysis: if you can't describe the problem or solution in 30 seconds or less, then maybe you need to rethink the issue.

As I weed through my various emails outlining problems and solutions, I keep on coming back to it. And lo and behold, Guy just posted something similar about the Executive Summary - no it's not 30 seconds and it's really about "selling" the solution but when you've got analysts and developers living in separate "houses", "selling" does become part of the landscape.

"I have a potential solution - can I convince you that my way is the right way to resolve it, or …

Happy Birthday Apple

Well, I still haven't been able to switch back yet (due to my love for a certain database that USED to run on a Mac - and yes, I know I can do it with Virtual PC but that's not the same thing) but I still believe in the Macintosh Way and I still have my original Mac Plus sitting in my office ready to play Dark Castle whenever needed.

Funny to think about my first FoxBase+/Mac application. Back then, I had to rely on Compuserve to get online. Thirty years - if you look at the timeline, it actually ends up being only a few major product and innovation highlights and yet the mystique lives on.

I remember back in 1991 seeing how Apple was changing the world of architecture with Paul Wollstencraft (or something similar), showcasing virtual walk-throughs and more. Stuff we're just NOW starting to see come alive again on the web via stuff like Sketchup. Yes, it was still too hard but it was there.

I'm glad Steve is back and in control. When I first saw the Next OS, I drooled. Wh…