Archive for November, 2006


Just in case I am not the last person on the planet…

I just ran across Christof Wollenhaupt’s Knowlbits blog. He as been blogging since April and I had no idea I was missing out on it. Brilliant entries each and every time. Subscribed – and would do it twice if I could.

How can stuff like this happen??


I was just reading an article about NASA’s concerns with a year-end software glitch. Apparently the shuttle computers are not designed to make a change from December 31st to January 1st. We are long past the year 2000 problem, so I am wondering why something like this still exists. I know the original computers in the Shuttle were based on 1970′s technology with extremely low amounts of memory, but were recently upgraded. I have to believe this is one of those situations where the software team decided not to make changes under the rule of “if it ain’t broke, don’t fix it.”

The real scary thing about this is the astronauts are not sure what would happen. I know the code that runs the shuttle fleet is probably the most tested and most reviewed code that exists on the planet. You would think the software team would know the ramifications or could easily set up a test to simulate the scenario. Heck, we all did this with Y2K testing.

The good news is NASA is flying again in December with the space shuttle Discovery. It was moved out to the launch pad earlier this month, and should be launched between December 7th and 17th with a 12 day mission to install the P5 Truss and the Spacehab module at the International Space Station. It will also be the first night launch since the Columbia accident. Night launches are always spectacular to watch.


I installed FeedDemon v2.1 over the weekend (glad to be out of the no-installs conference season {g}) and can tell you my favorite new feature is the way it highlights words in Watches.

If you are using FeedDemon and are using feed watches you probably already like how you can set up a watch to check incoming feeds to look for keywords. For instance, I have a watch to check for the titles of the books I have co-authored so I can see when someone mentions it in a blog or posts a message with it on the F1 Technologies forum,, the MSDN VFP Forum, VFPx site, or the West-Wind Message Board (all RSS enabled sites). I have a half dozen Watches set up to alert me of different things.

In previous versions of FeedDemon I would have to search for the keyword(s) that triggered the feed post, but now Nick Bradbury is highlighting the word in yellow so I can instantly see it! This feature has been in other products like Copernic 2001 (global Web searching product) and in Adobe Acrobat for years, so having it here in FeedDemon is not exactly ground breaking, but it is another real time saver for me.

I also like how the newspaper views only show the new postings. This initially may not sound like a big deal, but it sure saves on time downloading images from the site. I get my daily dose of Dilbert via RSS and now the only images downloaded are the new strips I have not read.

Thanks Nick for this great product and the slew of new features you added in the latest update.


The actual flight back from Germany on Monday was easy, but getting acclimated to reality has been very challenging. This year the jetlag on the return home was almost non-existent, but I have been battling hardware issues, but fortunately this time I have experts helping me.

Tuesday and Wednesday I had a new server installed and setup by experts. I have been working on this for the last three months and really looking forward to getting the 80-some pound box installed. I built a special closet in the basement to host the machine which is serving as a file server, database server (SQL Server 2000 initially), Web server (IIS to host SharePoint and a wiki), source control server (VSS with SourceOffSite), and firewall (ISA). As you know, I really hate hardware and there is nothing worse than hardware with networking in my book. With this in mind hired experts. Under their recommendation I purchased a Dell PowerEdge 1800 with dual 3.2 ghz processors, 4GB of RAM, and 600GB drives using RAID 5. It is a lot of power for one geek, but I am preparing to grow White Light Computing in the future so I wanted enough horsepower in the shed when the time comes to add staff or more subcontractors.

The install went pretty smooth and everything is up and running thanks to Ted who stepped Windows Small Business Server 2003 through the various setup wizards. I knew the most difficult part for me is having my machine join a domain. The process of joining a domain is easy, but getting all the software use to running under a new login account is a PAIN IN THE NECK! Sorry for yelling. I have done this once before and it was too time consuming. At least this time I knew what I was in for, but it did not make the “experience” any more fun.

I still have not recovered everything. It took a lot of time just to get Outlook configured the way I like it. Why does Outlook keep its settings in so many different mostly hidden places? Why doesn’t it store the configuration in the PST file, or make it simple to migrate the settings? I am not talking about just the email accounts (why I cannot export these is beyond me). I am referring to the favorites folders, the junk mail settings, the save senders list, the million choices on the options dialog, and the toolbar settings. The horror. I really like Outlook because it makes me more productive, but over the last couple of days it was killing my productivity.

I figure it will be weeks before everything is discovered and fixed. The shame of this is I have to go through it all again with a new laptop over Thanksgiving weekend.


The “conference exhaustion”, compounded by the still lingering jet lag is definitely taking its toll on the brain. The good news is today is the last day of the conference, the bad news is today is the last day of the conference. I believe this is a typical conflict for conference attendees, and is definitely the case for me.

First session was The Power of CursorAdapters by Venelina Jordanova. I honestly have not played with CursorAdapters very much because the Visual FoxExpress framework I use for most of my applications does not really include them in the design. I like the concept in theory, but wanted to learn more about them. Venelina took us through the fundamentals, explained how they are an object to access day from a variety of sources, detailed property and methods, and demonstrated the CursorAdapter Builder. She then showed us some of the conflict resolution and how to address potential pitfalls with this object. Unfortunately I had to leave a bit early to prepare for my session and missed the section on Error Handling, but I see her notes are very good.

I presented the Using and Extending the VFP Data Explorer session next. I thought the session was going well until I realized I miscalculated the amount of time remaining by 10 minutes. I spent more time on the drag and drop section of the presentation than I normally do because I thought I had too much time remaining and was trying to balance things out. By time I realized the mistake it was too late to rebalance and unfortunately had to rush the last couple sections of the session. Definitely not my best work and hopefully those in attendance take a look at the white paper to get the “rest of the story”.

The next three sessions I attended were foreign language sessions.

The last session before lunch was Christof Wollenhaupf’s session called JavaScript for the VFP-Entwickler. I knew Christof would be speaking fast German and I was right. Fortunately he went through a lot of code examples (normal for his sessions) and I know how to read JavaScript. I actually learned a lot from his excellent examples. I think it is cool how you can add methods to an object in code. He also showed a real cool developer tool bar add-in for Internet Explorer. I have one for FoxFire, but this tool from Microsoft has a neat ruler tool. First you click on the beginning point, then move the mouse and watch the ruler show up. This ruler is not just horizontal. It goes vertical and diagonal as well. It shows the pixel count so you can line things up and measure where you might want to place other text or objects on a Web page. Great session that surpassed my expectations.

Marcus Alt from Microsoft showed us “Data Dude” in his session called Database, Deploy, Test mit Visual Studio Team System. There were only four of us in this session, and I was the only English speaking person in the room, yet Marcus was kind enough to translate when he addressed something complex. “Data Dude” is the code name for Visual Studio Team Edition for Database Professionals. It is a product used with Visual Studio .NET to interact with SQL Server. When I talk about interaction I am talking about working with database design, creatingand maintaining tables, views, stored procs, and the usual Enterprise Manager like tasks. But “Data Dude” is much more. It is a package that helps you create test data, create test scenarios and run the tests, and take schema changes from your design database to a test and/or production database. This indeed looks like a cool product, but also sounds expensive and so far it is one demo. It does what developers currently are using two or three tools to accomplish. Still, it is not even a v1.0 product yet (although it is expected later this month). This product has already gone through seven CTPs. I was able to follow Marcus’ session quite easily based on the demos and technical buzzwords he was using as he was talking. He even handled the answers to my questions in English. Class guy, and super session.

The last regular presentation of the conference I attended is Beth Massi’s Introduction to LINQ. I mentioned the rest of my sessions were foreign language sessions: well .NET is a foreign language to me {g}. I last saw LINQ in its infancy more than a year ago during the MVP Summit in September 2005. It seems much improved, even though Beth was demonstrating from the May 2006 CTP (which is the most current). Beth showed us numerous examples of how LINQ works with objects, SQL Server, and XML. This is not all at once, this is running LINQ queries (via a syntax that is SQL-Select like) and getting back an object with the data. Interesting prospect and interesting approach, and definitely a little foreign to those of us use to working with cursors. It is way different than working with ADO and seems to require less code. I believe this has a way to go, but it definitely is coming from Microsoft. The Fox Team is highly involved in this effort. One language, one approach to querying different types of data. I asked some serious question about this technology. The first is: are there any bleeding edge .NET developers wrapping the LINQ technology into business objects? Beth is not aware of any at this time as the technology is too new and is still developing. The other question was: does she see VFP developers using .NET interop to using LINQ based objects? I personally don’t see developers using this for the SQL Server data access as we already have techniques, but I can see us working with XML a little easier in the future and possibly integrating with other .NET solutions. Beth was very good.

Rainer closed out the conference with a 75 minute closing session filled with humor, prize giveaways, and a peek into the future. He has already scheduled this conference for next year and is very hopeful for surprises from Microsoft with respect to VFP and future versions of VFP.

The speaker dinner was fun. The food was exotic. The discussions left me in tears and pulled muscles in my abdomen from all the laughter. I ate with Alan Griver, Beth Massi, Doug Hennig, Craig Berntson, and Jeff Zinnert. We had a great time. We finished up about 12:30ish and then headed to the hotel watering hole where I had my annual beer (see Jeff, no way for you to blackmail me).

This was a great conference in just about ever aspect. Rainer is very experienced at doing this. He brings in great speakers, has picked great topics, has a perfect facility and food, and terrific support from his friends and employees. Everything went like clockwork. I really hope he invites me back again next year.

I now have to get ready for my return on Monday back to reality. Actually, thanks to the wireless here at the conference center and Skype I was able to address client calls and keep my business running while I was 4500 miles from home (as the plane flies). Those Fox developers in Europe should seriously consider this conference, and those in other countries including the USA should consider a trip to Germany next year for one of the best conferences on the planet.

Thanks for reading.


Friday morning is the early start here in Germany. I left the watering hole last night before midnight, but had to get up an hour earlier this morning as sessions began at 8:30, which is 2:30am to my body clock.

First up is Lisa Slater Nicholls’ Creating Sedna Reporting Extensions. I did not realize this was part two to her Sedna Reporting Enhancements session she gave yesterday, and is one I did not attend. Lisa started out her session with the hope attendees’ heads would not explode during this session as they did yesterday. I thought the session showed some serious power she and Colin Nicholls are building into SP2. I think the Report Builder dialog extensibility in particular was very cool. This session was packed with a lot of complex ideas. I have not watched this yet, but there is a screencast developed by the Nicholls which details some of the new enhancements for those who did not get a chance to attend this session.

Next up is Andy Kramek and his highly anticipated Metadata to the Max session! I talked to several people who attended this at Southwest Fox 2006 and walked away really impressed. I have talked to Andy outside of sessions about some of the material he is presenting. I work with metadata on a regular basis, but Andy’s session enlightened me on some approaches, which should improve my use of metadata in the future. His session details the pros and cons of metadata, then stepped through three real world examples. The last example is what I was looking forward to since leaving Arizona. Andy shows how he has DEFINE CLASS code residing in a table. His application reads this table and executes the script dynamically. One of the underlying requirements of this app is 24×7 uptime. This means the app cannot be brought down to install a new executable. So to update this app you update the source code in a record of the metadata. This is a really intelligent design in my opinion. The other cool thing he demonstrated is implementing one metadata table with production code, and another one with work in progress code. This allows the team to test “work in progress” classes along side of the production classes without needing to worry about updating the production records. Great session.

The third session was Alan Griver and the Keynote. I almost did not attend this session because I saw the one he presented at the Advisor DevCon. I noticed right away that he was presenting an updated version, and I am really glad I attended. Alan showed many of the same demos to the full auditorium, but he also incorporated some new things. One thing I learned is Milind Lele has released the list of fixes included in the VFP 9 SP2 CTP. This is excellent news and should make a lot of the community happy because there was much displeasure posted on the various forums when this was not included in the CTP release. Alan also demonstrated some of the VFPx projects like the GDIPlusX gradient command buttons and the Outlook 2003 bar.

After lunch I attended YAG’s VFP Data in Visual Studio. It was another repeat of the session he presented at Advisor DevCon. I listened to this session and wrote up part of this blog entry for the first half of my day. Alan is very passionate about this topic and rightly so. One thing I noticed is the slight changes he mentioned from what he presented in Arizona. One of the things is the inclusion of free tables in the new DDEX provider. Previously it was only going to handle DBCs. Microsoft and the Fox Team are definitely listening to feedback, which is always good news.

The middle of the afternoon was occupied by Craig Berntson’s Understanding Windows Communication Foundation (WCF). Craig started out with a 20 minute story about “Bob” and his travel through the software development cycle with an app he architected with different communication technologies. All I remember is Bob’s phone was ringing a lot and he partied hard after each time he fixed numerous problems pointed out by his team and customers. I personally thought Bob should enter rehab {g}. The session ended 25 minutes before the time slot was finished because Craig’s Virtual Machine crashed early yesterday. I went to review the whitepapers in the binder but it appears there are none yet. Too bad. I am hopeful Craig will send it to Rainer for upload later. This is a pet peeve of mine.

The last session of the day I was on my way to see Beth Massi’s session on Application Architecture for Multiple UIs, but I got involved in a great discussion with Andy Kramek about SQL Server 2005 (learned a lot), MySQL, and DB2 among other things. My clients will benefit more from this adhoc session than Beth’s session, and I can probably read her white paper later. Argh – as soon as Rainer posts it!

On the way to my Professional Developer’s Toolkit session I stopped in for dinner. This session is the easiest of the four I am presenting at this conference, but the one that concerned me the most. First of all, several of the presenters battled the data show projecter in the Auditorium. I fortunately did not have any problems. Secondly, this session is just after dinner and evening sessions are usually attended less than the day sessions. At this conference attendees join the meeting at the last minute. I actually think this is smart as they optimize the networking part of the conference and get to munch on the yummy snacks. Lastly, this session is designed to be very interactive. The crowds this year are more interactive than last year, but attendees are still less likely to ask questions and offer ideas during a session than other conferences I attend. The session went well. A bunch of people showed up right at 7:30 and they were great. This is the first time I finished all the material in the 75 minutes. Lots of positive feedback too.

After the session Boudewijn Lutgerink and I talked for a long time about some cool developer tools he is using to do project estimating and a really cool open source Paint program that makes developers without artistic capabilities look like they worked with images all their life. I plan on blogging more about these tools in the future. Boudewijn copied them to my thumb drive so I can load them when my last session is complete.

A great day overall. One more session to go, and one more day to expand the brain cells. Sunday has 5 regular session slots along with the closing session and the speakers dinner.

More later…


German DevCon starts with breakfast. There are no sessions in the hotel restaurant, but no “RainerFest” is complete without the best conference food on the planet. In case you are wondering, I had scrambled eggs, some mushrooms and potatoes. I had a busy day today because I presented two of my four sessions.

I started the actual conference by presenting my session Debugging Essentials. This is the same session I recorded for with a few tweaks. A couple minutes before the session only a couple of attendees were hanging out in my room. I suspected Rainer’s 10 minute opening session went a little long and my room was the furthest from the auditorium. Sure enough the room filled up before I completed my “Who am I” slide. I only forgot to demo one thing, the ability to filter the Locals window by data scope/type (Public, Local, Standard, Object). I believe the session went well and have received some positive feedback since the session ended.

Next up was wOOdy’s (J├╝rgen Wondzinski) session VFP 9.0 und VFPX/VFPY. The session was in German, but amazingly I understood what he was trying to convey. wOOdy showed the GotDotNet and CodePlex Web site and then went through the various projects and demoed several of the projects in development. Some of the stuff he showed reminded me why I think this is such an important part of the VFP community. Not that I have forgotten, rather he reminded me of the cool projects people like Carlos Alloatti, Craig Boyd, Cesar Chalom, Bo Durban, Nancy Folsom, Doug Hennig, Randy Jean, Andrew MacNeill, Emerson Reed, and Arto Toikka are heading up and actively working on. They have volunteered and are actively working on the future of VFP. I really appreciated the plug he gave for the yet to be finished White Light MenuDesigner too. Thanks wOOdy!

Lunch was next. The smoked Salmon is very good!

My afternoon started with my presentation called Best Practices for Error Handling. This was a tough session to prepare because it originally was three hours of material crammed into 90 minutes for WhilFest 2006, and I had to cut out 15 more minutes to fit it into this session slot. I felt the session went pretty good. My programs crash during the session, but the good news is, they are suppose to trigger errors. {g}

The next slot I ended up catching up with my friends (Alan Griver and Beth Massi), and all the pictures of Jeff Zinnert’s son (from Stonefield).

I attended Marcia Akins’ More than Office Automation II session. Marcia showed us how to automate MapPoint, Visio, and CDO. Marcia presented these topics in her usual straightforward manner. The best thing about her sessions is her code examples. Reviewing the code is a treat. Her examples are not the standard examples you normally get at conferences. Her examples are near or at a production ready state. This was a really good session.

Dinner was next, and the food was very good and very plentiful. In case you don’t know this, Rainer is trying to add kilos to each person attending this conference.

After dinner I attended the Stonefield Query vendor session. Doug has really added a lot to this already cool product. I am mentoring one developer who is a user of Stonefield Query and occasionally asks me if I have any expertise in it (which I don’t). Earlier in the afternoon I was talking to Jeff about an idea I had to add reporting to a vertical market application I use. I figured this was a perfect time to get more familiar with the newest version. Time well spent.

We headed to the hotel bar after Doug’s session. This is definitely Germany and I was watching the bartender while I was talking with some friends. I swear the only time she stop drawing beer from the tap was to wash some glasses.

More to come for day two…


I had an uneventful flight from Detroit direct to Frankfurt. Flight was not full and I had no one sitting next to me, which is very rare. I have not slept in 27 hours so I am going to take a short nap before rehearsing my sessions and heading down to the speaker meeting this evening.

Only glitch I have experienced is calling home. The conference Internet is not set up yet, and I have a wrong number for my calling card. I bought a day of Internet so I could use Skype to call my wife and let her know I made it here safely. I also called the calling card people to get the correct access number in case Skype is not available to me. Skype worked great as usual, and I caught up on all the election news for the local proposals and races. The “sweeping changes” in our federal government and even the Govenor races are big news here on the International version of CNN. We rarely hear foreign election results at home. I am guessing it is because the mainstream media cannot sensationalize it {g}. I apologize for my editorial comment. I try to keep the political nonsense out of this blog.

I am hoping to blog about this conference as it happens, but I have actually seen most of the English sessions being presented. I have selected a couple of German sessions and will see how much I can assimilate just by listening to technical terms, VFP syntax, and industry buzzwords.