Christof Is A Freaking Genius

A cool part of the Southwest Fox conference last year was a couple of bonus sessions called Show Us Your App, where several FoxPro developers were given an opportunity to spend 5 to 10 minutes showing off things they’ve worked on.

I showed one of my apps, and focused primarily on how easy it was to add multi-threading capabilities to the app.

Easy, because Christof Wollenhaupt made it easy.

He answered a question in FoxPro Advisor (back when it was an actual magazine) about multi-threading in Visual FoxPro. In his answer, he talked about a DLL he had written which basically allows you to run code in a separate thread. That’s an understatement – one day I’ll write an actual article about my experience and expand on it a bit.

The app I showed uses the IE Web Browser control as it’s primary UI. There are a ton of hyperlinks on certain pages. You click a link and it fires off an HTTP request to collect information and save the collected info into a table.

Since I just love to control how the user uses the app, I displayed a modal window while this request was taking place.

After reading Christof’s piece in Advisor, I decided to use his DLL and make the requests multi-threaded. Now when you click a link, the HTTP request is fired (on a separate thread) and control is immediately returned back to the app. You can click another link while the first one is processing. And another, and another, and another. S-w-e-e-t!

Anyway, during my Show Us Your App bit I mentioned for anyone in the audience that didn’t already know: “Christof is a freaking GENIUS!” (I suspect everyone in the room already knew that). I joked that I was planning to ask my boss to rename the app “Christof Is A Freaking Genius” in honor of the positive effect his work had on my work.

Christof returns to Southwest Fox this year with a pre-conference session titled TLAs put into Practice: Object Oriented Principles in VFP, and a regular conference session titled How the Fox is Different.

He has presented at several Southwest Fox conferences. Last year, he presented Excelporting and Using .NET in FoxPro Applications. Back in 2007, he presented the still-talked-about On the Dark Side of FoxPro.

He is also the creator of Guineu (an alternative runtime library for Microsoft Visual FoxPro 9.0 that runs on any Microsoft .NET compatible platform).

Have a look at his website whitepapersdownloads, and Knowlbits. If you’ve ever wanted to learn more about Visual FoxPro (especially the internals of FoxPro), and you’ve read anything Christof has written, I’m sure you will agree that Christof is a freaking Genius.

He’s also a very friendly and helpful person. Definitely a highlight of attending last year’s conference was the opportunity I had to meet and talk with him.

Poor guy. I followed him around the conference like a puppy dog, making statements and asking questions that I’m sure made me sound like the hack programmer I am. He was friendly, patient, and extremely helpful. I’ll always be grateful for the time I got to spend with him.

I’m looking forward to seeing him again this October.

And Now You Can Run The App From The Command Window

Update: Links point to the archived versions of the Southwest Fox conference (depending on the year). Click here to visit the current Southwest Fox web site.

What the heck does the title of this post mean?

If you were at Tamar Granor’s Getting Your Head Around Business Objects session at last year’s Southwest Fox conference, you’d know exactly what it means.

If you weren’t at last years conference, Tamar is another reason why you should go this year.

Tamar’s session focused on business objects. She started with explanations of what business objects are, and delved a bit into the history of business objects in Visual FoxPro (think frameworks).

She showed how she used business objects in a real-world application, and followed that with a Sudoku game, built with Visual FoxPro.

We got a brief glance at the UI for the Sudoku game, then Tamar walked us through the classes (object hierarchy) she had built. One of the most interesting parts for me was how she had used collection classes for business objects.

I really wanted to learn more about that, and I must be one of the luckiest people in the world: she’s presenting Collections: Managing Information the Object-Oriented Way at this years conference.

Most of the session was dedicated to building the “engine” for the application, using business objects. After she was done showing the classes, object hierarchy and how she linked the classes together, she said something that really kicked me in the gut – a real “A-HA!” moment for me:

“And now, you can run the app from the Command Window.”

If they gave awards for best quote of the conference, that quote would have won hands-down.

And she was right. The entire game could have been played from the Visual FoxPro Command Window, with no UI. The rest of the session was spent showing us how to connect the business objects (the engine) with the user interface.

I was stunned at the amount I had learned in 75-minutes. Even better, Tamar wrote a detailed 42-page whitepaper and provided the source code for the Sudoku game which she used as the example for the session.

Going to a session by Tamar is like going to a class lecture that you want  to attend. She is professional, informative and entertaining all at once. Which to me is a great combination of skills, and exactly what I look for when I’m selecting sessions to attend.

Early-bird registration ends September 1st. If you haven’t registered for this years conference, stop reading my drivel and go. register. now.

Two Great Reasons To Attend Southwest Fox This Year

Update: Links point to archived versions of the Southwest Fox Conference site. Click here to visit the current Southwest Fox Conference web site.

This past Tuesday, I had an opportunity to go to Atlanta for the AFUG (Atlanta FoxPro Users Group) meeting. Bo Durban and Steve Ellenoff were each doing a “practice run” on one of their Southwest Fox sessions.

First up, Bo presented Extending VFP using the Web Browser Control. I was really looking forward to this session, because I’ve used the web browser control extensively in several applications and I’m always looking for ways to improve. I’ve read THE BOOK on the subject, every article I could get my hands on, and attended Mike Feltman’s sessions at last years conference (the tips and tricks I learned from Mike’s sessions and whitepapers last year practically PAID for my entire conference trip).

Going in, I asked myself, “How much I could possibly learn from Bo’s session, that I don’t already know?”

I got an answer to that question real fast: at least four things I had no idea about in the first 10 minutes. During Bo’s session, my mind was spinning with new ways of approaching the web browser control in my apps. I couldn’t wait to get home so I could start working on them. Some of them I’ve already tried, and the speed increase on displaying HTML in my app is incredible.

And this means Bo’s session alone is worth the cost of the conference to me.

Next up was Steve Ellenoff, presenting Creating Database Abstraction Classes in VFP: Switch your Back-End with Ease. Attendees from last years conference may remember Steve’s 52-page whitepaper from his “Simulated Multithreading” session last year, and if I had to take a guess I’d say his whitepaper for this session will likely dwarf last years.

Steve showed how to switch the back-end data source for your Visual FoxPro app on-the-fly, with minimal code.

Minimal, because he’s created classes which handle the complexities of working with different back-end data servers (including VFP data tables and database containers, MySQL, Microsoft SQL Server, and PostGreSQL).

In short, Steve’s done a ton of work that I have avoided like the plague.

To me, his comparisons between VFP and other back-end data servers are worth the price of admission alone. The source code for the classes you’ll get with the session will certainly come in handy.

I’ve seen Steve present several sessions in the past, and I’ve got to say he has improved with every session I’ve seen. He was top-notch Tuesday night and well prepared.

I really enjoyed my time in Atlanta, so much so I sent in a membership application this morning. The sessions Bo and Steve presented really have me stoked for the great content at Southwest Fox this year.

I’m counting the days until October 14th (63 days, in case you’re wondering).

Not registered yet? Register before September 1, 2010 for a $50 early-bird discount.