VFP9 SP2 Report Listener Bug Bites Again

Spoiler alert: it was all my fault.

While preparing to demo an app to a client on my laptop computer, I noticed the VFP9 SP2 "SET TALK ON" bug showed up when I ran reports. I knew about that bug (cathypountney.blogspot.com/2009/04/set-talk-appears-to-be-on-when-running.html), but thought I had resolved it long ago by correcting and recompiling the class library and replacing the reporting apps with the latest ones from VFPX (github.com/VFPX/ReportingApps).

For demo purposes, I run the app's EXE from the development folder where it’s compiled rather than installing the app the way it would be on the client's machines. What puzzled me was that the bug did not show up when I ran the EXE that way on my main desktop development machine, but it always showed up when I ran the identical EXE that same way on my laptop.

I double- and triple-checked my laptop machine, confirming that all copies of the _reportlistener class library had been corrected and recompiled and that the reporting apps in C:\Program Files (x86)\Microsoft Visual FoxPro 9\ were the updated versions. Everything checked out OK but still the bug persisted - not fatal, but ugly and certainly not something I wanted the client to see in a demo.

Realizing it was time to ask for help, I reached out to my friend and respected colleague Rick Schummer who quickly suggested I look for out-of-date copies of the reporting apps elsewhere on the laptop.

And of course that was it.

Although I had updated the reporting apps in C:\Program Files (x86)\Microsoft Visual FoxPro 9\, I had forgotten about C:\Program Files (x86)\Common Files\microsoft shared\VFP\. That folder had the updated reporting apps on my desktop machine, but old copies were still lurking in that folder on my laptop computer and were being used when I ran reports from the stand-alone compiled EXE.

Lesson 1: When configuring a new machine for VFP development work, be sure to replace the reporting apps in C:\Program Files (x86)\Common Files\microsoft shared\VFP\ as well as in C:\Program Files (x86)\Microsoft Visual FoxPro 9\ even if you don’t deploy from that folder.

Lesson 2: Don’t waste too much time before asking for help. Two brains are always better than one.


Data Visualization Links and Tools

Thank you to the anonymous commenter who pointed out that the white paper from my Data Visualization session at Southwest Fox 2015 does not include all the links I mentioned and showed on slides during the actual session. Here is a complete list of those links:

Brain Rules, by John Medina

Animated visualization, by Dr. Hans Rosling

Animated visualization on the causes of global warming, from Bloomberg Business

Tools for Data Visualization

Example of misleading bar chart, from Presentation Zen blog

Example of a combo chart, from The Weather Channel


Why I'm a fan of Southwest Fox, and you can too

Southwest Fox / Southwest Xbase++ is the premier annual North American conference for Visual FoxPro and Xbase++ developers. I've attended every one of them except the first, so that makes nine years running. Obviously I'm a fan, and - if you're not already - I hope you'll become one too.

What makes this conference worth well more than the cost of attending? Outstanding speakers, great topics, white papers for every session, a great venue (sunny Gilbert, AZ), good food, terrific camaraderie among the attendees and presenters... the list goes on and on. Did I mention white papers for every session? This means you get to take home the full content of *every session* even if you can't sit in on all the presentations. The accumulated knowledge and advice in these white papers is awesome. Together, they comprise an invaluable reference library I frequently turn to for solutions. A lot of the material is leading edge, so something presented even years earlier can suddenly become relevant later when I find myself venturing into unknown territory. Other material I'm chomping at the bit to use as soon as I get back. White papers rock!

The social and networking aspects of this conference can't be overstated either. How valuable is it to "put a face with a name" and finally meet in person someone whose opinions you respect but whom you’ve only met online? They say 90% of communication is non-verbal - getting to know someone personally benefits you by adding a whole new dimension and a deeper level of understanding when you're reading what that person says in print and online. It's not unheard of that a frosty beverage or two helps cement these friendships, either, for those who are so inclined. After hours activities, both organized and impromptu, help round out three and a half days full of conference goodness.

I'm not alone is saying I've formed and maintained many valuable friendships through Southwest Fox, and I'm looking forward to making many more at this year's conference in October. Will you be one of them? Head over to www.swfox.net and register. I hope to see you there.


Why I'm attending the Web Connection Training at Southwest Fox

I've been using West Wind Web Connection in production apps for over ten years, so I'm pretty familiar with it - how it's built, how it works, and how to build apps based on it. So why would I invest the time and money to attend more training?

The answer is simple: Because I need to sharpen my skill set, and the two-day Web Connection training that's being offered in conjunction with Southwest Fox 2012 is the perfect opportunity to do so.

Web Connection has undergone continuous growth and improvement over the years. I started with version 3 (as best I can recall) and migrated to version 4 when it became available. Version 5.00, released in 2006, introduced the Web Control Framework, a major enhancement that provides developers with a rich set of tools to build even better apps. Since its release, Web Connection version 5 has continued to evolve with more and more new features. It's now up to version 5.63, which was released in June of 2012.

Despite having read the always excellent documentation for which all of Rick Strahl's West Wind products are known, and despite having worked through most of the online video tutorials, I know there's a lot of power in Web Connection 5 that I'm still not taking full advantage of. The demands of meeting work obligations along with the usual daily distractions make it difficult to block out time to learn new skills. So, what better way to get up to speed than to forget about everything else and concentrate on the framework for two full days?

For my money, the Web Connection training on Oct. 17 and 18 is the perfect opportunity to improve my Web Connection skill set. For me, this training will be valuable not only because it's taught by Rick Strahl himself, but also because it offers the opportunity to talk with and learn from other Web Connection developers.

It's a unique opportunity. I'll be there. Will you?


Videocast: Solving a Network Deployment Challenge using Inno Setup

One common approach to deploying Visual FoxPro apps in a multi-user environment is for the application’s executable file and data to reside on a file server. That way, each workstation only needs the VFP runtime files and a shortcut to the EXE.

Installation is simple, generally using either two separate installers or one dual-purpose installer. But in either case, there’s a catch when it comes to running the workstation-only installer: What if, due to different drive mappings, the drive and path to the EXE varies from workstation to workstation? How do you build an installer that can create a desktop shortcut to an EXE it’s not installing and whose location it doesn’t even know?

This videocast shows you one way to do this using Inno Setup. It’s available on the FoxPro Developers page of my website at http://www.ita-software.com/foxpage.aspx#videocasts.

My thanks to Phil Sherwood for posing the question that prodded me to come up with this solution.


How To: Browse a Mercurial log in Visual FoxPro

If you use Mercurial as your version control system, you know it maintains a log of all repository history. You can view the log with the hg log command or with the TortoiseHg Workbench app.

However, if you’re a Visual FoxPro developer, you might wonder if you can get at the log from VFP. It turns out this is easy to do in two simple steps.

1) From the command prompt, do hg log --style xml > log.xml to send the log output to a file named log.xml.

2) Then, in VFP, do XMLTOCURSOR( "log.xml", "csrHgLog", 512) to create a cursor you can browse and work with in VFP.

This little tip was included in the white paper from my session on VFP Version Control with Mercurial at the 2011 Southwest Fox conference in Gilbert, AZ.


Updated KB2412171 no longer breaks Gmail

As noted here, the December 2010 KB2412171 update broke Outlook access to Gmail accounts. The KB2412171 patch was updated on January 11, 2011 and from my experience no longer causes this problem.