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.

Friday, September 29, 2006

Newest Stonefield Members

I'm pleased to announce the birth of Gavin Lee Zinnert, first child of Jeff and Amanda Zinnert, born last night at 11:18 pm. The baby was a healthy 6 lb. 7 oz. and 20". Jeff is a National Account Manager for Stonefield Software and has worked for us for a couple of years. You may have met him at DevCon, Southwest Fox, or German DevCon.

Also, technical support guru Tonia Batten has left us (her husband got a job in another city). We're sad to see Tonia go; her professionalism and keen attention to detail will be missed. However, I'm happy to announce the addition of two new members to our technical support team: Trevor Mansuy and Chris Wolf. Both have quickly come up to speed on Stonefield Query and Trevor has already taken over webinars. Because he is the third Chris and the second Wolf at Stonefield, which is interesting for a company of 18 people (we also have two unrelated Andersons and, including spouses, two Peggys), Chris Wolf has agreed to change his name to Quentin Tarantino, whom he vaguely resembles.

FoxTalk Rips Off Itself

I got another mailing from FoxTalk yesterday. Thinking it was their weekly load of spam mail soliciting a subscription, I almost didn't open it, but it was in a bigger envelope, so I decided to chance it. Of course, inside was the usual subscription offer, but it also included the September 2006 issue of FoxTalk. There on the front cover was an article by me titled "Generate Web Page Components in VFP". I immediately saw red, not just because that's the magazine's theme color. I wrote that article a couple of years ago and it was published in the May 2004 issue. Essentially, editor Jonathan Rabson repackaged it to fit their new, goofy editorial guidelines (and introduced a typo -- my Web site is www.stonefieldquery.com, not stonefieldquire.com) and published it again. So now, in addition to the fact that most articles have nothing to do with VFP and are written by folks who aren't VFP developers at all let alone experts and that the Kit Box column is a shadow of the excellence written by Andy and Marcia each month, we have to put up with recycled articles!

It is truly sad to see the incredibly fast decline in a once great magazine (and as a charter subscriber who still has the very first issue, I thought it was great long before I started writing for it).

Tuesday, September 19, 2006

Sightseeing in Prague

On Wednesday, Craig, Alan, Uwe, Venelina, Igor, and I took the train to Karlstejn, a picturesque little town about 40 km south of Prague with a castle high up overlooking the town. It was a bit of a hike up to the castle, but well worth it. We took a guided tour of the castle, including a chapel that included many rare paintings.

Here's the castle from the town:

Here's a view of one of the turrets from another part of the castle:

We took the train back to Prague and had a great dinner hosted by Gaby and Hans Lochmann at the TV Tower. The TV Tower is a Communist-era structure with a restaurant at an observation deck. It recently was decorated with what I think look like naked alien babies. Here's a close-up:

Craig and I spent Thursday and Friday sightseeing in Prague. I must say I'm very impressed. Prague is a lovely city: very tourist-friendly, the people are nice, the majority of the historical buildings are within walking distance of each other, and it's inexpensive (Igor, Craig, and I had a fabulous dinner Thursday night which cost, including beer, about $8 per person). It felt like we walked at least 20 or 30 km each day. We saw a lot of beautiful Gothic churches and climbed five towers: the clock tower at Old City Hall, a scaled-down version of the Eiffel Tower, the Powder Tower, and the towers of both St. Nicholas church (the one in New Town; there are two churches named St. Nicholas in Prague) and St. Vitus Cathedral (at the Prague Castle). Here's the Old City Hall (the observation deck is above the clock):

Here's the Powder Tower (the observation deck is just below the steeple):

Here's the Eiffel Tower clone:

As you can tell from these pictures, we spent as much time going vertical as we did horizontal.

Here's the beautiful Municipal Hall, used for concerts:

We met up with Igor late Thursday afternoon and went bar hopping to try out the various local brew. Craig doesn't drink beer (or a lot of anything else), so Igor and I felt challenged to corrupt him. He finally agreed to drink one beer, and here's the result:

Igor led us to Two Cats, where I had a great traditional Czech dinner of roast pork stuffed with cabbage, bread dumplings, red cabbage, and more beer.

After sightseeing Friday, Craig and I were both wiped out, plus I had to get up at 4 am for my flight home, so we ate at the Bavaria Restaurant at our hotel, and once again had a fabulous meal (peppercorn steak in my case, cooked perfectly).

What a great trip! Thanks to Igor for inviting me to speak and being a wonderful host.

Thursday, September 14, 2006

Prague DevCon, Day 2

I decided to skip Craig's COM+ sessions: I'd seen him present this topic before, he has excellent session notes, and I wanted to practice the two sessions I was doing that afternoon one last time. After doing so, and catching up on some email, I attended Alan's Introduction to LINQ session. LINQ is a lot further along that when I last looked at it, and it's very cool. I especially like the way you can query against anything IEnumerable, including arrays and collections, and that you can call functions and do just about anything in the query itself, just like you can with VFP.

After lunch (submarine sandwiches again), I presented my Mining for Gold in XSource session. In this session, I show how to reuse some of the components that come with VFP, such as a progress bar, object-oriented shortcut menu, and even a powerful but easy-to-use builder framework. I saw a lot of smiles when I showed how to create a useful builder in less than five minutes.

My second session, Cool Uses for ReportListeners, followed a short break. This is a fun session to present, because I show how to hyperlink reports, useful for things like drilldown reports, how to create a report preview window with a "live" surface (one that supports click and other events), and doing text search within a preview window. I got a lot more feedback from these two sessions than I did yesterday's, so hopefully they went over well with the audience.

That evening, the speakers took a bus, the metro, and a tram to a restaurant in downtown Prague (the TOP Hotel, where the conference is located, is quite a ways out of central Prague) owned by Derek, who is the majority owner in the company Igor works for. It's a brand-new restaurant (only open for two weeks) and is very nice. The restaurant was closed to the public for the night, so Derek, his son Adam, Liz, and the other staff devoted their time to just us. Figuring we were a group of geeks, Derek prepared a flowchart of the evening, including what would be served at each course and the drinks we were expected to consume. The food was fabulous -- I especially liked the toast with pieces of garlic you rub on them, as everyone who watched me pound back about 10 of them can attest. Of course, I wasn't the only one enjoying the food; Alan had several helpings of the thinly-sliced roast beef, including one after dessert! Adam, who's only 13 and had school the next day, was a waiter extraordinare. He was incredibly funny and a talented singer (he favored us with a couple of songs, including dancing). We left the restaurant after midnight and must have been a little noisy while waiting for our cabs, because someone dumped a bucket of what I hope was water from an upstairs window (fortunately, they just missed us).

Prague DevCon was a great conference. The sessions were top-notch, the food excellent, the conference staff wonderful, and Igor was an extremely gracious host. I can't wait until next year's conference!