Friday, May 26, 2006

VirtualPC Resources

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.

Tuesday, May 23, 2006

SednaX Activity Is Bubbling

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.

Friday, May 19, 2006

Profox: Will Sedna be free???

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.

Craig Boyd at DAFUG (Part 6)

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.

Thursday, May 18, 2006

Craig Boyd at DAFUG (Part 5)

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.

Craig Boyd At DAFUG (Part 4)

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...

Craig Boyd at DAFUG (Part 3)

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 Boyd at DAFUG (Part 2)

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...
 
 

Craig Boyd at DAFUG (Part 1)

Craig has started his VFP World Domination Night in Detroit.
 
He started out his session talking about VFP strengths and weaknesses. He talked about the power of one! One developer making a difference. He promoted the concepts of starting a blog, writing articles, giving sessions, taking part in the online community, and helping create positive hype about VFP.
 
He then jumped in on the power of the community. Image what 100,000 developers can do vs. the 10 people working at Microsoft on VFP. Even if it is 1% of this group: 1000 developers. Starting or attending user groups, getting to a conference, promoting the product, writing case studies and demos, influencing Microsoft, influence other developers about VFP, and the SednaX initiative.
 
The Craig discussed the future of VFP highlighting FLLs, enhancements to the IDE, .NET integration, useful libraries and tools created by the Fox Community, and world domination!
 
All givens for sure, and things I really believe in.
 
The slides are done. Time to buckle in the seat belt!
 
 

DAFUG "Trip Report"

One of my jobs with the Detroit Area Fox User Group is publicity. Each month I post notices on the various forums on meeting dates, locations and topics. This month (actually in just hours) Craig Boyd is bringing his "VFP World Domination Tour" to our fair city. When I posted the notice on ProFox, Malcolm Greene requested I post a "trip report" of the event. Andrew MacNeill seconding this and is also suggesting not only trip reports, but session recordings.

Great ideas.

I am going to do my part by blogging about Craig's session. I am not sure I will be able to keep pace with this insanely energetic developer, but I'll give it the old college try. Watch for the posts coming later this evening and likely tomorrow.

We might experiment with the recording part as well. This is all very last minute so it might never see the light of day.

Dilbert - tears of joy

I have often said Scott Adams has a direct implant into the heads of people in the corporate world. They say humor is better when it is based in reality. So I read the Dilbert comic and blog each day to get a chuckle. Sometimes it helps me build corporate directives (doing absolutely the opposite of anything the pointy hair boss does).
 
I just took a break and caught up on this weeks comic strips and I have to tell you I had tears in my eyes from laughing.
 
"I'll bet you ten billion dollars you can't", "and the loser has to introduce himself as 'the dumb one' ", stop it, my stomach hurts already. Want to get in on the fun? Head here and read each one for this week.

Tuesday, May 16, 2006

Microsoft Support Lifecycle for VFP

I was talking to a friend of mine today who hit a small battle on his vertical market app with potential buyers who asked him what language his app is written in. He noted it was entirely written in VFP. So the potential buyers raised a concern after a little research and noted Microsoft's support for VFP *only* goes to 2014. They are concerned their needs for the software could reach 15 to 20 years and this surpasses the Microsoft support lifecycle.

I mentioned to my friend that Microsoft's policy on this seems to be that extended support for their products ends approximately ten years after release. I also mentioned to him that Visual Studio 2005 (the tool his prospect recommended) has a support expiration date of 12-Apr-2016. You can see this here.

So out of curiosity I looked up the VFP support lifecycle and I was pleasantly surprised to see it has been changed to 13-Jan-2015, which is only a little more than a year before the Visual Studio expiration, and a whole year later than I had read anywhere before for VFP. This is excellent news!

Not sure how I missed this or if things have recently change, but in case I am not the last person on the planet to know, I thought I would pass it along to you.

Saturday, May 13, 2006

How many feeds do you read?

I just loaded my feeds to Share Your OPML based on reading about it on YAG's and Chris Prillo's blog this week. I was shocked to learn I have 206 feeds set up in FeedDemon, and this is after I cleaned out several dozen when I upgraded to version 2.0 recently.
 
Now I do not read all of them all the time. There are several I use just to ping me on topics I am interested in. Some of them are stagnant. Some of them are research. Some of them are for future development. Some are for business ideas. Some of them are educational.  Some of them are to bring humor in my life. Some of them are must reads as soon as the post hits FeedDemon.
 
So I thought I had a lot, maybe even too many. Then I read the list of prolific subscribers who have submitted their subscriptions on the site and I figure I still have a life {g}. The top person on this list subscribes to more than 8000 feeds. All of the top 15 people subscribe to more than a thousand. Shoot, where do these people find the time?!
 
Anyway, I think this could be an interesting experiment.

Field Trip: Epiq Systems

This week I got a chance to do one of my White Light Computing Field Trips. This time I was invited to spend the day at Epiq Systems in Kansas City. I was in town to present a couple of sessions at the Midwest FoxPro Users Group, and Doug Carpenter was kind enough to share his office with me on Thursday.
 
Epiq is a company developing software solutions for the bankruptcy industry. They are using Visual FoxPro to develop both Web solutions and workstation solutions, and do some .NET too. I was interested in how a large team developing with Visual FoxPro successfully implements the Agile methodology for software development.
 
Each developer has their own office where they can isolate themselves. This initially looked contradictory to the typical agile environment where collaboration is so important. Each office is designed so developers can do pair programming. In fact, Doug showed me something I have never seen before on a desktop computer: two keyboards. This is very cool because both developers can be involved in the development. I am a fan of pair programming when working on difficult code, debugging a sticky problem, and doing design. One of the things I dislike about pair programming is one developer usually hangs out over the shoulder of the other developer. It is my experience that the developer on the keyboard is usually doing more work and the sidekick can lose interest. I think the dual keyboard forces both developers to remain engaged.
 
The team invited me to sit in on the "scrum" or "sprint". This is a daily team meeting. I really like this concept. This meeting is very short, which is real different from the normal team meetings I have been in during my career. The team includes developers, program managers, and quality assurance. Each member reviews what they have done in the last day, noting accomplishments and road blocks. A spreadsheet with the tasks are updated live during the meeting to show completed tasks and remaining work. Program managers can determine where they are in the big picture, understand accomplishments to meet the next release, what remains, and can address the roadblocks after the meeting. The quality assurance team can bring up concerns with the latest build (done daily or more frequently as needed).
 
It reminded me of my days at EDS when I worked with a team focused on delivering products for GMAC. We did not use the Agile methodology at EDS, but we used many of the concepts now recognized as best practices in the Agile methodology. This meeting reminded me of the importance of teamwork and the fun one can have working on a team focused on the same goal.
 
The other observation I had is how well the team works together. The quality assurance folks help the developers, and the developers help the quality assurance team. Management works to make the team successful. The Visual FoxPro developers and the .NET developers respect each other.
 
Epiq Systems is run smart, at least from an outsiders perspective. I learned a couple of things I would like to implement at White Light Computing as it grows. It was another day well spent on the road.
 
It was a great day in the windy city (yeah, KC was windier than any day I have spent in Chicago). Thanks to Doug Carpenter for all the hospitality and for the team inviting me to lunch and to the "sprint".
 
Also a special thanks to Lou Harris for loaning me his Staples Easy Button for my presentation at the user group that night. Lou attended one of my Help Made Easy sessions at Southwest Fox last year and was the recipient of one of the Easy Buttons I gave away. Little did I know I was planting one in KC so I could borrow it six months later {g}.

Debugging Tip

At GLGDW 2006 there was a panel session on Debugging Best Practices and Tips. I was on the schedule, but was preempted when Doug needed a machine to do his vertical market session and used mine. So I thought I would present it here instead, although I think Dan Freeman mentioned it breifly during the session.
 

A Visual FoxPro developer can go through a lot of work configuring the debugger with the settings for the watch window, developing the exact breakpoints needed for an application or module, and selecting certain events to be tracked. The settings can change depending on the application or a specific module in an application. We can delete expressions from the watch window and enter in new ones as we test various modules, we can toggle breakpoints in use and not in use, and we can move events that are tracked on and off the list. Another way is to save the exact configuration for the module and later load the configuration without the need to reenter the expressions or toggle the breakpoints.

This is accomplished via the Debug frame only. Using the menu, you can select the File | Save Configuration… to create a file. The file save dialog will default to the current Visual FoxPro directory. To restore a previous configuration you use the File | Load Configuration… menu option. The file contents are stored in an ASCII text file. Here is an example:

DBGCFGVERSION=4

WATCH=_screen

WATCH=set("deleted")

WATCH=set("path")

WATCH=thisform

WATCH=curdir()

WATCH=recno()

WATCH=eof()

WATCH=_vfp.ActiveProject

BPMESSAGE=OFF

BREAKPOINT BEGIN

TYPE=2

CLASS=    

LINE=0

EXPR=EOF("curReport")

DISABLED=0

EXACT=0

BREAKPOINT END

 

BREAKPOINT BEGIN

TYPE=3

CLASS=    

LINE=0

EXPR="MAIN"$PROGRAM()

DISABLED=1

EXACT=0

BREAKPOINT END

 

EVENTWINDOW=ON

EVENTFILE=

EVENTLIST BEGIN

Activate, Deactivate

EVENTLIST END

 

You can manipulate the contents safely in a text editor and reload the configuration. Make backups of this file if you are worried of breaking the layout.

The really cool thing is these files can be created programmatically. Watch expressions are single line entries and can be in any location in the file. So you can easily add a watch with a simple line of code:

STRTOFILE("WATCH=ALIAS()", ;

          "MyDebugSettings.DBG", 1)

 

You also can sort the Watch expressions in the file. One of the things bugging me (no pun really intended) in the Watch window is new expressions are added at the bottom of the list. You can add them to the top of the expression list programmatically in the file using this code:

 

lcFileContents = FILETOSTR("MyDebugSettings.DBG")

STRTOFILE("WATCH=ALIAS()" + CHR(13) + lcFileContents, ;

          "MyDebugSettings.DBG", 1)

 

Once you add it you have to reload the configuration file. One disadvantage to this approach is you lose the IntelliSense capability of the Watch window.

 

Each time I have talked to developers about this feature someone comments to me how they never knew it existed.

YAG's New Job

I know I am late on news item and many of you already know about Alan Griver's new job. I just want to say I believe this will impact the Fox Community positively in two ways. I know this because I talked to Alan and can tell you he is very excited by this opportunity.
First Alan requested VFP to be part of his job and he would not have taken the new position without it. It was very important to him. I think it is important to have someone who is as passionate about data to have VFP under their direction. He is really excited about delivering Sedna and will be hitting VFP conferences. He could have left the team and left VFP to be someone else's "problem". I think this is a big win.

Second, Alan is now an architect at Microsoft.com focusing on the community sites. One of these sites is GotDotNet.com, which is where the SednaX site is hosted. I can tell you there are lots of exciting things planned for Code Gallery for the near future. These changes are really going to enhance the project management of the SednaX projects. Knowing Alan's experience in the Fox Community, how he leveraged this for the .NET community, how he understands how developers work and communicate, I know he will bring it to the table for the community sites. SednaX is just getting warmed up. We have several diverse projects already started and the momentum is just beginning. Having a friend on the inside should be a big win for the SednaX members.

If you want to read more on YAG's move check out his posts here and here. and here.

Congratulations Alan!

Sunday, May 07, 2006

VFP Best Practices E-book Available

(at the risk of a little self promotion, but definitely as a service to the Fox Community)

Have you read some of the blog or forum posts touting the sessions at GLGDW 2006, and kicked yourself for not attending? Wish you had a second chance? Well Whil is giving you a second chance by releasing the session whitepapers as a new e-book: Visual FoxPro Best Practices for the Next Ten Years
I just reviewed through the book (a whopping 415 pages) and personally feel it is worth twice what Whil is charging. Heck there are a few chapters in this book I would be willing to pay $75 by themselves. Go steal a copy for yourself at Hentzenwerke Publishing.

Friday, May 05, 2006

Computer Glitch?

A little humor for my day was provided in an email from Epson concerning a rebate they owe me. I got the email today, and here is the content:
 

Dear Richard Schummer,

Your Epson $20.00 rebate check has been sent via 1st class mail on 12/28/2006. Please allow adequate time for delivery.

Sincerely,

Epson Rebate Administrator

PLEASE NOTE: This is an automated email message. Please do not reply directly to this message.


Looks like they can predict the future or have released my notice too soon. I know rebates always seem to take their sweet time getting to me, but building in a 7 month delay is pretty ridiculous {g}. I also like how I cannot contact them with a reply to the email. Thanks Epson. I hope I get it sooner, and I hope their IT department realize the bug on their own since I have no way to tell them.
 

Tuesday, May 02, 2006

Oh Brother - Brother Tech Support

Or as I should really say: not support.
 
I know I am not your top of the line hardware dude, but even I have been known to change a toner cartridge in a laser printer. After all, it is not a fax machine so even I should be able to handle it. But this weekend it was proven that I am even less competent at hardware than I thought. It started Friday evening when I was printing out a recipe off the web. Simple enough, but the printer is screaming at me to feed it toner. Sunday I stop out at OfficeMax and pick up a cartridge.
 
I get home and open up the printer and try to pull the old toner assembly out of the printer and it is stuck. Stuck hard. So I call Brother's tech support number and get a message: hours of support are from 6am to 9pm PST, except holidays. April 30th is not a holiday, but the recorded message tells me to call back during working hours despite it being in the alleged support time frame. Idiots. Tell me you are also closed on the weekend.
 
So I called back today and was routed fairly quickly to a support professional. It was a good experience to start as the wait time was less than a minute. All I had to do is provide them my phone number and they told me my printer model and asked how they can help. I explain my situation on how I am out of toner and replacing it for the first time and how it is jammed. The guy asked me to pull hard. I did not want to break the drum assembly so I pulled as hard as I could before I thought I would break something. He asked me to check to see if there was a foreign object in the assembly and I looked (again) to confirm nothing was in the way. He was kind enough to tell me I was the first person he heard of who could not pull the toner out of the printer. As if I don't have enough esteem problems with hardware. He figures it will be better for me to embarrass myself in front of a human and gives me the phone number of a local tech.
 
I talked to the local tech and he asks me: do you see this white plastic connector on the left side of the door? Sure. Is it connected to a piece of black plastic? No. I connect it and bingo I hear the sound of a release and sure enough the toner slides right out. Simple as pie. This is the first thing they should of asked me. The local tech guy notes he would have made $50 if I had brought it in. I offer to do so, but he declines. First class help from someone knowledgeable.
 
Have I mentioned how much I hate hardware?
 
Powered By Qumana