A month or so ago I was finally forced to abandoned my beloved Dell Precision M6300 laptop running Win XP for a newer ride. I liked that old laptop so much I actually had two identical M6300 models so I could swap the hard drive from my primary to my backup (or vice versa) in case of a failure. However, when Microsoft actually carried through with their threatened termination of XP updates, I was forced kicking and screaming into Windows 7. I spent some time researching replacements, and finally came up with the one-generation-back Precision M6700 running Windows 7 Pro as a reasonable replacement. This model has an excellent Nvidia GPU (Graphics Processor Unit) capable of running Condor at a stunning 200+ frames/second (my old M6300 would occasionally break 100 on a good day) and sports an acceptable 17" display with 1920 x 1050 pixel max resolution. Staying one generation back from the bleeding edge reduced the cost by almost a factor of two, with no relevant reduction in performance - my kind of choice. Oh, and did I mention that it came with *two* hard drives - a 256 GB SSD for the OS and applications, and a 500 GB SATA drive for data? And a built-in AT&T wireless broadband modem card?
Now came the hard part - porting all my software and data from the old box to the new one. I run a software business from my laptop, and I also have a LOT of soaring software, so I needed to make sure all my data got across OK to the data disk, and of course all the apps had to make the transition from XP to Win7. Everything was working swimmingly until I got to BMapper. The installation of Dale Kramer's wonderful (Free now) BMapper program went OK, but about the third time I pulled up Dr. Jack's data for a soaring site, it croaked with an 'Error 75 file/access' error about halfway through the download. Man, it was really frustrating to see the yellow being turned to green, and then wham - Game Over! I still had XCSkies to fall back on, but I really like the BMapper presentation a lot better - much easier for me to interpret, and not overly cluttered with less-relevant eye candy.
I struggled on with XCSkies through The Seniors, Perry, Bermuda High, and then Mifflin, but after arriving back home, I decided I was going to have to do something about BMapper. Either I was going to have to find a solution to the crashes, or drop it entirely. I *really* did not want to drop it, so I decided to see if I could fix it. I knew Dale Kramer was no longer supporting BMapper, and had dropped out of competitive soaring to a large degree, but I was hoping that he wouldn't mind sharing his source code in a good cause. His BMapper.com website was still up, so I found an email address and dropped him a note - not really expecting much, but what the heck. Surprise surprise, Dale answered back quite quickly and seemed open to the idea of someone else mucking about in his source code, and even spent quite a bit of his time getting me set up with a suitable development environment (BMapper is written in VB6, and that is damned near impossible to find anymore). After several days, and a lot more help from Dale, I was set.
With VB6 available, I was able to look at the code and put in some 'msgbox' statements as breadcrumbs to help narrow down the general location of the problem. After chasing some red herrings in the form of missing libraries, I was able to fairly quickly narrow the search down to just one subroutine, and then with some additional back-and-forth with Dale via email, we were able to pin it down to a VB6 library call that was intended to delete temporary files created as part of the Dr. Jack data download process. Apparently on a very fast machine, it was possible for VB6 software execution to outrun the OS's file system reporting of file deletions, and so attempt to delete a file that had already been deleted - with disastrous results. Once we figured this out (thanks to a lot of Googling as well), Dale grabbed the baton and within a few hours had a new version (BMapper V114 Free) up on his website at www.bmapper.com.
So, here's a guy who isn't making a penny from any of this, who even *pays* to keep the BMapper site up even though he isn't actively competing anymore, who willingly lets someone else paw around in his source code (and as a programmer myself, I know how distressing that can be), helps that person set up a now-rare legacy development environment, spends most of a day responding to his emails, and then develops and implements an elegant fix for the problem and puts up a new version for the benefit of the soaring community. Now that's my kind of guy - thank you Dale Kramer!
When I'm out at my home soaring club (Caesar Creek Soaring Club in Ohio) or at another gliderport for a contest, I talk about the concepts of 'wing karma' and 'retrieve karma'. I'm always willing to help with wings or go out on a retrieve so I can keep my wing and/or retrieve karma positive. I do that because I know eventually (sometimes more often than that!) I'll need help from someone else for wings or for a retrieve, and then that karma will come back to me. Dale Kramer has just increased his 'soaring community karma' tremendously, and now it is up to those of us who have benefitted from his generosity to find a way to pay him back, or a way to pass that karma along to someone else who may in the future have a chance to do that for us. I may never personally get that chance, but if I do, I hope I recognize it and step up to the challenge. Thanks again Dale!