Archive for May, 2006


Back in March I blogged looking for instructions to set up a Virtual Machine. I even asked this question to the attendees of GLGDW 2006. I flat out have not had a single pointer to some decent resources. This surprises me.

Since this time I have run across two good resources I want to share with you. The first is a book called The Rational Guide To: Microsoft Virtual PC 2004 (Amazon link here). It is a short book and has some decent pointers on configuration and setup of VirtualPC. While this book has some simple topics and states some obvious points, you will definitely get your US$10 worth from the read.

The second resource is a new whitepaper from Ronald Beekelaar and John Paul Cook titled Developing and Debugging Software Inside of Virtual Machines. You can get this whitepaper free of charge of on Microsoft’s VirtualPC site. Besides the testing and debugging topic, this whitepaper helps you with copying a virtual machine (VM) to save you time setting up different configurations of the same OS, making new VM, and configuring advanced networking scenarios.

Neither of these resources resolved all the things I was looking for initially, but between the two I have been able to answer most of the questions. Hopefully if you are in the market for some answers to similar questions you will find these resources helpful.

SednaX membership is exploding. We have been approving close to 10 memberships a day for the last week and we just hit 700 memberships overall. This is phenomenal!

We recently added two exciting projects:
1) ctl32_statusbar headed by Carlos Alloatti
2) Code Analyst headed by Andrew MacNeill
The other projects all have recent updates to the source code as well:
1) GDI+ X Foundation Classes headed by Bo Durban
2) JustBehave headed by Glenn Domeracki
3) OOP menus headed by Doug Hennig
A few people recently emailed me asking how they can get involved. It really is easy, join SednaX, then offer one of the project managers your assistance. It is up to each project manager to handle their projects as they see fit, but I know several of them are looking for testers and feedback at the moment.
There is another project on deck which we will be announcing soon too. I think it is safe to say SednaX has momentum.

Over the last few days there has been some discussion over on Ed Leafe’s ProFox list about the cost of Sedna. I jumped in and added my two cents, and introduced a couple of developers to the VFP Roadmap. This spawned off some discussion about the fact there is no VFP 10, which is surprising since Microsoft released the VFP Roadmap almost a year ago. Naturally, this degraded into a negative spiral and the Fox is dead conspiracy theories. I made the comment:

“The community has been throwing out conspiracy theories for years about the future of FoxPro and always questioning Microsoft’s intentions. Now they layout the future in writing and developers still complain. How can they win?”

Michael Babcock responded to my question with this

“By marketing it to those other than the faithful choir so that new blood comes in and it gets seriously adopted in IT again.  (haha, yeah right)”

I understand Michael’s frustration, but I am of the philosophy of not worrying about things I cannot control. The whole thing about Microsoft not marketing VFP is something a lot of people have complained about for years. I have thought a lot about this and finally decided to put my thoughts into words on a public forum. I posted the following on ProFox yesterday (after fixing one typo):

“I am long past this marketing problem. For the most part, VFP is not a product for large enterprises and will not be accepted by a large percentage of large enterprises. It will not matter if Microsoft starts marketing it. Large enterprises are using SAP, Navision, and Web tools. VFP is not on their radar scope (yes some exceptions do exist). I know this because I developed VFP applications for Fortune 1 (General Motors was number one while I wrote apps for them). I watched as pointy-haired bosses read the latest industry rags and made decisions on a moment by moment basis strictly on the latest article they reviewed.
There is no accountability in large companies, so the this “fluid” environment of switching from tool X to Y to Z is going to happen and is really out of control. This is where the statistics are altered in a big way with the percentage of failed IT projects getting so high.
Similar to the fact that Fortune 500 employs a surprisingly low percentage of the overall workforce, large corporations only have a fraction of the overall software development work and budget. For the most part small to medium size businesses don’t care about the technology under the hood and this is the market where VFP flourishes (again, there are exceptions). They just want something that works, is reasonably priced, and is fast to market. They need to be dynamic to remain competitive. VFP, in conjunction with good VFP developers, is the perfect fit for this market. So if VFP developers want to flourish, serve the niche market it serves so well and forget about being the popular child in Microsoft.
This is my competitive advantage and this is the reason my company is so successful. Now back to work.”

I wanted to share this with you because ProFox is not read by everyone. This blog is not read by everyone either, but by posting it here maybe a few more people might read it and link to it. I have received a lot of positive feedback on this. I did not expect it because there was a lot of negativity in the thread up to this point. It might be a different perspective on the subject.
In addition, after listening to Craig Boyd talk about the future of FoxPro and how we as individuals and as a community can make a difference, I felt compelled to post this to see if I can make a difference today. Thanks for taking the time to read my blog.


So we headed out to the pizza place to continue the meeting for some beverages. It is not unusual for our group to do this and quite often the meeting after the meeting is as good or better than the original presentation.

There certainly was some fun discussion, several problems solved, and much Fox education being shared. We did not solve world hunger, but we figured out how vendors can reduce SPAM, discussed numerous gotchas with SQL Selects in VFP 9 (and how Craig needed to use SET ENGINEBEHAVIOR 70 to work around a UNION problem with character fields and memo fields), and probably a dozen or more detailed discussions.

I got home just about an hour ago and several people joined SednaX and specifically noted how Craig’s session inspired the decision to join.

I have not had a chance to review the video recording. We decided to try a digital video camera because of the last minute decision to record the event. I am going to send it to Craig for review and possible editing and then decide if we should make it available to the rest of the VFP Community. We are not video professionals, but it has a lot of value if it worked.

Indeed, the VFP World Domination Tour stop in Detroit was a big hit.

Reboot of the computer and restarted in Windows Vista. Not many of the DAFUG members have seen VFP running in Windows Vista. Some saw it at Southwest Fox 2005 last October.
Craig’s machine is dual boot because he struggled to get Vista to run in a VirtualPC session. Overall, Craig likes Vista. He likes the Areo Glass and the desktop search. There are some changes he dislikes like hiding the Run… functionality and some of the changes in Internet Explorer.
The next step was to show VFP running on Vista and how the new look and feel is already absorbed by VFP because it already supports XP Themes. So your application will automatically look “Vista Enabled”. The menus even look improved. The Windows API calls assume the new API for Vista. For example, the Open File dialog looks different and shows file attributes not found on XP or earlier. There are glitches still, but the Fox Team is working on VFP 9 SP2 to address theses issues. This to me is the most important part of the Sedna release.
One of the neat things demoed included the new Task Dialogs. It is like MessageBox, but better. Craig wanted to show us the speech recognition, but apparently it is broken on his machine in the CTP he is running. Craig had some fun with the fact that I set him up to find a problem with the demos he had. Looks like he is out for some sweet revenge during my sessions at Advisor DevCon or during the keynote at Southwest Fox.
What a session! Two and a half hours of VFP on steriods. Great job Craig.

Pizza was good. Special thanks to Dale Zimmer for buying the pizza and sneaking it into the hotel.
Craig’s next demo is the SednaX GDI+ classes currently under construction by Bo Durban of Moxie Data (project manager), Craig Boyd, and a team of developers. The project is just about 80% complete. The team needs some testers and some developers to work on example code for the libary. He showed some interesting examples created by the team. One of the examples is images, which look like a command button, but has two icons on the button (something not possible with native VFP). The list of examples has grown significantly in the last couple of weeks. I am very impressed by the quality of work done by this team in a very short time. Hats off to Bo and his team!
Have I mentioned the price of the GDI+ classes? Free!
Craig took this opportunity to introduce the group to SednaX. If you don’t know what SednaX is, head over here. Craig is one of the administrators of SednaX (along with Doug Hennig and myself). This is an organization with over 650 members who potentially can collaborate to extend Visual FoxPro. Check out several of the existing projects or propose another project not yet submitted. Ideas were discussed on the types of projects that could be submitted. Craig covered some of the Mission Statement and the process of getting a project submitted for consideration.
More to come…

Next up is .NET integration with Visual FoxPro…
He created an ActiveX control in .NET (something you are not suppose to be able to do and is not supported). Craig created a toolbar/menu and later dropped this on to a VFP form and it works. This shows we can leverage any of the “cool” .NET controls and add it to a VFP form. Craig pointed out how this will be cool in the future with XAML. It could be the fact I have not eaten in 8 hours, but my head is starting to spin. {g}
Next we saw Craig create .NET code on the fly from Visual FoxPro, compile it and run it. All if this is done using the Vista Toolkit proof of concept he put together. He has the code inside a TEXT…ENDTEXT, passes the code to the a method on a COM wrapper he has in the toolkit, and the toolkit runs the code. This should come in handy to solve a problem I have interacting with the SQL SMO .NET assembly because Microsoft does not have a COM wrapper it.
The pizza is here, so it is time to break for dinner. Maybe my head will stop spinning.

Craig wasted no time jumping into demo after demo:
- Calendar control built out of a grid
- Histograms with gradients using GDI+
- Progress bars without ActiveX
- Scrollable forms without the scrollbar features
If you have been following Craig’s articles in The Guide to Microsoft’s Visual FoxPro on FLL creation and struggled with the concepts because it is C++, you probably can benefit from the live version of this series. Craig demoed code that intercepts a MessageBox and centers it and changes text on the buttons before it is displayed. This is all done with Craig’s *free* VFPEx.FLL. This FLL has a ton of functionality for VFP developers.
Next up is the popular and *free* VFPEncryption.FLL. This tool allows you to encrypt and decrypt strings and files. It supports a number of popular encryption types. The documentation is very impressive. There was a lot of discussion around this topic.
Then we moved on to regular expressions. Craig showed off his ability to extend the language to support regular expressions though another *free* (do you see a theme here {g}) FLL he created. His XML parser leverages the regular expressions FLL to parse apart XML. This tool is incredibly fast!
More to come…