Why Internet Explorer 10 Metro should have a different User-Agent

So, you may not know this yet, but Windows 8 has these two different “user modes”, one is the normal desktop windows experience that we’re all accustomed to and the other is a more “smartphony” or “tablety” experience called Metro. The usage is a little bit disjoint and confusing for my tastes, but that isn’t really the issue. The issue relates to Internet Explorer 10 (IE10), and how it behaves and operates on Windows 8 in desktop vs metro mode.

The Problem

You see, when running IE from the Metro experience, IE10 behaves in a different way. The UI is different, and one of the more notable differences is that no ActiveX plugins will work, at all, period. If you’re running is desktop mode, then IE doesn’t have this limitation and works pretty much as it does on Windows 7. Fine, a hard line decision that seems to stem from their push to get people to write HTML5 and Metro apps, but I’ve got no real issues with that either. The issue I do have is this: there is no way for a web app developer to tell if IE is running in “metro mode” or not. This is a problem.

You see, I work on a product which requires a native plugin to work. There is no HTML5 way to monitor a screen for changes and then capture those changes, compress them efficiently and then send them to a server to be shared with other people you have elected to share them with. This is the kind of thing that is only possible through a native code that can interface with the HTML on a browser page, and so our product requires a plugin that makes available an ActiveX control that our HTML web app can communicate with. So, for our product to be able to work on Windows 8, you’ll need to be running on IE10 from the desktop, not in “Metro mode” (or Firefox or Chrome, we have plugins for those browsers as well that work just fine). However, since we have no way of detecting that you are in Metro mode, then we can’t put up friendly UI to explain that we won’t work in Metro mode. To our code, everything just looks like you don’t have our plugin installed, and we will desperately try to install it, to no avail. The easiest solution to this, for me, seems to be some sort of addition to the User-Agent string that IE10 in Metro mode publishes to indicate that it is in Metro mode.

X-UA-Compatible: requiresActiveX=true

Microsoft has attempted to add something, but, unfortunately it isn’t acceptable. You can add a HTTP header to a response, or a meta tag in your HTML to indicate that your page requires a plugin. This will cause IE running in Metro mode to display something like this:
IE10 Metro redirection to desktop mode
However, this UI is fairly easy to miss, goes away quickly, and doesn’t allow for any indication as to what parts of the website might not work due to the lack of plugin support. All of which could be handled by the web app were it able to detect that the features were unavailable.

Plugin Free Web

In doing some research on this problem, I came across some sentiment that plugins don’t belong on the web. I find this disconcerting. I understand it to a point, there are certain things that are becoming possible with HTML5 and the hope is to push people in that direction instead of relying on browser plugins (ie. Adobe’s Flash). The problem is where web applications need to do things that are outside of the browser sandbox and will likely NEVER be possible using HTML technology alone (ex: Web-based Application Sharing). For these applications there will always need to be some sort of bridge from the web application to a native component, be it a plugin or a native app that should be launched to take over the rest of the interaction. Even still, if the stance for one particular browser is, “no plugins, tough luck” then there should at least be a way for web developers to be able to detect this browser so that they can present clear information to their users about what is going on and what they can do.

I am rushing this post out a bit, and I’m sure I’m missing some key points, but I hope some people from MS will chime in with comments on this, or even better, make some changes to IE10 to fix this problem. I also hope some other web developers will chime in with comments of how this problem is effecting your applications as well.

Compilers

Compilers: Principles, Techniques, and Tools Cover from Amazon.com

Charles Nutter:It is a glorious day in JRuby-land, for the compiler is now complete.
That is some cool stuff. I think it is very cool that while a lot of people are pitting Java and Ruby against one another, that there are other people making an effort to bring them together.

In related news, I’m taking a class at the Harvard Extension School this fall on Compiler Design and Implementation. So far I have been enjoying it quite a bit. We are using the “Purple Dragon” book, which has been tough to read in places but worthwhile to get through. It has been a long time since I’ve had to read something that has this many induction proofs in it :).

Making Us Look Bad

Art School Confidential image from Amazon.com

It is crap like this that makes Ruby developers and advocates look a like a bunch of Art School wannabe cool kids. I don’t really get the point. Using baseless generalizations doesn’t make your point, it just makes you look like you are trying to be smarter than you actually are.

I like Ruby, I like Java too, even on a crazy day I even like kickin’ it oldskool in C. They are all tools in a toolbox.

The key is to learn which tool to use, not to be the toolbox.

Suzuki Big Kahuna Nationals 2008

I spent the past weekend camping out in the middle of a race track in Virginia for my now annual trip to the AMA Superbike races at Virginia International Raceway. It is always a nice time, and no one ever really knows how to react when I tell them what I did for the weekend. It is one of those niche sports that it is always nice to find someone else who is interested in it because it is like meeting a long lost friend (Meeting people that watch The Wire has a similar affect).

Sometimes people assume that if I watch motorcycle racing that I’m into NASCAR also. Nope, not even the same thing. I’m of the opinion that a NASCAR driver is essentially ballast that needs to turn left every now and then. NASCAR also just isn’t that much fun to watch. Motorcycle racing is a lot of fun to watch, and the riders have to move all over the motorcycle to get it to lean as much as possible and change direction quickly. They are athletes and riding the way they do for a whole race is a grueling experience. They also have an inability to fear death that I assume is some sort of genetic defect that they are taking advantage of having.

Good time was had by all, I’ll be back next year.

Oh, it plays alright

Russell Beattie:

Surprisingly it was on MySpaceTV.com rather than YouTube… which is the first time I’ve actually used the site – looks like YouTube, but the quality is nicer. No embed code though, so I just viewed source and pasted it in above, we’ll have to see if it plays.

It plays alright, it plays instantly, without me having to do anything. Which was quite alarming when I was on a conference call and scrolling through Google Reader and then music started blaring.

Thanks Russell! Good thing you have comments disabled so I can’t let you know personally how annoying this is.

Oh and thanks also to MySpace! I’m sure it is your fault Russell can’t embed the video without it playing instantly. Still leading the way in crappy usability, nice work guys.

Up And Running

One of the concerns I had about working from home was weight gain. In order to combat this I’ve taken up a running routine. I’m using the Cool Running Couch-to-5K Program, and I’m now in week 7, so I’m doing pretty well. I haven’t really lost any weight, but I haven’t gained any either. I like to think that I’m “moving the weight around” and gaining more muscle in the process.

Really, it is just a nice excuse to get out of the apartment and enjoy some of the outdoors. We have a bike path very close to our house, so I don’t have to really cross many major roads or deal with traffic on my run which is nice.

So far we are liking our spot in West Somerville, MA a lot.

Drag the Blue Line

Google has just flipped the switch on some very cool code on the Google Maps site. You can now click any point on a route between two places and drag the route to add an intermediate stop on the route. This solves the problem I have been having when I want to give someone directions to Boston from points south but I want them to avoid the George Washington Bridge and take the Tappan Zee. Now I can just create the route as normal in Google Maps and then zoom in on the route in New York and click on the route over the GWB and drag it up to the Tappan Zee. Problem Solved.

The rerouting happens almost real time while you drag, which I have to say is damn impressive. Nice work guys.

Married

IMG_0780
IMG_0780
©All Rights Reserved

On June 2nd, Ashley and I got married. The wedding was beautiful and wonderful, and it wasn’t just me saying that.

The weather cooperated and the rain held off for the ceremony. Then it rained a little which cooled things off perfectly for the bonfire.

We received many compliments on the wedding and the food. One of our main focuses on the wedding, besides the whole getting married part, was that the food be delicious. And it was. We were really happy to have our friends there and that everyone had a great time.

For us the day flew by. We are both looking forward to seeing all the photos from the wedding so we can actually see some of the things we can’t remember because our brains were moving too quickly!

Now we are back in our apartment in Somerville, MA and not living out of suitcases for the first time in a while. Ashley has orientation for the next week and a half and I’m working full time from my home office in our apartment. Life is good.

Stress

Stress

Stress

©
David Friel

While we are quite excited about our pending move to Boston, it is at the same time quite stressful. The process of selling my house has been going well, we’re in the inspection repairs stage and the contractor is dicking me around a little. I’ve got to sell some things we won’t need which always stresses me a little. And we still need to find an apartment up in Boston to actually move to. Just a lot of things to keep my mind busy trying to figure out how to make it all work.

I’m really looking forward to the point when the move is behind me and my bank account is full with the proceeds from the sale.

Matched


Last week was quite a week for Ashley and me. Wednesday night I signed a contract for a full price offer on my house, and then on Thursday we found out where we will be moving to later this year for Ashley to start her residency! She got her first choice and we’ll be moving to Boston!

The match day ceremony is really a crazy event and the News and Observer does a good job describing it. After Ashley got her envelop and we both examined its contents and hugged each other we started calling our relatives and tried to tell them what we could over the noise in the room. We then went out and had a beer with her fellow classmates to discover where they will be headed.

So by the end of April, I should be writing in this blog from Boston!