Level Extreme .NET Magazine April 2008 issue

Universal Thread Magazine March 2007 issue

2008
2007
2006
2005
2004
2003
2002

2006
2005
2004

2007
2006
2005
2004

2007
2006
2005
2004
2003

2007
2006
2005
2004
2003

2007
2006
2005
2004
2003

2004
2003
2002
2001
2000
1998
1997
1996
1993

2003
2002

2003
2001

2003
2002
2001

2003
2001

Visual FoxPro 2001
Visual FoxPro 2000
Visual Studio 2000

West Wind 2002
Double Impact 2001
FoxTeach 2001
Jam sessions
Technical Guidelines

Universal Thread documentation

About
Acronyms
Contact information
Troubleshooting
Time zones
Web Service
Terms & Conditions
Copyright

Manage your account for the messages area options, your subscription information, your invoicing, youir banners and your pictures Subscribe to the Universal Thread and get all the benefits related to the messages area A corporate subscription is needed for companies that have more than one developer Access the Universal Thread store to purchase your subscription, corporate subscriptions and banners The Universal Thread is covering several conferences per year. On site, reporters cover the technical aspect of the conference as well as making interviews, taking pictures and videos and other related content. Get all the reports from our coverages site. Universal Thread home page Level Extreme .NET Magazine, a newly published online magazine by Level Extreme about Microsoft .NET technology and its community Universal Thread Magazine, a magazine dedicated to the Visual FoxPro community Southwest Fox 2005

The newest developer conference dedicated to Visual FoxPro! We want to provide practical techniques and best practices for all skill levels that can be applied to the problems and challenges in developing applications today. Sessions will give a better understanding of OOP; upgrading existing VFP skills; address the latest changes and innovations in VFP; knowledge of additional tools such as SQL Server, API’s and .NET; business advice; taking your application to market; and “nuts and bolts” sessions that you can use today. You will also have the opportunity to mix, blend, come together, mingle, join, unite, socialize, circulate, associate and altogether rub elbows with the top speakers and recognized vendors in our industry. Please join us for what we are certain will be a valuable and entertaining conference.

Date: 
Location: 

Thursday, October 13

By Craig Boyd

Registration

The day started with a wake up call from the front desk at 6:00 AM. Two short hours later I was on the sprawling ASU Campus on my way to register for the 2nd annual Southwest Fox conference. I was greeted warmly by Craig Berntson and Bob Kocher and ushered into a room where Bob's wife Sharon was handing out packets of conference information and the speaker shirts.

Having registered and retrieved my bag of goodies, I was informed that Craig Berntson's session on COM+ would be starting shortly, so I went on down to the Pinal room and found an unobtrusive seat in the back right of the class. Around 20 attendees filed in within the next 10-15 minutes and then Craig began his presentation.

Using Windows Component Services (COM+)
Craig Berntson

At first I felt that Craig's presentation was not all that different from many of the basic presentations I have seen or read over the years regarding COM, DCOM, and COM+. I took a few pictures of Craig and sat back to enjoy the rest of the presentation, not really expecting to learn much new, but knowing that there were many in the session that were taking notes and indeed benefitting from the basic overviews that Craig was giving on each technology and its use in Visual FoxPro. However, that soon changed... I guess Craig was just warming up and I had read far too much into the unassuming way in which he started his presentation.

Before I knew it Craig had gone from showing how to create basic COM+ components in Visual FoxPro to how they could be managed and an install set (MSI) for them generated using the Component Services MMC snap-in. A small smile broke out on my face. I recall thinking, this is more like it, I wonder what else he has up his sleeve?

Next up was a demonstration how a Visual FoxPro developer can setup Windows role-based security for a COM+ component using the Component Services snap-in again. The Craig began to talk about transactions and some of the issues that many of us have run into with limitations in the implementation of transactions in Visual FoxPro. COM+ provided for improved transactions Craig assured us, and to prove it he showed how a COM+ transaction could be setup that would allow us to reliably commit and rollback transactions within a single Visual FoxPro database, but multiple databases, and not just Visual FoxPro databases. Imagine being able to wrap updates to both a Visual FoxPro backend and a SQL Server backend in a transaction, and if a problem was encountered during the update, being able to easily rollback the changes to both backends. This is possible using COM+ using a Compensating Resource Manager and setting a few properties in the Component Services snap-in.

Just to mention a few of the other things that I got from Craig's session. Did you know that you can create COM+ components that are queued and provide for offline, asyncronous applications? Or that you can create a publisher component that can have multiple subscriber components? The latter provides a mechanism for creating a very effective push (rather than pull) architecture which can prove extremely useful for user alerts, updates, and any other application where you would want more than one destination to receive data based on an event at the source.

All in all, Craig's session was very informative and I learned more than a few things. I think if you polled the other attendees they would agree with me. Great session Craig and thank you.

Lunch and a monitor run

After grabbing a quick bite to eat, I accompanied Bob Kocher and another individual to go get a few extra monitors that were needed, and on the way we picked up Cathy Pountney at the airport. Secretly I think Bob timed it so he could get Cathy to help us carry monitors. Bob even found a way to swing by the motel and get Craig Berntson who was enjoying a relaxing moment after the intense 3 hour session he had just given. Bob strikes me as a master coordinator who knows how to utilize the resources he has to the fullest. He also strikes me as one of the nicest, most unassuming individuals I have met in sometime. I had several very pleasant conversations with Bob today and can tell you first hand that the man genuinely cares about the Visual FoxPro Community. He says his only reason for creating Southwest Fox was because Whilfest had been cancelled, and I believe him. He's created perhaps the best Visual FoxPro conference of the year, and I don't think he did it for money, or for fame, I think he did it out of a true love for Visual FoxPro and the Visual FoxPro Community. In short, Bob is my kind of people.

Monitor run completed

Having delivered the monitors back to ASU, I noticed that a number of other high-profile Visual FoxPro Community members had begun to arrive. I can't recall the exact order in which I ran into the following remarkable individuals, Doug Hennig, Rick Schummer, Andy Kramek, Marcia Akins, Toni Feltman, and Barbara Peisch, but they were all filtering in and I was busy making the rounds and shaking hands. Then it was time for Andy Kramek's session.

Designing and Implementing a Data Access Layer in Visual FoxPro
Andy Kramek

Besides having one of the longest names for a session I have ever seen, Andy's session was jam packed with content about how to create and deploy a nTier application with Visual FoxPro. But before I get into the session's content, I'd like to say that it was a pleasure to attend Andy's session and watch this master presenter in action. His tone was perfect, his movements and demos very fluid and his presentation of the complex subject of nTier architecture was very straight forward and understandable. I stress understandable, because Andy would back up all of the design decisions that had been made in the framework he was presenting with very solid arguments. I found myself nodding in agreement on numerous occasions as I thought, "Well yes, of course it must have been designed that way. It is quite clear from what you have just said that it couldn't be any other way". I can only say that I hope that I am half as good in my own sessions that I will begin presenting tomorrow morning at 8:00 AM as Andy was in his presentation today. Andy definitely knows his stuff and perhaps more importantly, he knows how to impart that knowledge to others with what appears to be little to no effort.

Andy showed how to create a data access layer that could be used to access a variety of backends. In this particular session he provided examples of connecting to a Visual FoxPro database backend or an SQL Server backend, but the concepts and a large amount of the code he showed could easily be adapted to providing access to nearly any backend, or at least those that have ODBC drivers provided for them.

He also provided attendees with a number of custom built Visual FoxPro tools that they could use to produce customized classes and code for their application's own databases, and provided attendees with some very sound advice.

  • When providing for multiple backends it is preferrable to work with ODBC
  • Always send data through your access layers and resist the temptation to skip layers and access them directly which defeats the purpose of having separate layers and will ultimately lead to problems down the road
  • Implementing an nTier application with properly encapsulated layers will provide a very sound foundation, give you increased scalability, portability, and ultimately results in being able to develop highly dynamic applications with very little code
  • A number of modification and maintenance headaches slip away when using this proven approach to application design

Now, those aren't Andy's words exactly, but they are a number of points that I took away from Andy's session.

VSS/VFP IDE Integration and What's New in Visual SourceSafe 2005 for the VFP Developer
Bill Fields

OK, so maybe Andy's session title wasn't that long after all? Regrettably I was unable to attend Bill Fields session as I was trying to report on Andy's. No slight on Bill or his session intended, it is just that with so many speakers at this year's Southwest Fox, I cannot possibly make it to all the sessions that are available. I was able to sneak in at one point and get some pictures. When I came in everyone seemed to be contemplating some great problem that was on the verge of solution and Bill Fields was busy answering questions from the attendees. I apologize to all of the speakers in advance that I will no doubt miss over the next two days as I attempt to spread myself between the sessions being presented. Starting tomorrow there will be six sessions going at a time, and there is only one of me, so please try to understand and know that it is not a great situation for me as either as I would like to see every one of these sessions. Bob Kocher had over 100 session ideas submitted and the ones being presented here at Southwest Fox are the hand picked best. If only someone would find an undocumented API call that I could use to clone myself... perhaps I will have to block out some time to speak with Calvin Hsia.

Bob calls together the speakers

At about 5:30, myself and nearly every other speaker met in the Cochise room for a meeting. Words of encouragement and much laughter filled the room. I was humbled to be in a room with so many talented Visual FoxPro developers, consultants, authors, and speakers. I had Barbara Peisch to my left, Craig Berntson was immediately to my right, and behind me was Calvin Hsia, Steven Black, and Rick Borup. I did manage to take a few pictures of this amazing group of individuals all seated together and began to feel like I was becoming part of an extended family or some kind of fraternity that is well equipped to enjoy life and the beautiful moments that it graces us with on occasion.

Meet the speakers

I think that the speakers, including myself, pretty much laughed our way to 6:00 PM. Needless to say the Visual FoxPro Community is not short on individuals with a wonderful sense of humor. In any event, it was now time for the speakers to meet and greet the Southwest Fox attendees, who are the sole reason that great conferences like this still exist.

Microsoft makes its presence known

It was at this point that the rest of the Microsoft Fox Team came in Ken Levy, Milind Lele, and Randy Brown. Now, some may have the urge to point out to me that Randy is no longer a Microsoft or Visual FoxPro representative and perhaps on some level you would be correct, but as far as I'm concerned Randy is one of the best representatives this community has. In addition to his tireless efforts at Microsoft for around 10 years working on and improving Visual FoxPro, Randy has also conducted himself with poise and a great deal of professionalism since leaving Microsoft. He has also showed up at the Southwest Fox without there being a single reason compelling him besides his love for the product and the community that surrounds it. That, my dear readers, is what I call a Class Act and just about the best representative we could hope to have.

I also had a very nice chat with Ken Levy. He was stoked about the conference and some of the things that have been going on for Visual FoxPro and within the Community. You could see that even after all these years, Ken can't help but get excited when he talks about what is and what is to come. I'll have more to say about Ken and report after the keynote session tomorrow.

Rick Strahl

OK, so somewhere during this portion of the Thursday activities Rick Strahl shows up. He's been in town for a few days due to his pre-conference presentations/classes he's been giving. This is my first face-to-face run in with Rick. He exudes confidence and a certain amount of energy which makes me think... should I challenge him to a coding duel, or should I join forces with him so we can try and take over the world? In either event, my impression of Rick was a good one and I certainly respect his talents and abilities.

The very long walk

So after a few more conversations (one with Rick Borup that I thoroughly enjoyed), I notice that Rick Schummer is bolting out the door after Doug Hennig, which reminds me that the speakers were to meet at Monti's, a restaurant uptown, at 8. A quick look at my watch is all that is needed to understand why Rick was leaving in such a hurry; some of us are late for the dinner date.

I'm not sure how it happened, and by it I mean the 8 mile hike to Monti's that I ended up on, but I think the blame rests with either Rick Schummer or Doug Hennig, and whoever had told them that Monti's was just a short jaunt from our present location. All I know is that some 30 minutes and 125 blocks later we arrived at Monti's and I swore off walking for good, I swore on everything I hold dear that I would make good use of taxis from now on, no matter how short a distance I am assured that it is between point A and point Monti's.

In any event, we all had a really good time at Monti's, and I had the absolute pleasure to be seated with Doug Hennig, Bob Kocher, and Calvin Hsia. Funny stories were told about help desk/support misadventures and user errors and I had a wonderful Fillet Mignon. I also had an opportunity to grill Calvin about Visual FoxPro and the future. Though I was unable to get the exclusive scoop I was seeking, I did come to realize that Calvin Hsia is an extremely bright developer. I'm not saying that he is kind of bright or above average, I mean that Calvin is really very bright, and quite gifted at being able to see 11 moves ahead and ferret out the hidden caveat or gem in an idea impressively fast. However, that has only lead to me sitting here thinking... should I challenge him to a coding duel, or should I join forces with him so we can try and take over the world?

Friday, October 14

The Awakening

Having completed the previous day’s UT report, I decided to catch a couple hours of sleep before my wake-up call. When the phone began to ring two hours later, I had a feeling that was somewhere between complete exhaustion, from only having gotten two hours of sleep, and barely contained excitement about the day’s upcoming sessions and events. I was obviously suffering from a slight case of delirium, but had been told by the conference veterans that “pros play hurt”, so I marshaled what little was left in my reserve tank and promptly arrived at the ASU campus about an hour later.

Conference Sessions

Friday was the first full day of sessions. For those of you that may not be familiar with the term “session”, it means that one of the Southwest Fox speakers goes into one of the provided rooms, hooks up their laptop to a projector and, after the attendees have finished filing in, gives a 75 minute presentation on one of the topics they have prepared for the conference. Each speaker has two chosen topics, and they present them twice during the course of the conference. While not all sessions are an expose of coded examples, they are all related to Visual FoxPro and something of value for the attendees. The sessions are held six at a time here at the Southwest Fox conference in rooms named Pima, Turquoise, Cochise, La Pas, Mohave, and Coconino.

First Block of Sessions

I was a speaker in the first block of sessions that started at 8:00 AM and I presented “VFP Painting 101: GDI+ Techniques and examples” in the Mohave room. I had a fair number of attendees at this session, and while I hadn’t given a session at a Visual FoxPro conference before, I have done public speaking in the past, so I felt relatively comfortable (aside from still being somewhat delirious). Given that my presentation consists of about four hours of content, I feel I did a fairly good job of presenting it in the time allotted. My presentation consists of 23 demonstrations which culminate in two final examples showing how to create dynamic charts on the fly and how to manipulate images. After the session was over the attendees clapped and a few of them came up to me to compliment me on the content of the session. In addition to the making me feel good, it was nice to know that some of the content I had presented was valuable to the attendees, because ultimately without attendees, Visual FoxPro conferences just aren’t possible.

The five other speakers that were presenting at the same time that I was giving my session were:
Craig Berntson – “What’s new in Sql Server 2005”
Andy Kramek – “Accessing Remote Databases”
Cathi Gero – “How to build ASP .NET Web-based UI for VFP applications”
Rick Borup – “Integrating RSS with Visual FoxPro Applications”
Milind Lele – “Integrating Visual FoxPro data sources with Visual Studio 2005”

Unfortunately, I was unable to attend any of these sessions due to the scheduling conflict with my own, but the attendees have said that the content and value of these sessions was very good.

Second Block of Sessions

Cathy Poutney – “Advanced Reporting”
Rick Schummer – “Using and Extending VFP’s Data Explorer”
Marcia Akins – “Event Handling in VFP”
David Stevenson – “Ten Practical Uses for the XML Adapter”
Toni Feltman – “Common Sense Database Design”
Visionpace

As you can imagine, it is not easy to attend and report on six simultaneous sessions, but I did my best, as I will for the entire conference, to at least stop by each of the ongoing sessions, take a few pictures, and get a sense for the content and the way the attendees’ were responding to the content being given.

As most would agree, Cathy is one of the Visual FoxPro Community’s premiere experts on the new reporting engine and features in Visual FoxPro 9.0. She had a rather large attendance and was quite animated in her presentation of the capabilities of the Visual FoxPro 9.0 Report Writer. Her session included tips, examples, and detailed explanations of such complex topics as absolute positioning, working with multiple detail bands, the report listener chaining, text manipulation using directives, multi-page display, charts/graphs, XML/HTML, and tweaking the report preview container.

Rick Schummer’s session gave attendees a wealth of information on the Data Explorer. Among the many things he showed attendees, he showed attendees how connections, database schema information, and queries could be setup, viewed, and run from the Data Explorer. He also showed a number of really cool and ingenious ways to extend the Data Explorer by altering the behavior of drag-n-drop and the menus, as well as creating add-ins for it. Rick made detailed comparisons of the Data Explorer to SQL-Server’s Enterprise Manager and showed how the functionality was similar in many respects.

For a thorough examination of Visual FoxPro’s EventHandler() and BindEvent() functions, Marcia Akins’s session on them was a must see. Marcia helped show many of us the incredible power that could be gleaned from extending Visual FoxPro in a similar fashion in the “MegaFox” (a great Visual FoxPro book her and her husband Andy Kramek wrote together), so it was no surprise that this session was jam packed with great information. After making sure the attendees adequately understood what an event is and how it differed from a method, Marcia launched into examples and detailed explanations on how Visual FoxPro developers could handle COM events by implementing interfaces, and how native VFP events and even Windows message events could be bound to. I felt Marcia did a wonderful job of simplifying a very complex subject and showing attendees how they could benefit from having these abilities in their skill set.

I know the photo I am providing of Marcia is not the greatest, but I tried to snap her photo about 1000 times before this and she would always either yell at me, threaten me with great bodily harm, or hide (in the accompanying photo she is doing all three at the same time), so this is the best and perhaps only useable shot I got of her. Marcia is great fun, most assuredly one of the best Visual FoxPro developers on the planet, but a lot of work to photograph. Marcia, should you be reading this, I hope that the conference is now over and I am safely aboard a plane headed for home.

Something that I believe deserves a mention, as they are far too humble to mention it themselves, is that Marcia Akins and Andy Kramek have taken on the extra duty of giving Drew Speedies’s original sessions in addition to their own; a very generous and befitting gesture by two of the classiest individuals in the Visual FoxPro Community.

When I walked into David Stevenson’s session on Visual FoxPro’s XMLAdapter one of the things that I noticed was the large number of attendees that had their laptops open and were trying examples of the information that he was presenting (I hadn’t seen this in any other session up to this point, so there was something in David’s session that peaked the attendees interest enough that they couldn’t wait to try it). David started out his session by telling everyone that the XMLAdapter was not the answer to all of their XML needs, but then proceeded to show ten things that the XMLAdapter is well suited for.

Overall, David was pretty thorough in his presentation of the XMLAdapter including information on its history, abilities, limitations, common gotchas, and how it compares to XMLTOCURSOR() and CURSORTOXML(). He also showed attendees what an XML Schema is and how it is used by or in an XMLAdapter.

If you wanted to know how to create well designed databases, then Toni Feltman’s session was the one to attend. Toni first provided a number of goals and common sense rules that would increase your chances of producing a well designed database, and then presented a step-by-step guide so that attendees could attain and conform to them. This included requirements gathering techniques, database modeling, relationship identification, and database normalization. Near the end of her session she provided attendees with a concrete list of benefits that they could expect if they produced well designed databases. Overall Toni did a great job and the attendees seemed very engaged and tuned in to the concepts and practical processes that Toni was presenting.

That rounded out the second block morning sessions. As I’ve said before, the quantity and quality of the content here at Southwest Fox has been absolutely unbeatable.

Third Block of Sessions

Doug Hennig – “Extending VFP with VFP”
Rick Strahl – “Using Internet Explorer in your FoxPro applications”
David Stevenson – “Subclassing Cursoradaptor for Flexible Data Access”
Cathi Gero – “How to work with data in .NET – Introduction to ADO.NET for VFP Developers”
Barbara Peisch – “Integrating XFRX into your VFP applications”
FoxFire 8

Cathi Gero, an extremely gifted developer whose skills with Visual FoxPro are only eclipsed by her abilities in .NET (specifically C#), gave a session on ASP.NET in which she broke down the differences between ASP and ASP.NET and explained how many of the earlier deficiencies in ASP were addressed in its successor ASP.NET. She showed attendees in great detail how to create a web forms application, including explanations of code-behind files and classes, control event processing, HTML controls, HTML Server controls, web form controls, and the flow of events in ASP.NET. In short, if you were one of the many attendees interested in getting a better understanding of ASP.NET, Cathi Gero delivered.

One of the sessions that was being given at this year’s Southwest Fox that definitely made it onto my “must see” list was Doug Hennig’s session on extending VFP. Not only was it a great session that showed how extensible Visual FoxPro is, it also provided the attendees with information and enhancements that were sure to boost their developer productivity levels. After Doug showed attendees some of the limitations of the current VFP IDE, he launched into an example of an improved New Property/Method dialog box. Next he showed attendees how they could create their own property editors. Then he was on to showing how Visual FoxPro developers could create custom intellisense scripts, as well as a prg designed to automatically declare local variables (courtesy of Andy Kramek and Marcia Akins work in MegaFox). And lastly, Doug showed attendees a little sneak preview of the future, by detailing the features of Sedna’s My which will work very similar to VB.NET’s My feature.

All in all, Doug’s session was great and, as you can see from his photo, Doug has a wonderful sense of humor. As soon as I was about to take his picture he struck that pose, and though I tried to wait him out, he was firmly resolved to keep making faces at me until I eventually gave up and snapped the shot he was giving me. The attendees were still rolling with laughter as I left the room.

More to come…

It is now 4:00 AM again and I must get some sleep, but I’ll be back with the rest of Friday’s activities later in the day, including highlights from the keynote session that included Microsoft representatives Ken Levy, Calvin Hsia and Milind Lele, a guest speaker (that might surprise some people as he hasn’t spoken at a public event in years), Rick Strahl and me. I’ll also be providing details on all the afternoon sessions and the “Tips and Tricks I learned from Drew Speedie” tribute session, as well as many more photographs (see the picture archive for additional photos not displayed in this article). I promise you, there is much more to come from this amazing Visual FoxPro conference, so stay tuned.

Keynote Session

There were some initial difficulties with the sound system, but Ken Levy jumped in and after much fiddling with cords and different microphones the problems appeared to be solved. The room was jam-packed an Bob Kocher got up to briefly talk about how great the conference was going and introduce the first keynote speaker, Ken Levy.

Ken Levy - Keynote emcee

Ken talked about Sedna a lot, and gave some very compelling arguments for why improving Visual FoxPro’s extensibility and interoperability was important for developers as we move forward. He outlined many of the areas that the MS Fox Team is looking at in regards to Sedna, such as compatibility with Windows Vista and classes or libraries to work with Windows Presentation Foundation (formerly code name "Avalon"), Windows Communication Foundation (formerly code name "Indigo"), and the .NET Framework. He also spoke about and demoed the MY namespace implementation (similar to the one that is in Visual Basic) they have been working on for Visual FoxPro (Note: Doug Hennig did some fantastic demos of this during his “Extend VFP with VFP” session) Slide after slide, list after list of features and enhancements that were either currently being worked on or seriously being considered. I would guess that most attendees were starting to feel the same way I was, Sedna is a lot more than just a glorified service pack or something intended to appease Visual FoxPro developers until Microsoft can figure out a way to get us all to move to a .NET language. The features and abilities that Ken listed and demoed showed how the MS Fox Team was planning to make sure Visual FoxPro developers are successful and can create great data centric applications long into the future.

Drew and Brent Speedie

Ken showed a touching tribute video of Drew and Brent Speedie that I found myself having to look away from at times in order to maintain my composure. I guess it is still sinking in that Drew is gone and that the Visual FoxPro Community has lost one of its greatest contributors. I felt similarly when new spread that Ed Rauh had passed away. Shooting stars are always the brightest and leave an indelible impression on those lucky enough to have seen them.

The important and increasing role of the Visual FoxPro Community

The next thing Ken talked about was the importance of community involvement and that the MS Fox Team wanted to find ways that removed barriers that have historically prohibited a number of open source initiatives for Visual FoxPro enhancements and add-ons. He said that Microsoft would be changing the Visual FoxPro licensing agreement to provide Visual FoxPro developers the ability to redistribute the classes and code that makes up the XSource.zip file that ships with Visual FoxPro. That is great news for the Visual FoxPro Community. Imagine being able to modify and then redistribute a new Report Preview application, Report Writer, Class Browser, etc. If you haven’t already done so, take a look at what is contained in the XSource.zip and you will surely get a sense for the doors of opportunity that this move by Microsoft opens up.

A long time ago in a galaxy far, far away…

It was shortly after this announcement by Ken that the theme from Star Wars began to play and he introduced me as a guest keynote speaker. Upon reaching the podium, I told Ken that I felt like Luke Skywalker and that he should consider himself Darth Vader. We quickly made the switch for the projector cord from his laptop to mine and it was at this point that Ken used his powers of the Darkside to cause it to malfunction on my laptop. Actually there was a pin in the connector that was sheared off, but I still like to think that some type of intergalactic force was at play. Ken was eventually able to get the cord to work with my monitor, and as long as neither of us breathed it would continue to maintain the visual display.

I spoke briefly about the history of the Visual FoxPro Community and the accomplishments made over the years in improving Visual FoxPro with custom components, classes, and code that Visual FoxPro developers had written, such as GenScreenX, GenMenuX, GenRepoX, the Class Browser, etc. Then I spoke about the recent resurgence I was seeing in community efforts (which is also where I made a shameless plug for the SPS Weblog). So much is being done these days and there are so many great ideas out there right now. I am really excited about Sedna and the ability of the Visual FoxPro Community to extend and improve the IDE, the class libraries, and code available to Visual FoxPro developers. I think that our efforts can complement the work that is being done by the MS Fox Team, and everything I’ve heard and seen from Ken and the other Microsoft representatives at this year’s conference tells me that they want that too. With the extensibility of Visual FoxPro, the experience of the developers that are using it, and the transparency being provided from Redmond, a great many things are possible.

SednaX – Get involved!

I ended my keynote speech, by announcing the new SednaX project that had been set up out on the GotDotNet site in their new Code Gallery area just prior to the conference. This will hopefully become a central repository and staging ground for many of the Visual FoxPro Community efforts in the future. One of the problems that I can see in moving forward with Community-created enhancements and improvements is that there is no central location or organized way for the community members to work together to produce top-quality add-ons, classes, and code that will improve Visual FoxPro’s value and complement the efforts of the MS Fox Team moving forward. SednaX will be a community effort and you can apply for membership by visiting the site. More information about SednaX will be posted available shortly.

Web Connection 5.0

Rick Strahl, also a guest keynote speaker, presented some exciting things he has been working on for Web Connection 5.0 that utilize ASP.NET 2.0. Web Connection, which is already known as one of the best products on the market, keeps getting better. I am amazed Rick Strahl’s design and development abilities and the stuff his company produces is top-notch anyway you slice it.

Data, data, and more data

Milind Lele presented some interesting demos on using Visual FoxPro data from inside Visual Studio, and Calvin Hsia showed some exciting LINQ stuff that will be available in Orcas. Perhaps the biggest surprise came when Ken Levy introduced Randy Brown, who has not spoken publicly at a Visual FoxPro related function in many years.

Southwest Fox gets a surprise speaker

Randy was greeted with a huge round of applause. If you don’t know who Randy Brown is, he was part of the MS Fox Team for over a decade, undoubtedly the longest anyone has ever worked on Visual FoxPro inside Microsoft. He has played a part in or been responsible for more Visual FoxPro features, improvements, and versions than any other person on the planet. So it was a very welcome surprise, not to just see him at the conference, but to have an opportunity to hear him speak publicly about the product that has been a good portion of his life’s work.

Randy spoke about Visual FoxPro in general and more specifically about web services and the replacement he is working on for the SOAP Toolkit. It is clear that Visual FoxPro’s ability to publish and consume web services is in good hands and I am looking forward to the culmination of Randy’s current efforts in that regard.

Microsoft not taking itself so seriously

Ken Levy also showed some spoof videos that Microsoft had put together, one of which was about a new chair that each of the developers at Microsoft were now using. The chair has the ability to either shock the developer’s arms through the armrests, drive two spikes into the developer’s buttocks, or flip the back of the chair backwards and then forwards with enough force to propel the developer into their desk and monitor. It was deemed a way for those of us that are using their products to share the pain we feel when we run into a bug or defect in one of their products. It was very funny. Clip after clip was shown of Microsoft developers sitting in the chair and being subjected to various types of torture for having released a bug or defect in a particular product. At one point the chair’s ability to catapult the developer forward malfunctioned and shortly after some alarms were heard going off a Microsoft employee found themselves being thrown through the ceiling tiles in their office. I would like to thank Ken for the videos and it is good to see another video from Microsoft where they are brave enough to poke fun at themselves and admit that mistakes are made.

The keynote was wonderful and the venue that Bob Kocher picked for it, the Arizona room at ASU, couldn’t have been better. The show of support from Microsoft for the Southwest Fox conference is very much appreciated, and I hope to see them as regular attendees/speakers in the years to come. I also hope that the vendors that attended this year's conference were pleased with the results. There were a number of booths set up in the Arizona room for the varying vendors who were helping sponsor the Southwest Fox conference. The very best third party products for Visual FoxPro developers were on display and the vendors gave away a lot prizes during drawings that were held in the Arizona room. Each time a drawing was held attendees and speakers alike would be crossing fingers and toes and clutching the little red tickets that had been given to us by Sharon (Bob Kocher's wife) when we checked in for registration. No matter what number was called as the winning number, Calvin Hsia would yell "Bingo!" or some such phrase to indicate that he did indeed possess the winning ticket that was just drawn. At one point he was so convincing in his parody of a winner that Ken Levy decided he had better draw another ticket so as not to give the appearance of impropriety - the entire Arizona room howled with laughter at this point.

Fourth Block of Sessions

Steve Black – “FoxPro is dead! Now what do I say? The business case for developing a new application in FoxPro”
Andy Kramek – “Big VFP9 things come in small packages”
Marcia Akins – “Techniques for getting more out of grids”
Rick Borup – “Roll your own Windows Installer setups”
Calvin Hsia – “Data centric .NET programming based on VFP technology”
White Light Computing Developer Tools

Steven Black’s session on making a case for Visual FoxPro was excellent, and perhaps one of the most talked about and anticipated sessions of the conference. Steven, besides being the architect behind the FoxPro Wikis, is a walking encyclopedia of business cases, risk management factors, product branding and more. I say this because that is the first thing that impressed me while attending this session. Steven is very well prepared and very well read on the subjects being discussed. He showed the battles that we, as Visual FoxPro developers, could win and how to win them. He also detailed the battles that could not be won and how we could avoid them.

If you are a developer of Visual FoxPro applications and needed some help producing a business case for a potential client, Steven Black’s session was the one to attend. It also provided attendees with some insight into the overall strengths and weaknesses of Visual FoxPro that is very helpful when trying to assess where Visual FoxPro fits in. Steven showed that Visual FoxPro was a best fit for many of today’s IT and software development challenges, and he underscored the importance and longevity of a client’s data. Many of the points and opinions that Steven espoused during his session echoed my own and I came away from Steven’s session inspired and wanting to take over the world! Now, if I could just find Rick Strahl and Calvin Hsia.

The rest of the session were all well received by the attendees and provided a great deal of value according to comments and discussions I had with them during the break between sessions.

Fifth Block of Sessions

Ken Levy – “Demo Buffet VFP, VS with VFP, VPC (Virtual PC tips), XML tools in VS, extending VFP”
Cathy Pountney – “Hidden secrets of the VFP IDE”
Craig Berntson – “Coder to Developer”
Craig Boyd – “VFP Cryptology 101: Encryption, Decryption and Hash Functions”
Tamar Granor – “Creating helpful User Interfaces”
Barbara Peisch – “Using the XFRX preview container”

I was once again called on to give one of my sessions and this time it was on Cryptology and VFP. The main focus of this session is to give attendees a crash course in cryptanalysis and cryptography. There is so much information and so many words and phrases used in both that it is difficult for anyone not familiar with them to discern and retain information they may run into regarding the subject, so I attempted to provide attendees with the necessary basics they need to move forward and make informed decisions when it comes to encryption, decryption, and hashing.

In the session I cover cryptanalysis, the art or science of breaking ciphers/cryptosystems, and cryptography, the art or science of creating ciphers/cryptosystems. Symmetrical cryptography was covered which basically consists of stream ciphers and block ciphers. Asymmetrical cryptography, probably better known as public/private key, was also covered and then I gave attendees a brief overview of hash functions. After the attendees had had an opportunity to digest all of these concepts and terms, I then launch into a number of example for the use of each and the tools available to Visual FoxPro developers for working with them effectively, including the Windows Crypto API, _Crypt.vcx, CAPICOM, and the VFP encryption FLL that I wrote.

I also spend a good deal of time making sure that the attendees thoroughly understood terms like plaintext, ciphertext, key, key space, key management, message digest, etc. It is absolutely critical that anyone who wishes to further their understanding of cryptography understands the concepts and terms involved.

I also got a couple laughs during this portions of my session. The first one came when I was explaining key space and showing the attendees how many unique keys are available in a 512 bit key. In case you’re wondering there are:
13, 407, 807, 929, 942, 597, 099, 574, 024, 998, 205, 846, 127, 479, 365, 820, 592, 393, 377, 723, 561, 443, 721, 764, 030, 073, 546, 976, 801, 874, 298, 166, 903, 427, 690, 031, 858, 186, 486, 050, 853, 753, 882, 811, 946, 569, 946, 433, 649, 006, 084, 096 unique keys, or as I said during the session, roughly the amount spent by MS marketing .NET. The second laugh came when I told the attendees that in the demos I am running we are going to be encrypting one of the most closely guarded secrets in the world, and then I put up the plaintext “Visual FoxPro Rocks!”.

Lastly, I attempted to show attendees how all of these distinct cryptography elements come together in order to provide the ability to create digital envelopes, digital signatures, protocols such as SSL/TLS, and overall cryptosystems. Many of the attendees asked questions during the session, which leads me to believe that they were engaged and were thinking about the implications of the material presented, and some came up to me after I was done presenting to tell me that they really enjoyed the session and had gotten a lot from it. The best compliment was when a few different attendees said that they were currently working on projects that they could immediately improve and extend based on the information I had provided. That’s what it is ultimately all about, as far as I’m concerned.

The other sessions that ran opposite of me were well attended according to the other speakers and most of the attendees appeared excited and perhaps somewhat dazed after their first full day of sessions. A day at Southwest Fox is very much like a Visual FoxPro bomb going off inside your head. Luckily, there were only a few potential casualties, but IT EMTs were able to quickly revive them by letting them attend a session on how to use Microsoft’s Notepad.

Drew Speedie continues to contribute

The “Tips and Tricks I learned from Drew Speedie” session was next and it was held in the Arizona room, which is the only room that was big enough to hold the number of attendees and scheduled speakers for it. This was the tribute that many felt Drew Speedie would have approved of most. Those closest to him felt that Drew Speedie would not have wanted to be remembered as the Visual FoxPro Community member who had an unfortunate accident at Yellowstone National Park, but instead would wanted to be most remembered by his valuable body of work and the contributions he had made over the years, and what a body of work it was. The Visual FoxPro Community is extremely fortunate to have it and Drew Speedie will live on in the thousands (if not tens of thousands) of Visual FoxPro applications out there that have portions of his genius built into them and in the Visual FoxPro developers, such as myself, that are using tips and tricks he taught them every single day.

Tamar Granor, who had taken on the responsibility of lining up the presenters for this special session, emceed it as well. She did a wonderful job. I had been fortunate enough to meet Tamar for the first time earlier in the day. She comes across as personable, grounded and a consummate professional, however, what struck me most about Tamar is how genuine she is. When she asked you how you were doing, unlike most of us, she really did want to know how you were doing and listened intently to what you were saying. In short, I liked Tamar instantly.

Tamar introduced presenter after presenter, with each taking their opportunity to show a tip or trick that Drew Speedie had taught them. I was fortunate enough to be one of those presenters along with Barbara Peisch, Rick Borup, Toni Feltman, Rick Strahl, Doug Hennig, and Rick Schummer (I pray that I haven’t forgotten anyone, if I have please forgive me for the omission). In between each of the presenters Tamar would present tips and tricks she had learned from Drew Speedie and even presented a tip that she had shown Drew. As many of you know, it was no small task to find a tip or trick that Drew did not already know or hadn’t already published somewhere.

So not only was the session a beautiful tribute to one of the Visual FoxPro Community’s all-time most gifted and giving members, but it also provided a host of useful tips and tricks to the attendees. I suspect that Drew wouldn’t have wanted it any other way.

Saturday, October 15

Southwest Fox is mind blowing

I am resigned to the fact that I am not going to be getting any sleep while I am here. It’s just a fact, there are too many things going on and by the end of the day, though I am completely exhausted, I am either writing reports for the UT, trying out some new thing I learned from one of the sessions I attended, or just staring at the ceiling as ideas and thoughts about the day whirl around like some mad Visual FoxPro Tilt-A-Whirl. I’m not sure what other conferences are like, but Southwest Fox is blowing my mind.

Friendly front desk staff

It occurs to me that it might be of some interest to those of you reading this where I am reporting from when I write these reports. Well, I’ve included a photo of the lobby at the Sheraton so you can see just where I am sitting as I write most of these UT reports. Some may gather from that, that I am a guest at the Sheraton, not so. I rented a room at the Red Roof Inn, which it turns out does not have high-speed internet, so nearly every morning and night I make the 6 block hike to the Sheraton to access their internet. If you look on a map the Sheraton is directly behind the Red Roof Inn and you would think that it would be a one or two block commute at most. However, the problem is the 8 foot fence between the two, so instead I have to go around. I have managed to cut the distance somewhat by cutting through a few parking lots and jumping a bush or two on my way to the Sheraton.

The desk clerks at the Sheraton are quite pleasant and we go through a ritual each time I arrive. It has never deviated and goes like this:

Sheraton Staff: Will you be checking in or checking out sir?
Me: Neither. I’d like to access your internet connection if you don’t mind.
Sheraton Staff: OK, I see sir. Are you a guest here at the Sheraton?
Me: Unfortunately, I am not. I am staying over at the Red Roof, but I’d still like to use your internet connection if you don’t mind.
Sheraton Staff: Ummm… one second please.
(at this point they go find someone that knows how to give out the internet access codes)
Sheraton Staff: That will be $9.99 sir.
Me: Here you go. (I hand them a $10 bill)
Sheraton Staff: Here is your access code. (they hand me a business card with the code written on the back)
Me: Thank you. (as I proceed to the lobby area to get setup)
Sheraton Staff: Sir, you’ve forgotten your change.
Me: You can keep the penny.

It’s perhaps not a very exciting or humorous dialog, but since it happens each and every time I arrive at the Sheraton it is starting to feel very comfortable, somewhat like an old pair of shoes I guess. When I’ve finished checking my emails, uploading a report to the Universal Thread, and put out any fires that have flared up back at SweetPotato Software’s headquarters, I thank the kindly staff at the front desk for the use of their facilities and either proceed back to the Red Roof Inn (jumping bushes as I go) to catch some sleep or call for a cab to ASU depending on what time of day it is. (Note to self: get a motel next year that has high-speed internet, the Sheraton has friendly front desk staff).

First block of sessions

Steven Black – “Application Metadata”
Andy Kramek – “Buffering Demystified”
Rick Schummer – “Creating Help – Made Easy”
Toni Feltman – “Building N-Tier applications with Visual FoxPro”
David Stevenson – “Subclassing the CursorAdapter for Flexible Data Access”
West Wind Web Connection 5.0

The day starts out with a power-packed 75 minutes worth of sessions. I can’t figure out which session I want to go to more, so I float around as I have for most of the conference. It is like sampling tid-bits from a very expansive buffet. I was very glad to see Steven was presenting a session on Metadata, as I’ve always felt that data driven applications were one of the things that Visual FoxPro does best. If you’re a Visual FoxPro developer and you’re not incorporating metadata into your applications you are probably working harder than you need to, and you’re missing out on the power and flexibility it provides.

A game of racquetball with Steven Black

I don’t know if anyone else who met Steven Black felt this way, but I wanted to play a game of racquetball with him. I don’t know if he actually plays, and it’s been so long I doubt I remember all the rules of the game, but Steven just seems like the kind of guy that you would spend the morning playing racquetball with. The game would start out innocently enough, but at some point there would be an argument regarding the solution to some complex problem. As Steven slowly lured you in for the kill (both in the game and the argument) you would be none the wiser. Then as he dove to deliver the kill shot, he would also utter some phrase that would shatter the reasoning your side of the argument was based on. I also see the whole thing happening in slow motion, but I think that might be the sleep deprivation kicking in.

Andy’s session was the one to attend if you had questions or wanted to learn more about buffering, locking, conflict resolution and/or transactions. While there are many of us in attendance that know our way around backends and how to work with them, few have the breadth of knowledge or the intrinsic understanding of them that Andy does. Besides being “Mr. Intellisense”, Andy is also “Mr. Backend” in my book. (I laughed when I reread the sentence I just wrote. It doesn’t sound like the compliment it was intended to be, but if you’ve read some of Andy’s articles or seen some of the data classes that he and Marcia have created, you’ll hopefully understand what I mean).

Rick Schummer took on the task of helping attendees with a too often overlooked portion of application development – Help. The documentation of a system and its features is a very important and necessary evil. How many times have you been desperately searching the sparse help provided with an application only to find that the subject you are looking for has not been documented? The developers probably did what a lot of us do, made the help file an afterthought.

Rick’s session brought the attendees up to speed on how to create HTML help (.CHM) and how to integrate it with their Visual FoxPro applications. He also provided some information regarding Microsoft Help 2.0 which is the next generation help standard coming from Microsoft that developers will begin to use increasingly once Windows Vista ships.

Toni Feltman provided a session on Building N-Tier applications in Visual FoxPro. If you’re familiar with this type of object-oriented architecture then you know the value of it and how scalable and flexible it can be. I think many of the attendees of this year’s conference came away with a new appreciation of N-Tier design, due in no small part to Toni’s session and perhaps an earlier session that Andy gave on implementing data access layers. Toni gave attendees real world examples and provided them with a lot of useful information regarding the advantages and pitfalls of n-tier development.

Toni’s Travel Agency

Toni Feltman is one of those geeks who doesn’t look or act like a geek. She seems innocent and there is a manner about her that seems to fit more with being a travel agent who used to be a teacher. I couldn’t quite put my finger on it, travel agent/teacher is as close as I can get. But she is indeed 100% geek. If you had the privilege of attending one of Toni’s sessions or spent a few minutes talking with her, then you know she is right at home in a world of 1’s and 0’s. She knows object-oriented programming, framework design, and metadata like the back of her own hand, and I seriously doubt her ability to book me a trip to the Bahamas.

David Stevenson’s session on the CursorAdapter was many attendees first real exposure to it. The CursorAdapter remains one of the more mysterious classes provided in Visual FoxPro. While many developers have heard of it, I suspect that few actually know what it does and what the benefits and drawbacks are, and even fewer probably know how to use it effectively. David took attendees through an examination of the class, the basics of how to use it and then showed a number of ways to extend it. I saw a few different attendees trying some of the examples he had shown them on their laptops shortly after the session.

John Wayne meets Bill Gates

I had initial impressions of David after having worked with him on some articles for FoxTalk 2.0. In this case my impressions were built around mostly emails and a couple of telephone conversations. David is a tall (not as tall as me, but few are) slender man with silver hair and beard, and that coupled with his accent instantly made me think that he should be running a ranch somewhere, getting up early in the morning and telling the hired hands “We’re burning daylight fellas” and eating his meals depending on when someone rings a triangle that is hanging from his front porch. He also has this little grin on his face most of the time that gives you the distinct impression that he has been up to no good and that when you return to your motel room that evening you are likely to find it filled to the brim with packing peanuts. Here again, nothing could be further from the truth. You’ll find your motel room is just as the maids left it and that David Stevenson is pure geek.

Second block of sessions

Doug Hennig – “Cool Uses for Report Listeners”
Marcia Akins – “Modeling Hierarchies”
Tamar Granor – “Customizing the Property Sheet”
Rick Borup – “Integrating RSS with Visual FoxPro Applications”
Barbara Peisch – “Integrating XFRX into your VFP Applications”
Milind Lele – “Integrating Visual FoxPro data sources with Visual Studio 2005”

Barbara Peisch is one of the nicest people you will ever meet. This diminutive developer is one of the few people that have ever left the Tek-Tips forums that I really missed and wished would come back. I understand her reasons, but I still miss being able to read her excellent posts and interact with her online. So I was really glad to get an opportunity to meet her and talk with her. She’s sharp as a tack and very engaging. I also get the impression that she is very calm when faced with a crisis or under an immense amount of pressure.

I really liked the fact that she was giving her sessions on XFRX. I’ve used this product for years, and feel it is one of the best add-ons for Visual FoxPro’s reporting engine. If you want a wide selection of reporting outputs that reproduce the format very well and are very fast, then XFRX is the way to go. Especially when outputting Word and PDF formats, I just haven’t found an equal to this third party tool.

Rick Borup’s session on RSS gave me an excellent idea for the error reporting that I am putting into some of the applications I develop. His session was on RSS which is of more than a little interest to me (as some of you may know given my blog entries on the subject), but what caught my eye was the example he was using. He showed how to use RSS for an error log. Is that cool or what? Imagine opening up your news aggregator in the morning and being able to see if any of the applications you’ve developed have thrown an error, or being alerted during the day about it. An error message is information that is time sensitive and a perfect fit for RSS if you ask me. Great idea Rick, thanks.

A game of Golf with Rick Borup

OK, I know you are waiting for me to give you my read on Rick. I also hope you know that providing my impressions of these individuals is risky business. If they don’t like the things I’ve said, I am likely to be ganged up on at some point and find myself drinking my meals through a tube. But I like risk, so here goes… Rick reminds me of the president of a bank. He is very methodical, cool, calm and collected. However, when he smiles, it lights up his whole face. I mean it’s a smile that reaches his eyes, and you can’t help but smile back. Unlike Steven Black whom I’d like to play racquetball with, Rick is the kind of gentleman I’d like to play a round of golf with. I suspect that his applications have detailed specs and that he folded his socks when he packed for Southwest Fox. He’s just very methodical, soft spoken, and professional. My initial impressions of Rick were exactly the same as my impressions of him when the conference ended. He’s a good guy, probably a very astute business man, and I would suspect that his clients are with him for a very long time.

The County of Milind

Milind Lele is one of the newest additions to the MS Fox Team and while I didn’t get a chance to attend his session, I did get to speak to him on the bus on the way over to the speakers’ dinner today. He’s from India and, if I remember correctly, he has been in IT in some form or another for about 20 years. He has worked on a number of disparate projects over the years, but more than a few of them were security related. His answers to my questions were very straight forward and thorough. He struck me as a man that possessed a very high IQ and a great deal of humbleness. His ego is not nearly big enough that I would try to take over the world with him, but I would consider taking over a county or something with him.

Doug Hennig’s session showed attendees how to create reports with hyperlinks in them, create a report table of contents using Fabio Vazquez’s NavPaneListener, capture report information as the report is being rendered, create a live preview surface, and even create a searchable report. All of this and more is possible with the new reporting engine in Visual FoxPro 9.0 with its ReportListener class. I’m not sure whether you’ve seen the FoxCast that Doug did on the reporting engine (more specifically the ReportListener), but it is the single best video I’ve ever watched on the subject and taught me a great deal. Doug is a skilled VFP developer with a true penchant for extending Visual FoxPro and a kindred spirit in testing the limits of what’s possible. I am hoping that Doug will be one of the driving forces behind SednaX. Truth be told, he is probably more qualified to run that site than I am.

Tamar Granor gave a wonderful session on some of the new features available for the Visual FoxPro property sheet. Her session included a thorough examination of MemberData and some very nice examples. She also showed attendees how to create their own property editors. While Tamar summarized her session somewhat differently, I would say that it showed some great ways to extend Visual FoxPro, improve organization, and increase developer productivity.

Third block of sessions

Rick Strahl – “Accessing and sharing data with .NET Web Services”
Calvin Hsia – “Data centric .NET programming based on VFP technology”
Cathi Gero – “How to build ASP.NET Web-based UI for VFP Applications”
Craig Boyd – “VFP Painting 101: GDI+ Techniques and Examples”
Craig Berntson – “What’s new in SQL Server 2005”
F1 Technologies

During this session block I gave my session on GDI+ again. I got a little nervous at one point during the session, because I looked in the back of the room and there were at least 4 other MVPs attending it. All of them were shaking their heads at me with this displeased look on their faces and were giving me the thumbs down sign. OK, that never happened, but there were a number of MVPs at my session. I managed to get through most of the content that I had prepared for the session in the 75 minutes allotted, so that was a slight improvement on my previous go at it. I seemed to be getting the pace down and was taking a few pointers along the way from some of the other speakers.

Lunch Break

I’m not sure what the food is like at other conferences, but Bob Kocher was putting on a feast. At the back of the Arizona room there were tables set up near the vendor booths that had huge bowls of fresh fruit, platters of cold cuts, mounds of bread, and cookies, brownies, and rice crispy treats were heaped to the ceiling and that’s just for lunch. In the morning there are croissants, rolls, muffins, fruit, juice, and more. Whether you wanted to eat healthy or get as big as a house, this conference had something for you. There were also a number of beverages, such as water, pop, lemonade, and Starbuck’s coffee. The latter pleased me greatly, and I drank my usual allotment of five gallons of coffee a day while at the conference. I did still suffer some Red Bull withdrawals, but there was a store downstairs and if I hadn’t have been so lazy I probably could have found some.

Fourth block of sessions

Ken Levy – “Demo Buffet VFP, VS with VFP, VPC (Virtual PC tips), XML tools in VS, extending VFP”
Andy Kramek – “Accessing Remote Databases”
Marcia Akins – “Techniques for getting more out of grids”
Rick Schummer – “Using and Extending VFP’s Data Explorer”
David Stevenson – “Ten practical uses for the XML Adaptor”
Stonefield

Ken Levy came equipped with his usual stock of incredible demos, and provided a session for attendees to see them. The work that Ken has done over the years with XML and his passion for it is one of the things that sticks with me. The demos he shows have either been created by the MS Fox Team or a contractor that they have hired to create them. I’m not sure which ones were done by whom, but I know that Doug Hennig and Cathi Gero have both contributed. There are undoubtedly others, but those are the only two that I am privy to at the moment. Giving a demo successfully includes looking like you know what you are doing, being able to cover if something goes horribly wrong, incorporating a little humor, and being able to convince those watching that what you are showing them has value and/or potential, Ken does all of these things incredibly well and I would trust him with one of my demos anytime.

Fifth block of sessions

Steven Black – “FoxPro is dead! Now what do I say? The business case for developing a new application in FoxPro”
Cathy Pountney – “Advanced Reporting”
Rick Strahl – “Using Internet Explorer in your FoxPro applications”
Tamar Granor – “Creating Helpful User Interfaces”
Toni Feltman – “Common Sense Database Design”
Barbara Peisch – “Using the XFRX preview container”

Sixth block of sessions

Doug Hennig – “Extending VFP with VFP”
Andy Kramek – “Big VFP9 things come in small packages”
Marcia Akins – “Event Handling in VFP”
Cathi Gero – “How to work with data in .NET – Introduction to ADO.NET for VFP developers”
Rick Borup – “Roll your own Windows Installer setups”
Mind’s Eye/MoxieData

Speakers’ Dinner with the Mob

This report is running a little long, so I wanted to skip down here to the speakers’ dinner before my fingers run out of steam. Bob Kocher had a bus come pick up the speakers at the Twin Palms to take us all to a family Italian restaurant. By “family” I mean that it was obvious from the moment we entered the place, and were escorted through the kitchen to a room in the back where the dinner was to be held, that this place was mob owned and operated. Bob said hello to someone named Louie who looked like he could crush bowling balls with his bare hands and some other guy named Paulie nodded at Bob from behind a big plate of spaghetti, and Bob was greeted as Bob “The Sleeper” Kocher by enough people that I began to wonder whether Bob was the guy to call should you ever need someone whacked.

OK, I made most of that up, but there was a bus, a trip through a kitchen and a room with pictures of Frank Sinatra. The service was a little poor at first, but this place was huge and the staff seemed to be really busy, so I don’t fault them too much. Before long we had all kinds of different Italian appetizers and dishes to choose from and I was stuffed long before the main courses arrived.

Ken Levy’s Mother

I was sitting at a table with Marcia Akins, Bo Durban, Andy Kramek, Craig Berntson, and Cathy Pountney enjoying a wide range of conversational topics, including the some of SQL Server 2005’s features and the fact that Cathy had once owned a stolen car (inside joke – sorry) when Ken Levy called me over to the table he was sitting at and introduced me to his mother, Ann. I told her that it was an honor to meet her, which it sincerely was, and that she had many reasons to be proud of her son, which I am sure she is. There is a strong family resemblance, except she didn’t try to sell me a copy of Visual Studio 2005. She seemed like a very sweet woman, so I told her that she should expect a call from me the next time I need Ken to do something for me. If there is one thing that is true in this world, mothers know how to get their sons to behave. She is definitely our key to Visual FoxPro versions 10, 11, and 12, so let’s all start sending her flowers or something.

Ken Levy has an unexpected Birthday

It was shortly after this meeting that I saw some of the wait staff bring a candelabrum into another room, set it on one of the dining tables and start to sing Happy Birthday to some diner at the top of their lungs. I was so impressed with their performance that I decided that it was surely Ken Levy’s birthday today. I asked Randy Brown if it was indeed Ken Levy’s birthday, and Randy concurred. Now I’m not sure when Ken’s real birthday is, but for me it is October 15th. So I quietly slipped out of the room that we were all in and went to find the wait staff.

I got a few of them together and between my assurances and the assurances of a few dead presidents, they were finally convinced that it was indeed Ken’s birthday. I explained to them that the performance they had put on in the other room was really quite good, but that we would need a few more candelabrum and bravado for the upcoming performance. They were enthusiastic and more than willing to blow the lid off.

Ducking back inside, I waited near the back of the room for what was sure to be one of Ken’s fondest birthday memories, and moments later a entire group of wait staff and 3 candelabrums made their way into the room. “Where’s Ken?!”, shouted the first to enter. The speakers were more than happy to answer by pointing at the mark. Yes, Ken was offered up on a silver platter. The funniest part of this is that Ken’s mother was rather enjoying it and she said something to the effect of, “Oh Kenny”. So the birthday song was sung with everyone taking part and instead of Happy Birthday Ken, it was Happy Birthday Kenny! I laughed and laughed, and shot pictures for the Universal Thread the whole way. Ken vowed to get me, but was a very good sport about it and even shook my hand when it was over.

Good food, drink and conversation continued for the next hour or so before it was time to load back up on the bus and return to the Twin Palms motel. Jeff, one of the individuals that was with us and I believe works with Doug (I might not have this quite right), decided that he would make a quick rest stop on the way out of the restaurant while the rest of us boarded the bus and promptly left him. It wasn’t intentional and we did go back to get him after about six blocks when we noticed we were one person shy. Jeff, rather red-faced, was greeted to a round of applause when he finally got back on the bus.

Funniest man on earth

Back at the motel, festivities continued and I had a wonderful time standing out front of the motel with David Stevenson, Bo Durban, Fred Taylor and Rich Simpson. If you’ve never met Rich Simpson, he enjoys remote control model airplanes and is perhaps one of the funniest individuals on the planet. His comedic timing is perfect and his escapades cannot be topped. He is also a very accomplished developer in a number of languages, and the President of Mind’s Eye, Inc.

The Space Shuttle on wheels

I soon realized that it was getting late and that I needed to get back to my motel, so I could make the trek over to the Sheraton. I was sure the front desk was expecting me by now, so I asked Fred Taylor, who lives in Phoenix if he could give me a ride. He said he would be happy to and pulled up in his blue corvette moments later. Now, I’ve been in some fast cars in my day, but this was more like a rocket ship than a car and Fred’s right foot is 100% lead. So, before we were two blocks out, I was curled up in the fetal position in the passenger seat. When we arrived at my motel 30 seconds later (my motel is nearly 3 miles from the Twin Palms and Fred had to stop for a red light along the way), I got out and kissed the ground. The passenger seat looked like one of those memory foam beds because you could see the impression that I had left in it. The cries I had made for my mother while Fred drove me to the Red Roof Inn didn’t arrive until a full minute later. I thanked Fred for letting me out of the car and then cut through some parking lots, jumped a few bushes and before I knew it I was asked, “Will you be checking in or checking out sir?”

Sunday, October 16

Final Day

The final day's sessions didn't start until 9:00 AM so I actually managed to get 3 hours of sleep before the customary wake up call broke my slumber. I don't drink, but I am quite sure I was doing a very good impersonation of a drunk who had been on one bender too many as I staggered around in my motel room getting ready. It took a bit, but slowly the fog began to lift and it wasn't long before I was at the ASU, excited about the morning's sessions and a little sad that this was the last day of the Southwest Fox conference.

First block of sessions

Steven Black - "Application Metadata"
Andy Kramek - "Buffering Demystified"
Marcia Akins - "Modeling Hierarchies"
Tamar Granor - "Customizing the Property Sheet"
Rick Schummer - "Creating Help - Made Easy!"
Craig Berntson - "Coder to Developer"

Second block of sessions

Doug Hennig - "Cool Uses for Report Listeners"
Cathy Pountney - "Hidden Secrets of the VFP IDE"
Rick Strahl - "Accessing and sharing data with .NET Web services"
Craig Boyd - "VFP Cryptology 101: Encryption, Decryption and Hash Functions"
Toni Feltman - "Building N-Tier applications with Visual FoxPro"
Sofware News and Reviews

What Southwest Fox meant to me

Most of these sessions (if not all of them) were repeats of previous sessions the speakers had already given, and while all of them were excellent (I heard a couple of attendees rave about the Modeling Hierarchies session that Marcia gave) I'd like to spend the remaining keystrokes of my report talking about what the Southwest Fox conference meant to me. It may come as a surprise to some of you that I have never attended a Visual FoxPro conference before. I've never visited a user group, and up until a few years ago I did little more online than lurk. But slowly, after many years of developing in a number of different languages (VB, FP/VFP, VC++, Delphi, and even Java) not to mention platforms (MAC, Linux, and Windows) I began to find that I had an affinity for Visual FoxPro. There was something beautiful about it and the solutions that I could create with it. Unlike most other languages where I was forced to learn nearly everything by rote, with Visual FoxPro I had found a language that was intuitive and allowed me to create data centric applications better and faster than anything else on the planet. The problem was that there were these rumors and reports that the end was near because Microsoft had only purchased FoxPro in order to kill it. Either jump ship and hone your skills with Access or go down with a sinking ship like a fool they said. To be honest, I tried putting away FoxPro a number of times in those early years. I tried to resist the urge to create great solutions with it, to increase my chances of survival and not end up left behind. I really did. But, Visual FoxPro was too fast, too productive, and quite frankly too damn much fun. I just couldn't do it.

As the years wore on I was painfully aware that the end was certainly right around the corner when Visual FoxPro would be put on life support and I would be forced to do most of my future development in one of the other languages I knew. Each new release of Visual FoxPro was a welcome reprieve and I was thankful for the opportunity to be able to develop in a language that I love for yet another few years. I was convinced I was one of the few remaining hold outs, one of the only developers on earth that couldn't buy a clue, because if I had any sense at all I would do the right thing and stop creating solutions with Visual FoxPro for my customers and get out while we all still had a chance. I was wasting my time on something that was a dead end street I'd tell myself.

When Visual Studio 6.0 was released I was convinced that all of the fortune tellers were finally being proven correct and I had simply pressed my luck one version too many. A mass exodus was underway by VFP developers and applications alike to VB. The part of me that loves to create data centric solutions mourned deeply to see this superior product being pushed off a cliff like this. I consoled myself with the knowledge that I had been working in VB off and on since version 4.0 16-bit, so I would still have viable skills, but I knew that I was going to miss all of the things that Visual FoxPro was able to do and the way in which it did them.

Then Microsoft was coming out with VFP 7.0 and finally I began to question the veracity of all the sources that had been telling me for so many years that Visual FoxPro was coming to an end soon. I mean, how many times does something have to be wrong before I would wake up to the fact that Microsoft had no secret plans to kill Visual FoxPro? The chief reason Visual FoxPro was even in this poor state, was because developers like me were willing to let it go softly into that good night. I accepted its fate long before any fatal wound had been struck. I decided there and then that if there was something that could be done, some way that I could help fight for a tool that has supported me and all of the customers I helped create solutions for, then that is exactly what I was going to do. I didn't want to give up Visual FoxPro just because everyone seemed to be saying it was a fool's errand not to. I didn't want to see it decline any further than it already had thanks in no small part to developers like me that had just sat back waiting for the end or jumped ship the minute some whispered "VFP is Dead" in our ears. So started my own personal stand for VFP and the rest is history.

Now I know many of you who are reading this are wondering, what the heck does this have to do with the Southwest Fox conference? Everything. Bob Kocher started the Southwest Fox conference because other conferences had been cancelled or were dwindling away. Bob Kocher wasn't content to just let it all go up in a puff of smoke, because he knew he was going to miss it when it was gone. He knew that if he didn't stand up and make it happen, it probably wasn't going to. A couple years ago Bob Kocher had an idea, some twine and a bubblegum wrapper and this year he put on one of the best Visual FoxPro conferences the world has ever seen (don't take my word for it, ask the conference veterans that were there).

Bob Kocher and the Southwest Fox conference embodies the spirit of Visual FoxPro and the power of the Visual FoxPro Community. This year's attendees were from all over the globe, and they gathered in Tempe Arizona to celebrate and support the greatest development tool on the face of the planet. This year attendees, speakers, bloggers, podcasters, websites, authors and magazines weren't asking, what can Visual FoxPro do for me, they were asking what can we do for Visual FoxPro. This year the MS Fox Team wasn't saying, we are working on some of our ideas we'll tell you when it's ready, they're saying here's the direction that will help Visual FoxPro developers be successful for many years to come and we want to work with you to make this thing better and more powerful than ever. Sedna isn't the last gasp of a dying language that is only used by a few fuddy-duddies who couldn't code their way out of a paper bag, it is a breath of fresh air, a new beginning, a return to the close relationship between user and vendor, a set of goals set so high and so foreign to the concept of business as usual that I still marvel at it. Likewise, Southwest Fox wasn't just some conference where fewer attendees than the year before gathered to bemoan the state of Visual FoxPro and console each other with stories of what might have been, it was a power-packed, Visual FoxPro free-for-all where the potential and the future of this product was shining as bright as the Sun above Phoenix. And in case any of you were wondering, Bob Kocher isn't just a man, he's THE MAN for giving the Visual FoxPro Community a conference worthy of the product it supports.

Visual FoxPro is ALIVE and with all of us pulling as one we can make a significant difference. Get off your butt already, attend some user group meetings, buy a few Visual FoxPro books, get active out in the Visual FoxPro forums and other online resources, sign-up for SednaX, upgrade to Visual FoxPro 9.0, fly a plane over Microsoft, throw Visual FoxPro (or Ken Levy) a birthday party in December and definitely, definitely attend next year's Southwest Fox conference. Thanks to everyone that made this year's conference possible, that includes the attendees, the vendors, the speakers, Bob Kocher and his lovely wife Sharon, and most of all the Fox. This year has been a blast, I hope you enjoyed the coverage, and VISUAL FOXPRO ROCKS!

 
Craig Boyd, Sweetpotato Software 
Craig Boyd is the CEO of SweetPotato Software, Inc. (SPS). Having worked in every version of FoxPro since 2.5, he is an avid and experienced Visual FoxPro developer. He is also the creator and host of the popular SPS Weblog, which contains some great Visual FoxPro related content at www.sweetpotatosoftware.com/spsblog. Craig has developed a number of applications for US and International clients, and he specializes in helping other software companies meet challenging deadlines, solve complex problems, and upgrade their project interfaces. When he's not working on client projects, writing blog entries, or helping members of the Visual FoxPro Community out on the forums, he writes articles geared toward Visual FoxPro developers for IT magazines.



Copyright © 1993-2008, Level Extreme Inc., All Rights Reserved
62 Rue Doucet, Petit-Rocher, New Brunswick, E8J 1L3
Telephone: 1-506-783-9007 Email: mfournier@levelextreme.com