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