You have reached the blog of Keith Elder. Thank you for visiting! Feel free to click the twitter icon to the right and follow me on twitter.

Surface Pro Running Four Screens– My New Personal Workstation

Posted by Keith Elder | Posted in Technology, Windows | Posted on 14-08-2013


No One Believes Me

The other day on Twitter I mentioned I had my Surface Pro running four screens (technically 5 if you count the screen of the Surface itself) and that it was my new workstation. Then I got this tweet from Eric:



I swear this is not Big Foot, it does exist so let’s get that done and out of the way.

The Proof


Tada! I will note this configuration isn’t new. As a matter of fact I’ve had this setup with four screens since 2009 as noted in this article that also discusses what is holding up the screens.

In the picture above you’ll notice one single cord plugged into the Surface in the USB 3.0 slot that runs in behind a speaker and into a Plugable USB 3.0 docking station. The docking station is the secret and provides all of the magic. What’s running on the Surface is TweetDeck (top left), Skype (top right), playing full screen Youtube video (bottom left) and Outlook 2013 (bottom right). The screen on the Surface is just showing the standard desktop.


FIrst of all thanks for the interests in this article. My Twitter feed @keithelder has been blowing up with questions all day. For the many of you asking about lag I recorded a quick video so you can see everything working live.

This should answer those questions about lag.


I created another video. This time because there seems to be a lot of misinformation in people’s heads about the Surface in general and especially the Pro. Look folks, this thing is a full blown Windows PC. But it has a touch screen and is also a tablet. Someone wanted me to push it a little further than doing just one video. So here is a video of the Surface Pro streaming FOUR YouTube videos at the same time full screen while also downloading Visual Studio 2012, and running Tweet Deck, Outlook 2013, Skype, Chrome, IE, Live Writer and Adobe Audition. I think it was also washing dishes at the same time I can’t remember. The point is this little itty bitty device isn’t slow. It is a full blown PC packed into a tiny form factor so don’t let what you may have read in media previously fool you.

Four YouTube videos streamed over USB 3.0 Docking Station

Another thing I should point out is the performance rating of the Surface Pro. People keep asking me if it can run Visual Studio. The answer is yes yes yes yes. I just installed it. Don’t take my word for it though. Compare performance information with your existing development machines and see how you stack up against the Surface Pro. Don’t get me wrong, there are way faster computers out there. It just that not many people realize what this device is really capable of. I just can’t wait to see what they do with the Surface Pro 2!


UPDATE 8/15/2013 5:25 PM

More questions have come in as this story continues to spread.

@RockyLhotka asked this a bit ago:

Hey @keithelder does your multi-mon setup run Netflix? I found the DL drivers weren’t signed, so couldn’t play DRMed content?

Rocky is talking about the Display Link drivers that the hard you’ll read about below uses. To answer Rocky’s question the answer is Netflix works without a single problem. I ran Netflix in the browser and then installed the Netflix app from Windows Store and ran that. They both work without a problem. Matter of fact I was watching the Netflix video while playing Angry Birds Star Wars which is combining desktop apps while also running Windows Store apps at the same time. It is getting crazy!

The Setup

I know. Your mind is blown. Full screen Youtube playing with four screens all from one USB 3.0 cable!? Answer. Yes. And it also provides sound, mouse, keyboard and has a HD video cam plugged into it.

Here is a closer pic of the Plugable Docking Station:


The docking station is just one of the pieces to the puzzle. It has a DVI port in the back of it so one of the screens is plugged directly into the DVI port. That leaves three other screens to go. For that piece of the puzzle all we need is a converter to go from DVI or VGA to USB 3.0. Just so happens Plugable also has the answer to this as well with their UGA-3000 product.

UPDATE 8/16/2013 4:53 PM

@Plugable just as of a few minutes ago drop a brand new docking station, the 3900 model that supports dual monitor support with one DVI and one HDMI. If you are going to get one, this may serve you better than the one I have.


Note the new unit is regular $129 but if you use Amazon promotion code 63P25IGM at checkout it is only $109!

The USB 3.0 UGA adapter will work with anything you have. It works with VGA, DVI and HDMI and includes the adapters in the box. They even support resolutions up to 2048×1152 (which I’m no where close to).

There are two USB 3.0 ports on the front of the docking station so I plugged the other big screen on the bottom plus one of the screens up top into the front USB 3.0 ports. That leaves one of the smaller screens plugged into a USB 2.0 port in the back. I thought I may notice a difference in the screens up top since one was plugged into USB 2.0 but honestly I can’t tell you which screen is plugged into which. To my eye there is no difference.

Let’s recap. To make this work get a Plugable USB 3.0 Docking Station for $99 (or something similar). Then pickup as many UGA-3000 adapters as you need. All total you’ll be in for about $250 if you have four screens which is the cost of a typical docking station.

Side Benefits

A side benefit has come out of my efforts to get multiple screens working with the Surface Pro and that is my Dell notebook I found out has USB 3.0 on it. While I had a Dell docking station for it running two screens, I think we all agree that four is better than two! I’m now using the Plugable Docking Station on the Dell at work which gives me four screens to work with as well. A whole new level of productivity at work has opened up.

Switching between the Dell and the Surface is dead simple. There is only one cable to plug / unplug. Everything runs off of the one USB 3.0 cable. Let me just go ahead and say this: USB 3.0…. I love you.

So Long Gigantic Desktop

In the article I mentioned at the beginning I stated my four screen setup isn’t new. In that article is the picture below of a custom gigantic desktop sitting besides the four screens.

That desktop now sits below the desk collecting dust. As a matter of fact I’m loaning it out to a buddy of mine who’s computer died. I’d rather it get used than sit in my floor. It is still a great machine but it doesn’t travel very well. The Surface Pro has plenty of power in all honesty to do anything I really need at the moment.

I blogged after Windows 8 was announced in September 2011 about the up and coming hardware revolution and how Windows 8 was a transformer OS. The Surface Pro is just the tip of the iceberg and I don’t see me buying a desktop ever again. If I can’t take whatever I buy with me it is useless in today’s world as far as I’m concerned.

I can’t predict the future but I assure you the Surface Pro isn’t going to last forever as my workstation as I’m just waiting on the new line of Ultrabooks to come out with better battery life and slimmer design. Whatever I wind up with will have USB 3.0 and it will be running these four screens. Being able to just unplug and go is super powerful. Moving from workstation to tablet with touch and then back is great. So far I’m enjoying the ride.

The next time you are looking for a new machine don’t leave Ultrabooks or the Surface Pro off your list. As long as it has USB 3.0 you’ve got something that can transform into a workstation and then to a tablet. Best of both worlds in my opinion and Windows 8.1 plus the new line of Intel processors is going to make it even better.

So long gigantic desktop… you’ve served me well.

Windows 8 and the up and coming Hardware Revolution

Posted by Keith Elder | Posted in Computer Hardware, Windows | Posted on 19-09-2011


This past week I was at the BuildWindows conference where the wrapper was finally taken off of Windows 8. We’ve known for some time that Windows 8 was coming but we only had a few glimpses of the real story behind Windows 8. Tuesday we finally got to see the full details about Windows 8 and how big of a release this really is (bigger than Windows 95!).

The biggest news around Windows 8 was the announcement about the new touch first Metro desktop. This means Windows 8 will have count them *two* desktop modes. At first, like many, I had my concerns about it but it wasn’t until I played with both the Samsung tablet given away at Build and playing with it at home on the metal of a notebook I have that I can put into a docking station allowing me to use it with dual screens that I started to get excited. I’ll try to explain so bear with me, this is going to be a long post.

If you haven’t seen the new desktop and how it works I invite you to watch this presentation by Jensen Harris that was given at Build entitled: 8 traits of great Metro style apps.



The PC Isn’t Dead

There have been many articles about how the PC is dead in the news lately. These articles in my opinion are just bogus crap articles spurred on by the press to have something to write about. When the press has lulls in news they have to sit around and speculate what’s happening and thus we get articles about how the PC is dead and how we are all going to be walking around in a world with these consumption devices (tablets and phones). What they fail to think about is that *someone* (you and me) at some point has to produce information for these devices to consume.

FACT: It takes longer to produce information than consume it.

Thus given the old saying of “use the right tool for the right job” why would anyone think the greatest device known to man at producing, consuming and creating information, the PC, is dead? Simple, it is called money. That’s because they get paid to write these articles and speculate.

So, the PC isn’t dead. This is a fact. Don’t argue against me, you’ll lose. It is going to be around for a long time. Here’s the kicker though… it is going to just look different thanks to Windows 8.

Consuming and Producing Information With One OS

As I see it, there are mainly two different modes we use information. We are either consuming information or we are producing information. It turns out the absolute best device for doing both of these is still the PC (you know that thing that isn’t dead?).  If anything, the PC it is about to undergo a major revolution. And by revolution I mean the hardware is going to change as we know it today. Me personally I fully welcome this change and here’s why.

The past week at the Build conference I spent the majority of my time consuming information. I did so on two devices: iPad and phone. The times I had to produce small amounts of information via tweets, text messages or quick responses to email these devices worked. Notice I used the phrase “small amount of information”.  This is key because once we move past producing a small amount of information these devices fail.

Have you ever received an email on either your phone or tablet where you told yourself, “I’ll answer that later”? I bet everyone has. Why? Because these devices are information consumption devices. Let’s face it, when we have to do real work these devices fail. I don’t know how fast you can type but I can pump out upwards of 140 words a minute. Now why in the world would I want to use touch type to type say 25 words a minute? My time is valuable and thus when I have to produce more information (like a blog post) that requires more typing I’m not going to do it on a consumption device (tablet, iPad, etc).

The reason Windows 8 is such a game changer is it is going to allow all of us to consume information and produce information on the same device.

Windows 8 is like a Transformer. It can transform to consuming information to also producing information.

Windows 8 The Transformer

Install Windows 8 Dev Preview in VMware WorkstationWhat does Windows 8 have that changes this? For starters it has a touch first interface. This new interface (pictured to the left) is really the the consumption interface. Microsoft calls it the Metro interface. But the standard desktop interface is there as well, what myself and others have coined as the Retro interface. Or as I like to call it, the desktop where information is produced or created.

The Metro interface is immersive, full screen apps, full touch enabled, and as Microsoft calls it *fluid*. For tablet and slates this new interface is going to serve us all very well once developers start filling up the store with awesome applications.

The Retro interface is what we are accustomed to in Windows 7 today. Nothing has changed there except we’ve gotten a lot of new enhancements. Windows 8 builds on top of Windows 7 and just makes things better with new features like:

  • New ribbon added to Windows Explorer
  • Ability to mount ISO files natively (yeah for developers)
  • Hyper V
  • New taskbar features (unique taskbars per screen)
  • and many more

Being able to switch between these different modes is powerful. Switching between the two is easy and very smooth just by pressing the “Windows” key on the keyboard. Or the “Windows” button if you have a tablet.

By having both a touch first user experience and the full desktop this allows the user to transform the operating system to meet the various requirements how the user wants to interact with information.

Apple for example has a desktop OS and they have an OS that runs their iPad/iPhone. When you’ve hit the point to where you need to produce information instead of consume it one has to set their iPad down and reach for their notebook or PC. This is something I think Microsoft has gotten right by simply just using Windows 8 to do it all. Think about it for a minute. Think about how the Enterprise today provisions and manages iPads or Android tablets? They sort of don’t. By leveraging Windows, Microsoft has just put tablets and slates into the Enterprise so all of the tools of deployment, management, etc can be leveraged (bitlocker, roaming, active directory credentials, etc). Remember your tablet is just Windows! Brilliant! Folks this is a game changer, make no mistake about it.

With Windows 8 the hardware revolution that is coming is going to change things as we know it today. I see a day when we won’t have a desktop at home to get multiple screens, and a notebook to carry with us, and a tablet to carry with us. I see all of these devices converging into one simple and easy to use PC, I mean tablet, I mean slate, I mean notebook. Someone will create a new name for it. Something like… SlateBook (remember you read that here first! Smile ).

We already sort of got a hint of this from Samsung with the tablet they gave attendees at Build. It came with a docking station and a keyboard. This allows everyone to interact with the machine normally on the retro desktop. But it also is a tablet that can be removed from the docking station and used as more of an information consumption device leveraging touch.

The PC isn’t dead, the devices will just transform for the user as they need it to. And Windows 8 is the OS that is going to make that possible.

My Perfect Windows 8 Computer

I’ve thought about this a lot over the past week and I’ve researched a lot of devices as of the past week trying to find something I could maybe even potentially purchase to run Windows 8 that would transform if you will. I’m saddened to say that I haven’t found anything *yet*.

My perfect Windows 8 computer is going to have the following characteristics:

  • Be easily dockable so it can be used at home where all of my peripherals will plug into it (multiple monitors, speakers, keyboard, mouse, etc)
  • Be powerful enough to run as a desktop but also not consume a lot of battery life
  • Be thin enough that I can remove it from the docking station and carry it with me
  • Easily transform into an information consumption device
  • Easily transform into an information producing device

Yes I want my cake and eat it too but I am tired of having three devices to do three different things. As I see it, Windows 8 will allow us to embrace a new hardware revolution where these devices converge into a single power device. It will in fact be a PC (personal computer) but it will be also a tablet for consumption and support full keyboard and mouse to switch between consumption to information producing.

Right now my perfect device would be an ultra thin notebook like the Asus UX21 that would also have a touch screen that can be transformed into a slate / tablet.

Now I’m not saying that there will not be a lot of just tablets created and sold. I am sure there will be. But from where I’m sitting I’m honestly tired of tablets, and notebooks, and really not having my full computing experience with me wherever I go. Yes I want my cake and want to eat it too.

If the OEMs can get the hardware right Windows 8 I predict is going to start a new hardware revolution whereby consumers can purchase one device that does it all. Will they be cheap? Probably not but honestly who cares! Would you rather carry one device with you everywhere or three?

One? Good glad we agree. Smile

How To Build Windows Services in .NET The Easy Way with Topshelf–Part 1

Posted by Keith Elder | Posted in .Net, Windows, Windows Service | Posted on 12-02-2011


Building a Windows Service is something most .NET developers will have to do at one point or another.  While not too terribly difficult to understand and build there is a little bit of a learning curve to build one.  That’s not the hard part though.  The hard part is debugging a Windows Service.  It can be very painful.  There is an easier way that I’ve recently discovered that more developers need to know is available.  I’m talking about Topshelf.

Topshelf is a cross-platform (Windows and Mono) open source project that allows developers to build Windows Services as Console applications (which are WAY easier to debug) and then run their program as a Console application or as a Windows Service.  As if that wasn’t enough Topshelf also allows one to xcopy deploy Windows Services.  I know, crazy huh! Here is a brief walkthrough on how it works.

Step 1

Download and unzip the Topshelf files.

The current version can be downloaded from the following location:



NuGet can be used to install Topshelf if you have NuGet installed.

PM> Install-Package TopShelf


For this walkthrough I’ll assume you don’t have NuGet installed.

Step 2

Create a Console Application in Visual Studio

Step 3

Right click in Visual Studio on “References” and “Add reference” to the Topshelf.dll you just unzipped.

Step 4

Now the fun part.  Add a class to your project.  In that class add two methods called Stop() and Start().  These methods will be called when your console application is started and stopped or when the Windows Service is started and stopped.

   1: public class WordsofWisdomService

   2: {

   3:     public void Start()

   4:     {

   5:         Console.WriteLine("Starting Words of Wisdom...");

   6:     }


   8:     public void Stop()

   9:     {

  10:         Console.WriteLine("Shutting down Words of Wisdom...");

  11:     }

  12: }

To show the proof of concept all I’m doing is printing to the console when these methods are called.

Step 5

Open the Program.cs file in the project and in the main function copy paste the code below.  This will wire up the above class to Topshelf. 

This tells Topshelf all it needs to know about what will become our Windows Service including description, name and so on.  Here’s a sample, reading it should be pretty self-explanatory.

   1: static void Main(string[] args)

   2:         {

   3:             RunConfiguration cfg = RunnerConfigurator.New(x =>

   4:                 {

   5:                     x.ConfigureService<WordsofWisdomService>(s =>

   6:                         {

   7:                             s.Named("WordsOfWisdom");

   8:                             s.HowToBuildService(name => new WordsofWisdomService());

   9:                             s.WhenStarted(ls => ls.Start());

  10:                             s.WhenStopped(ls => ls.Stop());

  11:                         }

  12:                         );

  13:                     x.RunAsLocalSystem();

  14:                     x.SetDescription("This service returns words of wisdom when asked.");

  15:                     x.SetDisplayName("WordsOfWisdom");

  16:                     x.SetServiceName("WordsOfWisdom");

  17:                 });

  18:             Runner.Host(cfg, args);

  19:         }

Step 6 – Debug, Run and Install

At this point we are practically done building a Windows Service as well as an application that will run as a Console application.  To show you how simple this is I set a breakpoint in the Start() method of the class.  Pressing F5 to launch the Visual Studio debugger we can see we hit the break point.  This is gold as we didn’t have to do anything we wouldn’t normally do to debug in a Console application.


This is the awesome part about Topshelf because we can easily test our service without having to jump through a bunch of hoops.  But here is the best part.  Let’s run it directly from the command prompt and see what happens.


That’s it, our application is running and ready to do whatever it programmed to do.  The best part of this is we can now make it a Windows Service by passing a command line argument of “install” to the executable.  When doing this, it will be installed as a Windows Service.  Notice that I am running this command prompt as an Administrator. 


Not only did it install our service but it created an EventLog source for the application as well.

If you have to administrate Windows Services for developers you should be really happy right about now.

Let’s open up the services.msc console and find our service.


We have a service!

We can easily reverse the install by passing “uninstall” to the executable and the service will be removed from the system. 

But wait there is more that Topshelf can do, stay tuned, we’ll look at that in Part 2.

Change Group Policy – How To Change Screen Save Time Out in Registry

Posted by Keith Elder | Posted in Windows | Posted on 25-11-2009


Before I start this post let me say that if you follow what I’ve outlined below and it doesn’t work, don’t call me! I did this to my virtual machine and it “works on my machine”.  My virtual machine is managed by group policy at work.  Every 5 minutes the screen locks and I have to log back into the machine.  It is the most annoying thing in the world.  Thus, this is my fix for it.  Also note that I work at home and am not physically in the office.  Since I am the only one that has access to this machine I can live with myself.

Now you may say, well, if you were working Keith then you wouldn’t have to deal with the annoyance of the computer locking your screen and then having to login.  The fact is though that I read documentation on another screen outside of my VM, and am on the phone a lot and thus it locks.  Even when pair programming it locks.  Here’s how I got around this group policy to make my life normal again. 

First is open the registry editor (regedit).  Then go to this path:

[HKEY_USERS\{your SID}\Software\Policies\Microsoft\Windows\Control Panel\Desktop]

The hardest part of this is determining which one is your account where the SID is.  Look in the Volatile Environment folder under each one.  There you should see your username.  This way you know you are in the right one.  Once found, modify the “ScreenSaveTimeOut” value.  The value is the number of seconds until the screen saver times out.  I set mine WAY out.


Once saved you can open the screen saver settings and see it will wait for virtually ever now before it times out.  Notice that because of group policy I cannot change this setting through the UI but my new value is now saved.  Hooray! 


I’ll also note, that yes I do have an admin account on this machine which makes this possible.

Of course group policy is going to reset the value so export the registry setting and save it so it can be re-run easily. 

Students Get Windows 7 for $29.99!

Posted by Keith Elder | Posted in MVP10, Windows | Posted on 17-09-2009


That’s right.  Get Windows 7 for only $29.99 (offer ends January 3rd, 2010). 


Head over to http://www.win741.com/ for more information.