Okay, I think this is pretty crappy.  Say what you want about Microsoft and you hate the company fine, but outright ignoring user expectations and preferences is wrong.

Scott Cate had found something weird happening on his experience with using browsers and the address bar search behavior.  Most modern browsers have a feature that if you type something into the address bar (not the search bar that they all also have), that it will execute a search using your configured provider and display the results.  Works great, convenient for the user and allows the user to provide options of how they want to search.  If you don’t like Live, fine, use Google.  Hate them both? Great, configure for Yahoo!.

But check out what Scott found as his Cox connection was stealing search traffic.  It displayed an incredibly lame search results page.  Here’s the facts:

  • It only happened in IE
  • It only happens from the IE address bar search
  • Cox reports this to be “enhanced error page” but there was no error page (search.live.com is a valid website)
  • Oh, and the “enhanced” is crap – their results suck
  • It does not happen with any other search provider configured (i.e., the same user action if configured for Google works as expected).

Lame.  Bad business.  Whatever.  In some Twittering with CoxTech1 (follow the thread), there seems to be a total lack of accountability other than “opt out” by providing some new DNS servers (yeah, that does not pass the mother-in-law test of usability btw).  It’s an interesting conversation to read.

I recently discovered that OpenDNS was doing the same thing.  Argh.  WTF people!?  Honor my settings, not yours.  If you truly cannot resolve a DNS request, that’s different, then help me.  But don’t override my preferences as a user!  I’ve found a few ways to fix this.

IE – Add a modified search provider

Since Cox and others are looking for the action that indicates it is coming from the address bar, remove that.  I’ve created a little page for fixing the IE/Live issue which does not affect at all the ability to use Live searching or Live suggestions searching.  You can find that button here.  Click the button and it will install the “Live Search – modified” search provider which overcomes this lameness.

Firefox fixing – keyword.url

Here’s how to fix it in Firefox:

  • Open Firefox and type about:config – it will ask you the obligatory “are you sure” – I’m guessing if you are reading this, you’re sure.
  • Filter for keyword.url 
  • Change that to whatever you want.  For Live it would be in the simplest form: http://search.live.com/results.aspx?q= or for Google: http://www.google.com.my/search?q=.

Now if you don’t mind, then don’t change anything.  Note: you can always revert back to the default if you modify either of these like above. 

Why is this bad?  I guess that’s the eye of the beholder.  Yes, I work for Microsoft and I think it is lame as an employee and shareholder.  But as loyal as I am to MSFT, I’m still a believer in honoring the customer and not stealing business.  Search is big business…advertisers pay for spots, etc.  Redirection of valid search results is stealing those advertisers’ wishes in my opinion.

But above all – these companies are not honoring me, as the user/customer, or my settings…that’s bad service.  If I could find that web site that generated the “shame on” signs I would have put a giant on here: shame on you Cox and others!

Did I mention I’m going to MIX?  Will I see you there?  I could imagine that some have tight travel budgets, training budgets shrunk, yada, yada.  I’m telling you…if you are a Microsoft developer in the web and WPF space, you need to be at MIX09.  In an effort to help there are a bunch of ways to reduce some costs…here’s some:

I figured, why can't I have some fun as well?  I asked on Twitter for some suggestions and god a few good ideas.  Here’s my ideas: play a game or draw some pictures.

Option 1 – design a Line Rider map for MIX

One of my favorite Silverlight game implementations that requires some artistic skills is Line Rider.  So here’s the skinny:

Create a Line Rider map for MIX.  The map must include elements of the MIX09 art work (logo or current art) as well as some Las Vegas bling.  You could do a Las Vegas strip scene with some famous landmarks, making Bosch (the Line Rider character) cruise around the New York, New York rollercoaster, up the Paris tower, etc., etc.  Get creative.  Here’s some inspiration: Jagged Peak Adventure.

Post a link to a video of your track as a comment on this blog post prepending the subject with [Line Rider].  I’ll pick the winner Monday, 23 Feb 2009.  This gives you a while to do it, but at the same time plan accordingly for a trip to Vegas if you win :-).  This free pass is ONLY for registration so you still have to get yourself to Las Vegas plus any lodging you’d require.

Option 2 – Visualize Some Data with Silverlight

One of the MIX lab projects is Descry.  This is a project in data visualization.  It isn’t a toolkit that you can automatically apply to any data, but a lab project to take an approach on developing infographics which represent different ways to look at data.  So your task would be to get inspiration from Descry and create a data visualization in Silverlight using public data of some sort.  This could be something depressing like the unemployment rates over time in correlation to Presidential administrations or housing market values across your region.  Or it could be something even more interesting like perhaps the visualization of a Porshce design since the automaker’s inception, something with stock data (not a stock chart), etc.  Whatever.  You define it.  But use real information, nothing made up and name the source of your information!

Post a link to your Silverlight project as a comment on this blog post prepending the subject with [Descry].  I’ll also pick the winner of this one on Monday, 23 Feb 2009 by end of day. 

Option 3 – Create a new preloader

Inspired by similar thoughts that Page wrote recently which I agree on, I’m adding another option.  Create a new default preloader for Silverlight apps.  Use some wicked vectors, create an interesting animation.  Get inspired by other designers.  The goal would be to make it generic enough for anyone to use, but also creative.  That’s only a guide though…get crazy on this one.

Post a link to your running preloader as a comment on this blog post prepending the subject with [Preloader].

For both all of these please be sure to use a REAL email address in the comment form – it isn’t made public but will get to me…I need a way to contact you.  If you have questions, leave them here or ping me on Twitter as well!

Have fun and good luck!

First a congratulations to the Moonlight team for reaching their official release of 1.0!  Miguel and team have done a great job providing parity with Silverlight 1.0 and should be proud of their accomplishments.  Miguel, when is Moonlight 2 coming out :-) -- no rest!!

But seriously, this is a good accomplishment for the ecosystem.  Last month I wrote and recorded my experience of the Moonlight installer/rendering on an OpenSUSE environment.  What this demonstrated was that we’d integrated the Moonlight redirection/installer into the server-side installer detection from Microsoft.  Users on Linux visiting a Silverlight 1.0 application and not having the plugin would be directed to the Moonlight installer, using the same install link that other Silverlight applications currently leverage.  I think this shows great partnership to both teams to acknowledge and integrate that process.

Today, I updated the user agent detection script for Silverlight to also accommodate this release.  For those who don’t know, there are two helper scripts for Silverlight developers you can leverage:

  • Silverlight.js – this script helps to detect if the plugin is installed and if so, create’s the appropriate <object> tag representation.
  • Silverlight.supportedUserAgent.js – this script is also a helper script that can be used with Silverlight.js or alone.  The purpose of this script is to do some pre-checking to see if the browser/platform combination (based on the reporting User Agent string of the browser) will support Silverlight.

It is the second script that I’m referring to.  The updated release on the release site for the script (2.0.40211.0) now includes checking for Linux and reporting correctly.  Using this script is as simple as:

   1: var canSilverlightRun = Silverlight.supportedUserAgent("2.0");

This code above is basically asking: I’ve got this combination, is this version of Silverlight going to be supported?  This helper can be used by developers to pre-check if Silverlight can run on the platform of the user. 

If you are using the UA detection script, you’ll want to update it to the latest version if you have a Silverlight 1.0 solution and want to expand to Linux users.  That is the only change in this update.  No changes to Silverlight.js have occurred as a result of this, as remember, that only checks if the desired version is installed on the user machine.

If you want to play around with some settings, you can visit a quick-and-dirty page I created that uses both scripts and reports the results (Version Supported reports Silverlight.isInstalled, and UA Supported reports Silverlight.supportedUserAgent).  Hope this may help.

Hey what about this Google Chrome hack you mentioned?

Officially Google Chrome is not a supported browser, but most (your mileage may vary) Silverlight applications run.  Since the detection scripts are Ms-PL licensed, you’re welcome to change them to fit your needs.  The official copy on the release site will map to the supported matrix for Silverlight for now.  If you want to add support for Google Chrome, here’s what you’d do.

On line 93 in Silverlight.supportedUserAgent.js, insert this line:

   1: else if (ua.indexOf('Chrome') >= 0) {
   2:     slua.Browser = 'Chrome';
   3: }

Before the Safari check is important because Chrome’s user agent reports Safari in it as well as Chrome.  Then you will have Chrome detection working in your script.  Again, only if you need/want it.  We continue to evaluate the browser support matrix for Silverlight and before you ask – no decisions have been made just yet to change the current supported matrix.

Hope this helps!  Congratulations Moonlight team!

My friend Joel Neubeck is doing a survey on his site about what patterns people prefer for Silverlight development.  I’m very interested in these results as well, so if you have 2 seconds, please post your vote:

Link: Poll: What separation pattern do you prefer in Silverlight development?