Dec
08

Living in Dilberville

I know I live in Dilbertville every day, but today’s legacy theme hits particularly close to home.

Dec
08

I was visiting the OzFox 2007 Web site the last couple of days because I am trying to figure out if I can some how attend the conference. I think it would be cool to blog live from down under. Right now it is a matter of arranging my schedule and determine if the business model works.

Craig Bailey has done a real nice job with this site. The only thing it is missing is the hotel cost, which I understand will be added soon. Looks like Craig is doing some things I think are important for future conferences to include or adopt:

  1. Promote new speaker talent. OzFox is looking for local talent from Australia and New Zealand. Whil Hentzen was well known for doing something similar years ago with GLGDW. He took risks and grew the speaker pool and thus broadened the materials presented at FoxPro conferences. I have always been grateful to Whil for taking a chance on a punk from Sterling Heights Michigan back in 2000. Last year Bob Kocher dragged Craig Boyd from his basement in Minnesota to participate in the Southwest Fox Keynote and now he is a rock star, and this year Kevin Cully based the entire FoxForward conference on volunteers and introduced the community to some rising stars with Kevin Ragsdale and Bo Durban getting some serious buzz on their sessions (to mention only two). This is tough to balance because speakers and their topics are the number one draw to a conference.
  2. Building community – Craig has been banging the Fox Community drum down under for quite a while with his participation in the OzFox Rocks Podcast with Scott Scovell, plus organizing OzFox Lite and previous OzFox conferences. I recall the days when Microsoft held special meetings for user group leaders at DevCon, and Whil had a special dinner where he organized a user group leader dinner at GLGDW. Whil and Bob Kocher offered discounts to user group members.
  3. Networking – based on strong feedback from the last OzFox, attendees want more time to network with each other. OzFox will have a session dedicated to networking. I have said for years the in between session material/discussion is as valuable as the conference sessions. While I am not sure a session has to be dedicated to the topic, I think conference organizers need to innovate ideas on how to enhance the networking experience. Interesting decision and hopefully one to start other ideas flowing.

Conference organizers have earned my deepest respect with the effort they put in to bring us these important events. It is impossible to satisfy everyone, yet they do everything they can to make the experience as pleasant as possible for all the personalities involved.

OzFox sounds like a great conference. If you live anywhere within an earshot of Sydney you need to register right away. There are nine days left to take advantage of the least expensive registration cost.

My first crack at airfare on Northwest was taking me from Detroit to Sydney east over the Atlantic instead of directly west. Three days and four or five stops and US$10,000. I laughed until I had tears in my eyes. I would have literally seen the world from 38,000 feet.

All I have to do is see if I can jam a week out of my schedule, possibly work out some resource issues with one March deployment, and see if I can convince the other shareholder to spring for the expenses. Fingers crossed this all works out, but I am realistic when I review all the work I have to do in the first quarter of 2007. If not, I will be reading some one else’s blog to hear about all the cool stuff I missed.

I'll be at OzFox 2007

Dec
06

Sedna Data Explorer

I have been meaning to blog about the Sedna Data Explorer for a long time. Mostly to inform developers reviewing the October Community Technology Preview (CTP) of things they can test so the bugs are revealed sooner than later.

In case you have not attended any of my Data Explorer sessions over the last few months or the Southwest Fox 2006 Keynote, I have been working as a contractor for Microsoft on the changes for the Sedna update to the Data Explorer. It has been a real pleasure to work on this developer tool. I have developed a real respect for the work Ryan Katri (Code References, Evironment Manager, Toolbox, and Task Pane are the other tools he is famous for) and Randy Brown (retired Product Manager) did on the original version. The design of the Data Explorer is very well done and the code is written well too. I wish there were a few more comments in the code, but figuring out how it works was straightforward. I have also learned numerous techniques to incorporate in my own developer tools along the way.

As you might know, I have been a little vocal about some of the bugs in the original Data Explorer release so Microsoft asked me to put up and fix the bugs, and include numerous enhancements in the Sedna version. I gladly accepted the challenge.

The first release for public consumption is in the October 2006 Sedna CTP and VFP 9.0 SP2 CTP. Please note this is not a production release as I wrote about here. You need to carefully load this over on a test machine or in a test folder. Steps to do this are in my blog entry just mentioned. Note: The Sedna CTP is separate from the SP2 CTP. The Sedna CTP does not overwrite any critical files. In fact, the entire release is installed in a separate folder under your VFP 9 root folder. There are few risks to installing and running the Sedna CTP.

There are however a couple of things to consider with respect to the Data Explorer. First, if you use the Data Explorer pane in the Task Pane Manager you will not see the new version. The Task Pane Manager looks for the DataExplorer.APP file in the VFP 9 folder. If you want to use the Sedna version you need to rename the original version to something else, and copy the Sedna version from the “Sedna October CTP” folder to the VFP 9 folder. If you want you can just run it directly from the Command Window:

DO HOME()+”\Sedna October CTP\DataExplorer\DataExplorer.APP”

The second item on the check list is the shortcut menu for the tree view is where most of the Data Explorer functionality is found. Several new features have been added in the Sedna release. These features do not automatically show up on the menu if you have been using the Data Explorer previously. The reason is the functionality for the shortcut menu is stored in the metadata: DataExplorer.DBF in the HOME(7) folder. The new functionality is stored inside the DataExplorer.APP file internally in a DBF file. If you want the new menu functionality and want to retain your existing connections and extensions you have added or downloaded you need to update your DataExplorer.DBF metadata. This is accomplished via the Options dialog. First click on the Options button on the Data Explorer toolbar. On the Options dialog you will find a button called Restore to Default. This might sound like you will be set back to the factory settings, and indeed this is possible, but you can also retain the connection settings and your extensions you have added.

Click on the Restore to Default button to start the update process. You will be prompted with a message: Do you want to maintain connections and customizations that were done by you or a third-party vendor?” Click yes if you want to save your changes and get the new enhancements. Click no if you really want to be reset to factory settings including and include the new functionality distributed by Microsoft in the Sedna release. One note, if you made any enhancements to the native code included in the original Data Explorer features, it is likely the Data Explorer will reset it.

For instance, I have changed the behavior of the Design option for VFP tables and views to run the White Light Computing ViewEditor instead of the native View Designer. Each time I restore the native functionality I select the option to save my connections and additions. It does that, but restores the original code for the Design feature and I need to reset the code to work the way I want it to.

My recommendation to you is to create a backup of the DataExplorer.DBF file using the Options dialog before restoring the functionality. This way you can get your customized code for the native features and restore the code overwritten during this process.

There are no compatibility issues with the DataExplorer.DBF and nothing gets structurally changed. You can still use the original Data Explorer once you work with the Sedna version. I have not run into any issues doing so. Things do work differently between the two, and hopefully the changes are for the better.

The changes discussed in this blog post are based on the version shipped in the Sedna October 2006 Community Tech Preview (CTP). It is important to note at the time this post is written the features to be included in the final release have not been finalized.

The list of fixes/enhancements in the Sedna Data Explorer are a bit longer than the Microsoft list included in the Sedna CTP release notes.

Bug Fixes:

  • Drag/drop of VFP table/view from the Data Explorer to a form now sets the grid’s RecordSource.
  • Drag and drop operations now respect Field Mapping settings for SQL Server data
  • Fixed drag and drop of VFP table from Data Explorer to a form when a Field Mapping setting is set to a non-existing class or class library. This triggers a C5 error every time. Now you get a message telling you to fix the Field Mapping.
  • Default values are displayed in the description pane for VFP data. Previously you see nothing or a logical false (.F.) even for non-logical data.
  • Run Query dialog – running add-ins while on the Message tab triggers an “Alias Not Found” error.
  • Run Query dialog – result set grid with General fields, double-click on general field triggers “Field must be a Memo field” error.
  • Browse form – change auto incrementing integer column causes the grid to lose the RecordSource, and thus causes the grid to lose all the columns.
  • Included David Fung’s fix for stored procedure sorting when using the Korean code page.
  • The issue with free tables not showing their columns when expanding the node was an issue I introduced in an interim build to Microsoft. You should not see this in the original version or the Sedna version.

Enhancements:

  • Ability to sort objects (tables, views, stored procedures) is separate from the ability to sort columns. See connection properties for new setting.
  • Display SQL Showplan for local views via context menu.
  • Display Database Documention for VFP databases via context menu. This is text output in the October CTP. I have a newer version of this I demoed at Southwest Fox that outputs to HTML, has CSS control of the output, and does a better job documenting the database.
  • Launches the new and improved Upsizing Wizard for VFP database connections via context menu.
  • Options dialog has Rushmore Optimization Level setting for the showplan features now included in the Data Explore
    r. You can set this to your favorite setting once and the options will display the results using this setting.
  • Options dialog allows you to pick where the Upsizing Wizard is located. This allows you to run the one that ships from Microsoft, or your own enhanced version, or possibly one you get from an open source project like VFPx in the future.
  • Option dialog has a new button to back up the DataExplorer.DBF metadata file. This was a personal requirement because I was tired of hunting the file down during my development of the new feature for the Sedna version. I need to back up my source often.
  • Run Query dialog has “(F5)” added to the Run button to expose previous functionality of using the hotkey to run the query (the same hotkey as SQL Server Query Analyzer).
  • Run Query dialog has Report result add-ins to generate reports in form and columnar style.
  • Run Query dialog Message tab on the result set now shows the Rushmore Optimization level and number of rows returned for VFP data. SQL Server queries always showed the number of rows returned.

I have made several new enhancements since the CTP release which I will blog about when I know they are going to make it into a future release. This has been a fun project and I look forward to hearing the feedback you provide to Microsoft.

Nov
22

Christof Blogging

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??

Nov
22

Shuttle Year-End Glitch?

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.

Nov
20

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, Foxite.com, 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.

Nov
18

Returned from Germany

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.

Nov
12

German DevCon 2006 – Day 3

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.