Thursday, July 13, 2006

pcAnywhere's Amazing Speed Send Feature

I've been using pcAnywhere for almost 10 years and while the product itself hasn't really evolved much in the last 5 years (while other competition has caught up), there's one feature that continues to set it apart from all the others: Speed Send.

This ultra amazing feature performs some kind of binary file compare on a file you are copying between the remote & local machine, and only sends the differences. It is a spectacle to behold. Some of my VFP applications have grown to be almost 10MB in size. Assuming I've made only a minor modification to the next version of the file, pcAnywhere can Speed Send it in a matter of seconds!! Every other remote access software I've seen will simply overwrite the original file, resulting in a new 10MB upload, which even on DSL or Cable speeds can take a few minutes.

The scenario that happens to me most is that I will upload a new version of my application. I will test it on the remote machine, and often find I missed something or forgot to take out a SET STEP ON, or whatever.. I'll immediately build a new .EXE, and transfer it.. The Speed Send literally takes about 5 seconds!! It's a feature I could never live without. Of course, the more changes you've made to the newer file, the less effective Speed Send becomes, but typically I've never had to wait more than 30-40 seconds for a file transfer of even 10MB (except the first time of course).

What I *really* would like to know though, is why on earth can't I find any software tools, programming examples, or even Active X controls that offer this kind of functionality? Surely they must exist? If one person was smart enough to design it, how come nobody else can? I've searched for the terms binary diff and other keywords, but have never found anything close.

Does anyone know of this kind of functionality and where I can get it? I have so many ideas for it's use in Visual FoxPro!

Wednesday, June 28, 2006

Features of VFP8 I'd like to start using in my apps

I can hear you all laughing now! VFP8? you say, that's an old version of VFP already, shouldn't you be discussing features of VFP9?

Yes, I will probably make a post about VFP9 features someday, but for now a little story..

One day I decided to really read carefully through the What's New section of the VFP8 help and was shocked to find that there were several features I hadn't seen mentioned before. I had read up quite a bit on VFP8 prior to it's release in all the magazines so I thought I knew everything about the product.

So I decided to make myself a list of some of these new features that I thought would be great to start adding into my applications. Keep in mind, I've already been using the 'headline' new features such as try/catch and other big features for quite some time, so I obviously won't be mentioning those here. Here's the list I came up with - hopefully you'll find it useful for your applications too!

In no particular order:
1) Internal support for hand icon - no need for an external icon file for hyperlink class
2) BindControls Property for runtime
3) COMPOBJ() function to compare objects
5) DisplayPath() for showing long paths with ...
6) EVL() - Same as NVL() for Nulls

You can read up about these in the VFP8 help file for the real details.

If there's others you like, feel free to comment!

VFP Common Controls Accepted to VFPX

I'm thrilled to announce that my VFP Common Controls project has been accepted into VFPX (what was formerly called SednaX). The library should be released soon once the transistion over to is finalized according to Craig Boyd. Craig was kind enough to provide my first feedback about the project, "It looks great and behaves almost flawessly."

So what is it you ask? Here's some snippets from the readme file.... If you'd like to contribute to the project please don't hesitate to contact me: sellenoff AT hotmail DOT COM.

What is it?

The library is a set of controls which can be dropped on any Visual Foxpro 9.0 Form, written in 100% pure VFP code with no DLL/FLL/OCX dependencies which duplicates the exact functionality of the Microsoft Common Controls found in the Active X control library mscomctl.ocx, also known to C/C++ programmers as the Common Controls Library found in MS Windows ComCtl32.DLL.

Why do we need it?
Many VFP developers turn to Microsoft’s Common Controls Active X library(mscomctl.ocx) to spruce up their user interfaces. Of particular popularity are the TreeView and ListView controls (which optionally require usage of an ImageList control for graphics support). There are two main disadventages to using the Active X controls. First, Active X controls in general, are more difficult to distribute and register on client computers, and many times version conflicts can cause many headaches.

More importantly, the current Active X controls are not XP Theme aware, and thus, VFP applications that are using XP Themes, look akward and unprofessional by including these non-themed controls. There does not seem to be any
movement on Microsoft’s part to release an updated version of these controls to address the situation as the latest version is a few years old already. This project was born to address these issues.

The library files can be placed anywhere you like. Simply open up a vfp form, open up the vfpcomctl.vcx library, and drop the control onto your form as desired. Set the properties as you normally would through the property sheet. A few methods need to be called in code,normally in your form's init method. See the test_vfpcomctl folder for a project with example code. The design goal was to keep it as simple as possible for you, the programmer,to use these controls.

Goals of the Project
·Provide VFP developers a 100% pure VFP drop in replacement for many of the controls found in Microsoft’s Common Controls Active X Library(mscomctl.ocx)

·Initial focus will be on the TreeView, ListView, and ImageList controls due to their popularity and their current lack of Theme support via the OCX.

·Utilize the Win32API to achive these controls so that from within VFP, they look, feel, and operate exactly as they would for a C/C++ programmer using Windows’ native Common Controls Library(comctl32.dll).

·The controls should be free of any .OCX/DLL/FLL dependencies, so that only pure VFP code libraries are required.

·As much as possible, the controls should be very simple to implement by programmers to use in their own forms, hopefully evolving to the point that they can be worked with as easily as a native vfp control or at the very least as easily as using the Active X controls.

·For some of the more complicated controls - offer two flavors of each: with a very simple interface for rapid desgin with minimal complexity that will expose an interface identical to the Active X counterparts, so that porting existing code from the Active X to these controls would require minimal effort.

·Create documentation and samples for all of the components so developers can easily learn how to use the controls, as well as outline any existing known issues so that the controls can be improved upon.

·Future goals of the project include adding additional controls offered by the MS Common Control library depending on feasability and user desire.

Tuesday, June 06, 2006

VFP Common Controls Replacement Library - Submitted to Sedna X

Well, in the wee hours of the night (or is it morning?), I finally finished up my first release of my new VFP project known as the VFP Common Controls Replacement Library. Without a doubt, this is the coolest project I've ever done, and definitely far more advanced than anything I've touched in VFP previously. I have submitted the project to be included (hopefully) in Sedna X for all the community to share.

So what is it? Stay tuned for details.. (don't you just hate cliffhangers?)

Monday, June 05, 2006

My First Blog

Most of you who know me personally know that I'm not often very talkative most of the time unless some issue has really got me fired up. So to me, the concept of having my own blog seemed rather a ridiculous idea for quite some time.

A while back, the FoxPro community put out a call to all developers to help bring visibility to this amazing tool by putting up blogs and generally trying to exchange ideas and code samples for all the world to see. I've always thought this was a terrific idea, but have avoided taking an active roll since I really didn't feel I had much to say, and to be honest, the idea of streaming my thoughts onto a website for the world to see still feels strange.

So what's changed? Well, for one thing, I've only recently myself had the time to start reading other great VFP related blogs on the web, and I've realized firsthand just how inspiring and helpful these terrific sites can be. I felt it was finally time to "speak up"..

Second, I've submitted a project to SednaX for inclusion, one which I am very proud of and hope will be a benefit to the VFP Community. As a result I forsee the need to output my thoughts, issues, and progress of that project here from time to time.

Last but not least, I've realized I've got a lot of opinions and gripes about the world and of course Visual FoxPro it's past, present, and furure! If for nothing else, it might be nice for me to "vent" now and then and maybe see what others think about these issues.

So "without further ADO".. (Active Data Objects?) welcome to my first blog! Hope to see you again soon.