Thursday, October 26, 2006

Southwest Fox 2006, Part 3

I started the last day of the conference by repeating my IntelliSense session, then went to hear Rick Schummer present Fishing with a ProjectHook. Although I've worked with ProjectHooks since VFP 6, Rick showed some really cool uses for them, so I picked up several tips from his session.

The conference wound up with several drawing for prizes and a farewell to everyone. About 20 of us went for lunch in the hotel. I ate too much pizza, so I went to the exercise room to wear some of it off, then had a short nap and watched the Oakland Raiders and Arizona Cardinals (actually, it was the other way around; the game was kind of dull so I nodded off). After a few drinks in the hotel bar with a good sized group of VFPers, Tamar Granor, Craig Berntson, Rob Eisler, and I went to the ASU area for some very tasty Greek food.

Rob and I stayed an extra day to see the Grand Canyon, which neither of us had seen before. Joining us on the tour was Tore Bleken from Norway, who'd been there three times before. This time, he took a helicopter tour in addition to the regular tour and said it was well worth it. Rob and I spent an hour hiking along the South Rim, then did some shopping. It was a long day (they picked us up at 6:30 am and dropped us off at 8:00 pm), over 500 miles of travel, but well worth it -- I definitely want to go back to do some hiking and white water rafting. Tore and I had a very nice dinner at the hotel restaurant (Rob wasn't hungry after a stop at Burger King on the return trip, which I passed on).

Final impressions: what a great conference! The topics were different from the usual fare, especially Christof's sessions, and I made tons of notes of ideas to implement. The speakers all did a great job, and I can't wait until next year's conference.

Southwest Fox 2006, Part 2

I started Saturday morning with Bo Durban's Using GDI+ with VFP session, which focused on the amazing VFPX GDI+ project he and Craig Boyd have been working on. He showed how easy it is to use GDI+ to do any type of drawing on any type of Windows canvas (window, report, printer, etc.), including rectangles, ellipses, pie slices, polygons, and paths of any shape. Very cool session!

Next I presented my Adding IntelliSense to Your Application session. As I blogged about when I presented this in Prague, it's kind of an esoteric topic, since not everyone needs to provide IntelliSense to their users. However, I was pleasantly surprised at how much feedback I got on this session, and how much interest there was in my Favorites for IntelliSense class, which gives you control over how IntelliSense works and what it displays for a particular class.

I missed the next session as I caught up on email and chatted with other developers. However, I'm sorry I missed Mike Feltman's Where Do You Want To Go Today session, which I had originally planned to see; from the comments of those who attended, it was a great session.

After lunch (make your own sandwiches from a buffet), I attended Nancy Folsom's session From Procedure Toward Component. This was a refactoring session similar to the one she did at GLGDW. I really liked the way she presented it, showing one step of a refactoring at a time and going over the code changes at each step. This approach made a somewhat abstract topic very concrete.

The last session of the day was Toni Feltman presenting Using Version Control with VFP. She started the session with a clarification: yes, she is pregnant, not just getting bigger. She then proceeded to show the basics of Visual SourceSafe 6.0, an outdated version she chose on purpose because it's one that many VFP developers already have (it came with Visual Studio 6, as did VFP 6). She showed how it integrates with VFP and discussed the pros and cons of integration. Finally, she showed Visual SourceSafe 2005 and discussed the features of several other popular source control packages.

After a break, we had a speaker and vendor dinner at the conference center. Craig Berntson and Cathy Pountney showed us all up by dressing up (they looked like they were going to a prom). Cathy admitted she'd never seen Monty Python, so Craig tried to convince her by acting out several skits, but was unsuccessful (not surprising if you were there to watch!).

Sunday, October 22, 2006

Southwest Fox 2006, Part 1

After a very early start (5:30 am flight), I arrived here in Phoenix mid-afternoon for the Southwest Fox 2006 conference. Several people told me that Rick Schummer and Craig Boyd were panicking because I hadn't shown up yet, and we were due to deliver the keynote at 7 pm, and hadn't really gone through our presentation yet. Fortunately, we got together about 6:30 and briefly went over what we were planning to show, then spent the rest of the time setting up and fighting with the projector.

I think the keynote went well. Craig started off with a funny story about a hair-raising drive through the canyons of Phoenix (which somehow I've never seen) with me at the wheel. We then showed a Fox Software video from about 1990 showing the then newest version, FoxPro 1.0. Moving on to the recently released CTP of SP2 and Sedna, Craig showed some of the cool reporting enhancements in SP2, I showed My and the new Upsizing Wizard, Rick showed the Data Explorer enhancements he's been working on and discussed NET4COM, and Craig showed some of the things he's created in the Vista Toolkit. We had planned to show some demos of VFPX projects, but since I promised attendees that "shorter keynote = earlier beer", we figured we'd better wind up. However, Ken Levy then got up and announced that I was awarded the 2006 FoxPro Community Lifetime Achievement Award. I was completely surprised and blown away by this!

Friday morning, I had a tough decision to make: attend Rick Borup's Automating the Build session or Christof Wollenhaupt's Security Cookbook session. I knew Rick always creates great white papers, so I decided to see Christof's session because I knew it would be pretty important. Actually, like most of the other attendees, it scared the crap out of me. Christof showed how easy it is to extract the source code from a VFP EXE, even one that had been locked down with Refox. He discussed some of the ways hackers can get access to applications and discussed ways to secure an application. I took about a page of notes from that session!

Next, I presented Installing Applications with Inno Setup. I've been using Inno Setup for several years now and love it. One of the early slides was titled "Why I Hate Windows Installer". Some of the reasons I gave are the large file sizes, incredibly slow performance, problems with installation of ActiveX controls, proprietary database, and the fact that sometimes Windows Installer seems to have a mind of its own when it comes to deciding what files to install. I showed how fast Inno loads, how easy it is to create an Inno setup script (which is just a text file), and the flexibility it gives you in configuring the setup executable. I also showed how you can change the appearance and behavior of the setup using scripting.

I then attended Craig Berntson's Agile Software Development. This session was a nice introduction to the topic, covering things like the principles of agile development, why agile vs. traditional development methods, different types of agile, such as Scrum, and some books worth reading on the topic.

After lunch, I repeated my Inno Setup session, then attended Christof's Crashing VFP and Preventing Crashes session. Once again, Christof showed us internals of VFP that most people aren't aware of. For example, he created a trigger on a table and in the trigger code, did a SUSPEND. This left VFP in data session 0, the so-called "system" data session, and he showed the types of things that appear in that data session. He also showed the types of things that cause VFP to crash, such as dangling object references caused by not nulling references to one object stored in another when the second object is destroyed, and how to avoid those types of problems.

I finished the day with Bo Durban's Creating Custom Report Controls. Bo showed the basics of ReportListeners, then moved on to show some cool uses, including displaying negative numbers with parentheses so the decimals line up and there aren't extra spaces. He then spent time going over new features in SP2, including how easy it is to add you own pages to the Properties dialogs in the Report Builder. I took a lot of notes in this session!

After a few minutes to freshen up, 17 of us went to the F1 Race Factory for some karts racing (other folks went to a local casino). There had been some trash talking before the race, such as Steve Hanlon stating that because he drove a Mini Cooper that he was a force to be reckoned with, Craig challenging Cathy Pountney, who's been around cars and racing her whole life, and even me, who came in third at kart racing in Germany last year behind only Rick Strahl and Jeff Zinnert, neither of whom were here. The race was a blast, but at 10 minutes not nearly long enough. The winner isn't decided by who finishes first but by the fastest lap time, and Cathy was the winner over Rick Schummer by 0.03 seconds. I came in third, largely because I spun out a couple of times while driving a little more aggressively than I should have. This was definitely the most fun activity you can have at a conference!

Wednesday, October 18, 2006

Off to Southwest Fox

I'm headed to Phoenix tomorrow for the third annual Southwest Fox conference. If previous years are any indication, this will be a great conference. All the sessions sound really interesting, but the ones I'm most looking forward to seeing are:

  • Automating the Build by Rick Borup: Rick's sessions are always very detailed and thought-provoking, and this one sounds like a dandy.

  • Creating Custom Report Controls and Customizing the Report Designer by Bo Durban: long title not withstanding :), I haven't heard Bo speak before and this is a topic near and dear to my heart.

  • The Security Cookbook and Crashing VFP and Preventing Crashes by Christof Wollenhaupt: I've known Christof a long time but haven't heard him speak before, and given that his knowledge of the internals of VFP is probably deeper than anyone outside Microsoft, these are must-see sessions.

  • From Procedure to Component by Nancy Folsom: Nancy's session on refactoring at GLGDW earlier this year (which I believe she's also doing a version of here) was great, and this one sounds like it'll be very interesting as well.

Sunday, October 15, 2006

The World's Oldest Rock Band

Last week, my wife Peggy, business partner Mickey Kupchyk, his wife Sharon, and I went to see the Rolling Stones. Yes, the Rolling Stones came to Regina. In case you're not familiar with where I live, it's a city of under 200,000 in a province with a population under 1 million. (Also, as Mick Jagger himself stated near the beginning of the concert, Regina is a city that rhymes with fun.) So, how did a venue that small rate the Stones? Well, it turns out the promoter decided to hit a number of smaller sites on this tour, including Montana, which is similar in population. However, the response was anything but small; the concert sold out all 45,000 seats (it's in our CFL football stadium) in 17 minutes! So, they added a second show, the only city on the tour to have one, and it sold out in an hour. As a result, Regina outsold New York City for Stones tickets.

By sheer dumb luck, we managed to score second row, center-stage tickets for less than a third of the going price. We arrived at the stadium just as the warm-up band started, and discovered that the line to get in was at least half a kilometer long. Forty-five minutes later, we found our seats and laughingly figured they were almost too close to the stage: since it was about six feet high, we'd have to stand to see the whole stage. No biggie, of course, since I figured we wouldn't be sitting during the concert any way.

While we waited for the concert to start, we overheard the conversations of Rolling Stones nerds. (Until that night, I couldn't imagine putting "Rolling Stones" and "nerds" in the same sentence). One guy said this was his 24th concert on this tour, and 119th altogether. The couple beside him were from Norway, and they've seen the Stones hundreds of times in at least 30 countries. Someone claimed the Stones were his whole live, much more important to him that his family and friends. And here we were, Stones virgins!

Then the lights went down and out they came. Wow, this close up, you can really see the wrinkles! They started with Jumping Jack Flash, one of my favorites, and it just got better from there. In addition to the four usual members (Mick, Keith, Ron, and Charlie, if I can be so presumptuous to use their first names), they had a horn section for some songs, a great bassist (replacing Bill Wyman, who retired several years ago), keyboardist, another guitarist, and several singers.

The concert was amazing. They played all my favorites, including Honky Tonk Women and Brown Sugar, and Peggy's favorite, You Can't Always Get What You Want. Mick has an incredible amount of energy, bouncing and running all over the stage, which is doubly amazing considering he's 63. Keith looked as zoned-out at times as I expected, and often had his trademark cigarette hanging from his lips. At one point, the center of the stage, which was situated in the south end zone of the stadium, broken away and moved 55 yards to the middle of the field. Of course, that meant we had pretty much no view of them for a couple of songs, but those people in the north end zone sure appreciated it.

After more than two hours, they finally left the stage amidst shooting flames and a lot of fireworks. It was easily the best concert I've been to, and I've been to a lot. If you ever get a chance to see the Stones live, don't pass it up!

Monday, October 02, 2006

MVP Renewed

Thank you Microsoft for renewing my MVP status for another year. I've been an MVP since 1996 and feel honored every time I'm renewed.