Goodbye My Friend

friendI met my best friend, Lance Washington, while we were working at QVC (the shopping channel) almost thirty years ago.  We worked the overnight shift, answering telephones and taking orders.  I had relocated to Pennsylvania from Tennessee, and kept to myself at work (my southern accent meant I had to repeat practically everything I said – people just loved listening to my accent at the time).  I typically sat alone, read books during my shift, ate lunch alone, took breaks alone.

One night, I heard some boisterous laughter from the row behind me.  There was Lance, standing and laughing with everyone around him.  There was a group of people around him, literally waiting to hear what he would say next.  I wondered to myself, “Who is this guy, and why is he so popular?”

I didn’t know at the time that he was wondering about me, “Who is this guy, and why is he always in a shell by himself?”

Eventually, Lance introduced himself to me, and we discovered we had a shared passion – we both loved movies.  We quickly became friends, and we often went to the movies together, usually at least once a week.  We did have our differences, though.  He was a Star Trek person – I’m Star Wars all the way.

A few years later, I relocated back to Tennessee, and we lost touch.  I often wondered how Lance was doing, and where he was, but almost twenty years had passed.  I wondered if he ever thought about me.

Then one night I got a comment on my blog.  A simple, one-line comment: “Have you ever danced with the devil in the pale moonlight?” (The original Batman movie in 1989 was one of my favorites.)  I knew immediately it was Lance.  After twenty years, he had found me, and our friendship was reborn.

He met my son Nicholas – now an adult.  Lance had not seen Nick since Nick was a baby, yet took him in like he was family. Nick has called him Uncle Lance ever since.

This past July, Lance was spending a week in Gatlinburg, TN, and invited us to come out and spend some time with him.  Nicholas went, and I took my youngest son Jonathan and his friend Kason.  Jonathan and Kason were instantly taken with Lance, and started calling him “Uncle Lance” immediately.

We spent a few days in Gatlinburg, and though he had several health issues, Lance spent a day with us walking through Gatlinburg, going to museums and posing for an old-time photo.  It was a great day.  On the last day together, we had pancakes at one of the pancake restaurants, then said our goodbyes (and started planning a trip for next year).

Unfortunately, Lance won’t be there in person next year.  He passed away last Friday at the age of 48.

In this day of Facebook and other social media, it seems everyone has thousands of friends.  But there’s usually just that special one or two people we consider to be our truest friends.  The kind of friends you can count on one hand.  The stars of your own personal movie.  Lance was, for me, that one true friend.

I’m the kind of person that remembers “events” – I remember going places, who went with me, but the details of the events usually leave my memory over time.

Lance remembered “moments” – he recalled details of events we shared almost thirty years ago to my boys, all the way down to the weather of the day.  He had an incredible memory, and as he told the stories of our times together – complete with his infectious laugh – I could see those times were as important to him as they were to me.

Goodbye my friend.  I will miss you and love you for the rest of my days.  Rest in peace.

Kevin, Lance, Kason, Jonathan

 

 

 

 

 

Windows 10, IE Web Browser Control, and FEATURE_BROWSER_EMULATION

I’ve got a Visual FoxPro app that uses the Microsoft Web Browser ActiveX control as the primary UI.

A few years ago, I needed to “upgrade” the pages being rendered by the Web Browser Control to a more modern look and feel (think HTML5), and found that many of the changes I had made simply weren’t working – all thanks to the Web Browser Control using IE7 rendering mode.

That’s when I discovered the FEATURE_BROWSER_EMULATION registry key (thanks to Rick Strahl).  Rick has written about this key several times on his blog:

Web Browser Control – Specifying the IE Version (May 11, 2011 – Updated 7/19/2014)

Make Your CHM Help Files Show HTML5 and CSS3 Content (February 15, 2012)

HTML5 and CSS3 Editing in Windows Live Writer (July 8, 2013)

After reading Rick’s original post, I took the “clever” way out by adding the registry key to my InnoSetup script, and setting the Value of the key to zero (0).  Setting the key to zero tells the Web Browser Control to render pages using the currently installed version of IE on the users computer.

This has worked well for me the past couple of years.

Until this weekend.

On Saturday, I updated my Windows 10 virtual machine to Build 10130, and started up my app.

The app loaded fine, but instead of rendering the “home” page as it should, there was nothing but a blank white area where the Web Browser Control sits.  Even worse, when I closed the app, the EXE continued running in Windows Task Manager.  This is a problem, since I prevent more than one instance of the app from running on a machine.  Double-clicking the icon to start the app again did nothing, as the EXE was still running – but was invisible.

After trying several different things to get the page to load, I finally removed the registry key for FEATURE_BROSWER_EMULATION for the application EXE – I restarted the app, and it rendered the pages perfectly.

I’ve jumped through several different values for the registry key, and it seems no matter which value I choose the Web Browser Control (in Windows 10 Build 10130) renders the pages based on the version of Internet Explorer that is installed (in my case, IE 11).

This piqued my curiosity for other versions of Windows, and it appears I can set the decimal value for FEATURE_BROWSER_EMULATION to 11000 (IE11 Standards mode) for all OSes from XP forward to ensure the Web Browser Control will render pages based on the version of Internet Explorer that is installed.  In Windows XP (which can only go to IE8, the pages rendered as I expected them to render for IE8).