Hosted exception collection for .NET applications made easy – Exceptioneer.com

I own a company, Tiger Computer Services Ltd, which is an Independent Software Vendor (ISV) providing .NET software solutions to clients in the London area.

One of the most significant considerations when running a small ISV is the cost of supporting software in the field. For some clients, support is not a billable item, especially if the fault is within the software we have provided. This means that every time the telephone rings, we bleed money, and if we have to actually go on site to resolve an issue it gets worse.

Whether the software solution is ‘packaged’ or is a custom solution, all our clients run the software on their own equipment at their own premises.  We have never asked for VPN access into their network.  We take the view that if you cannot easily VPN into a system you have a real incentive to write reliable software that works first time and doesn’t need continuous intervention.

However, although all the clients can be reached within about one hour by public transport, an on-site visit is bad for many reasons;

  1. It costs money; either to ourselves or to the client (the latter is even worse if someone has to approve the cost in advance of the visit)
  2. It takes time, which can lead to more issues; i.e. data corruption through continued use of the software
  3. It is highly disruptive of work being undertaken for other clients

Exception handling is a good thing

This may sound obvious, but however good your programming is, it’ll generate exceptions.  It is impossible to account for all eventualities and you need to be ready to handle them and log the state of the system when they occurred.

The solutions we deliver are generally a combination of ASP.NET web applications, Windows Services (Windows Forms applications with no user interface) and usually with some database server in the background (SQL Server, MySQL or Oracle).  Our exception handling is wrapped up in a set of reporting libraries whose history dates back to before Visual Basic 6.

The reporting libraries were overhauled in the transfer to C#, and they provide a simple method for logging messages and exceptions simultaneously to the Windows Event Log, text based log file, SMTP e-mail and interactive dialogs (for Windows Forms applications with a user interface).

The libraries consist of a central reporting engine, into which various reporters are plugged and these handle all the various methods for recording exceptions.  One call to the reporting engine to display a message or exception calls all the reporters in turn.  This allows new methods of reporting exceptions to be added quickly, and for various methods to be turned off as required (such as disabling writing to the Event Log on shared hosting providers).

Whether you use the Microsoft application block, log4net or some home grown exception handling, the biggest issue is getting access to the log files or event log messages once an exception has occurred.

Without remote access, we rely on the client IT team to either take the text log file, or dump the Event Logs to a CSV file, and e-mail the file to us. Of course, this assumes that the client is already aware they have a problem, which means it has very likely started to affect their use of the application.

Proactive exception handling

In an ideal world you would receive notification automatically about any exceptions in your applications, without requiring intervention from the client.

Nothing impresses a client more than when you phone them to tell them they have an issue, and that you have already got a solution which they can implement to fix it.

Although our reporting libraries do include an SMTP e-mail reporter which can provide some of this proactive functionality it is not always possible to persuade clients that their SMTP gateway or firewall should be ‘tweaked’ to allow support e-mails out of the building.

Exceptioneer

Earlier this year I was kindly invited into a beta program for a ‘hosted exception collection’ service called Exceptioneer run by the good chaps at Pixel Programming, Phil Winstanley (a Microsoft MVP, no less) and Chris Gaskell. 

These guys write .NET applications for a living and had already created their own centralised exception collection system for their own applications, solving the issues encountered when creating this type of solution.  Realising they had something well worth sharing, they turned their system into a packaged, hosted service for other developers and Exceptioneer was born.

.NET support

Exceptioneer supports ASP.NET, Windows Forms and JavaScript (although I have yet to use the JavaScript exception hander).

Integration in an ASP.NET application is simple; reference the Exceptioneer web client assembly and add a few lines in the Web.Config and it will be reporting unhandled exceptions right away. 

For Windows Forms, you need to reference a windows form assembly and integrate the API into whatever exception handling system you are already using.  We had it integrated with our reporting engine within an hour or so.

What does Exceptioneer provide?

The management interface of Exceptioneer provides a very clean web interface, where you can view all your registered projects (limited to three in the free service), and drill down into the various exceptions which might have occurred, when the last occurred and what application generate the exception.

Repeated exceptions are intelligently grouped with drill down for further detail, including stack traces and full source code from the PDB file if you are testing a debug compilation.  You can identify the exact line causing the issue, and 75% of the time it is possible to identify the underlying cause without even starting up Visual Studio to view the source code.

Exceptioneer provides e-mail notifications, and if you are a Twitter user, Exceptioneer can even send direct messages when new exceptions occur, which tends to catch the eye even quicker than e-mails.

... and it works

Since integrating Exceptioneer with a new system deployed in September, it has proved invaluable for resolving issues (related to user input which was not being verified correctly) which would have come close to an on-site visit to identify exactly what was happening.

Even better, on most occasions we phone the client first to inform them that they had the problem (which occurred more than once) and the IT support guys were able to fix the problem before the end user actually realised something had gone wrong.

Try it yourself

Now the beta program has been completed, the service has been opened for everyone.  I recommend heading over to http://www.exceptioneer.com and registering for a free account, and giving it a spin in your own projects.
 

Hyper-V Server on a laptop - don't forget to check the power settings for the default power scheme

If you install Hyper-V Server it comes without the usual Windows Server UI. On a laptop this means there is no control panel applet or system tray battery icon available to adjust the power configuration. 

It's highly unlikely that the default option of Balanced is what you really want for hosting virtual machines, and you will ideally to set it to High Performance instead.

No need to worry, you need the command line tool, powercfg. Run the command line with the option list and then use the -setactive option with the long GUID to select your desired power scheme, as shown in the screen grab below. Job done.

Using powercfg command line utility to change the power settings

Installing a second hard drive on my HP 6910p – one step closer to a virtual machine users dream machine

I’ve previously described my reasoning for buying a business laptop like the HP 6910p, http://geekswithblogs.net/twickers/archive/2008/07/08/123643.aspx. I’m now feeling even better about that decision after the latest ‘upgrade’ to my main laptop; adding a second internal hard drive to simplify my use of virtual machines.

The problem

I use virtual machines quite regularly. One major client has a legacy application that requires Visual Studio 2003, which in turn requires Windows XP Professional as an operating system.  My daily operating system has been Windows 7 since the beta was released in January. So I created a virtual Windows XP machine with the data (source code, SQL Server 2000 databases) on a separate virtual drive image (in a ‘neutral’ VHD format).

I have run this XP/ VS2003 image in various host software; Virtual PC, VMWare workstation and VirtualBox. Currently it is running within VMWare Workstation 7 (recently released) and to improve the performance of the virtual machine, I placed both the guest operating system virtual drive image and the data virtual drive image on a separate hard drive to the host operating system.

I used a separate drive, in an external USB 2.0/eSata enclosure from Akasa. This accepts a standard 2.5” notebook drive, allowing both power and data to be handled by a single USB to mini USB cable. 

Using an external drive has it's advantages. It is very portable and you can easily take the drive with you or move it between different systems.  There is, however, one downside.  Using it on public transport, even a train, can be a bit awkward; where do you put that hard drive to stop it getting knocked?  Even at home I have been known to drop it more than once, fortunately when it was powered down, but still not ideal.

The solution

The advantage of the business laptops, like this HP series, is they usually support removable drives. In the case of HP this is called a MultiBay.  This is a simple caddy system for the optical drive, which can quickly be switched for other devices allowing easy upgrading of the optical drive, or placing the optical drive in your docking station and filling the slot with a plastic spacer to shave 150g off the overall weight of the laptop. 

I have been using one of these plastic spacers for the last six months or so, so I definitely knew that for me having a DVD/CD drive was an optional extra.  I have enough USB flash drives and external hard drives that I no longer use optical discs unless archiving.  As long as I have access to an optical drive via the laptop docking station for the odd occasion when I need one, that will do me fine.

One of the available MultiBay items is a simple hard drive caddy, which takes a standard SATA notebook hard drive and places it in a standard MultiBay format.  If you buy it from HP it arrives with a drive already in place, for what I can only describe as an extortionate amount of money.  Fortunately you can pick one up on empty version on eBay for £20, as long as you are prepared to wait a week of two for delivery from Hong Kong.

Well, I received my MultiBay caddy about 10 days ago, and in less than five minutes I had a new hard drive installed in my laptop.  It’s a joy to have an internal drive and no longer have to worry about accidently knocking it while it’s running. In daily use, running my VS2003 development VM, it’s worked beautifully. 

No longer are my host and guest operating systems fighting over access to the hard drive, and both the host and guest are smoother in use as a result.  It is a shame that the MultiBay standard is USB 2.0, so even though the drive is housed internally I don’t get full SATA transfer speeds. The only other minor niggle is that the drive activity does not cause the ‘optical drive LED’ to flash on the front of the laptop. For this you have to check the red LED on the face of the MultiBay itself, but at least you do get a drive use indicator.

Future upgrade

Of course, this has just left me wanting more.  That boot drive is very likely to be replaced by an SSD drive, and with two internal drives available.  Two drives means I can install a smaller (read cheaper) SSD drive for booting and running my development tools and applications.  The old fashioned MultiBay can handle data storage and virtual machine images.   Now all I need are 4Gb SO-DIMMs for a reasonable price so I can upgrade to 8Gb in total ....

The upgrade in images

External Akasa USB 2.0 caddy

This is the Akasa caddy I use for most of my external drives (I have four currently), the cost around £15 including the eSata, USB and ‘USB power’ cables, and can take both PATA and SATA drives.

320Gb SATA 2.5" notebook drive

I removed the 320Gb Western Digital drive from the caddy.

Original optical drive (DVD/CD) from HP 6910p

I removed the optical drive from the laptop. Note how the MultiBay ‘format’ is effectively based on the standard format for a laptop optical drive with a single extra circuit board on the rear to convert the connector to the ‘HP’ standardised connector.

My new empty hard drive MultiBay caddy

This is the £20 hard drive caddy which will slot into the laptop in place of the optical drive ...

Final configuration - hard drive moved into the new MultiBay caddy

... and here is that caddy with the hard drive in place, before slotting back into the laptop.

How to enable PowerShell in Hyper-V Server 2008 R2

After reading Tim Anderson’s blog article (here) on his installation of Hyper-V Server 2008 R2 I glibly added a comment that R2 now includes PowerShell 2.0 for local management of virtual machines using PowerShell scripts.  Of course, I hadn’t actually tried this before commenting ....

Why would you want to use scripting on Hyper-V Server 2008 R2

If you have never installed Hyper-V Server 2008 R2 you may not realise the limited options provided by the local management tool.  Based on Windows Server 2008 R2 Server Core there is no Windows Explorer and none of the standard user interface components for configuration.  Instead the Hyper-V team provide a simple menu which supports the configuration steps required to allow remote management of the server using the Hyper-V Manager MMC snap-in (available for Vista, Windows 7 and Windows Server 2008).

Hyper-V Server Local Management Tool

The real ‘local’ management tool is that old fashioned item, the command prompt,

Command Prompt

So, if you aim to manage Hyper-V Server 2008 R2 you should get used to command line tools and commands, which means having access to a scripting system like PowerShell provides a route for local management of virtual machines without requiring the Hyper-V Manager on a separate client machine.

No PowerShell by default

As stated above, Hyper-V Server 2008 R2 is based on Windows Server 2008 R2 Server Core, and it is this update that included support for .NET framework and PowerShell scripting.  Quite correctly server core locks down all functionality until it is enabled/installed.  PowerShell is one of the items that are not installed by default. 

First installation attempt

So I did a quick Google/Bing for Enabling PowerShell on Hyper-V Server 2008 R2 and got to this blog article (here) on the highly useful Virtual PC Guy’s blog. I followed the steps. No joy.

First installation attempt

Hold on - doesn’t PowerShell required .NET Framework?

I did a directory search, dir c:\windows\*powershell*.exe /s, to see if the directory path had changed, but instead of finding a PowerShell installation, I found a list of files in a directory called c:\windows\winsxs.  This directory appears to contain all the install packages for server core, and as well as PowerShell it included .NET framework installations.

This was the ‘lightbulb’ moment I was searching for. PowerShell probably won’t install because I the .NET Framework is not installed.  A big more of Google/Bing and I found the following article on Window Server 2008 R2 Server Core, on MSDN, http://code.msdn.microsoft.com/r2core/Wiki/View.aspx?title=Home&version=8

I ran the command oclist to list all the installed options,

OCList output

There, right in the middle was PowerShell being a child node of NetFx2 (.Net Framework 2.0) which suggested a dependency.  So I ran the following installation commands

   start /w ocsetup NetFx2-ServerCore

   start /w ocsetup MicrosoftsoftWindowsPowerShell

After that, I had PowerShell installed,

Installation Complete

To run it I just cd'd to c:\windows\system32\WindowsPowerShell\v1.0 and typed powershell

PowerShelll command prompt

Alternatively once you reboot the system, the PowerShell directory will be placed in the search path and you can just type powershell in any directory to access the PowerShell command prompt.

Next steps ...

In a post next week I’ll demonstrate how to use the PowerShell Management Library for Hyper-V available on codeplex (http://pshyperv.codeplex.com/) on Hyper-V Server 2008 R2 to list running virtual machines, start and stop virtual machines and do useful admin stuff like mount/dismount VHD drives.

Where has my graphic equalizer gone in Windows Media Player 12? (i.e. Windows 7)

I have used Jabra BT320s Bluetooth headsets for some time to listen to music on my desktop PC, under Vista and Windows 7.

Although all the same model, they have dramatically different maximum volume settings (which I’m guessing are hardware related in some manner).  It can be handy to use the graphic equaliser in Windows Media Player to boost the volume, especially of radio programmes I’ve recorded on my DAB radio.

When I upgraded to Windows 7 it came with Windows Media Player 12, and the graphic equaliser appeared to have gone missing from the main window.  However, it is there, you just need to know where to look.

If you just ‘play’ an MP3 track you get a default album art/visualisation windows,

Album Art/Visualisation view

Well, no equaliser there. However, it used to be on the windows where you could see the playlist, you can access this by pressing the Alt key and then selecting Show Menu Bar (actually, Ctrl+1 also works but I only found that out when researching how to get the equaliser visible).

Playlist view

Now it used to be down near the time elapsed/remaining area, but it’s not there.  Hmmmm.

So I did some Googling, and discovered it is available on the ‘mini display’ and the best way to get this is to press Ctrl+2.

No equaliser

Look , there is the icon for the equaliser, just there in the bottom right corner ...

Equaliser button

... if you click on that icon you finally get the equaliser,

Equaliser now available

Once adjusted you can hit Ctrl+1 to go back to playlist mode, or Ctrl+3 to view the album art/visualisation and the equaliser setting will remain in place.

I have no idea why they made it this hard, I really don’t.

Adobe Acrobat Reader Updates – how to save them locally for repeated use, a step by step guide

As a developer I have several machines, some of which are virtual machines which may be isolated from the general internet.  I used to get annoyed with Adobe not providing direct downloads for updates which means you have to download updates for each machine separately. 

I realise there may be good reasons for this, differentiating between different versions of operating system.  However, I do like to have the ability to rebuild a system to a known state from scratch without relying on online updates.

For this reason I quite often avoided downloading Acrobat updates, until I found out how to perform the update on one machine, capture the update files and then use these to roll out updates the various systems on which I have Acrobat Reader installed.

Step 1 – Help menu, check for Updates

Step 1 - Check for updates

Step2 – Adobe Updater progress bar should appear

Step 2 - Updater in progress
 
Step 3 – If updates are found, you have the option to click on a Preferences link

Step 3 - Click on preferences 
Step 4 - In the preferences dialog you will find a setting called File Location, this is where updates will be downloaded

Step 4 - Locate the file location for downloaded updates

Step 5 – Highlight the path, right click and copy the folder location

Step 5 - Copy the download file location 
Step 6 – Run Windows Explorer, paste in the folder location you just copied

Step 6 - Open Windows Explorer in download file location

Step 7 – Back in the Adobe Updater select the option to download and install updates, a new folder appears in Windows Explorer

Step 7 - The real download location appears

Step 8 – It is quite possible that the update will download additional patches to the main installation (and these are the patches you can never normally download directly from Adobe)

Step 8 - Multiple downloads might appear

Step 9 – You will need to copy the files from Windows Explorer once the download is complete, in Windows 7 the UAC confirmation (the small shield) halts the updater and gives you plenty of time to copy the files.  If the Adobe Updater runs automatically you need to be very quick as all the updates files are deleted once the update is complete.

Step 9 - Quickly copy those downloaded updates, the Adobe Updater deletes them after installation

Three MiFi (Huawei E5830) 3G and WiFi access point all in one, first impressions

I have been using a 3G Mobile Broadband dongle from Three [http://www.three.co.uk/Mobile_Broadband/MiFi ] for just over a year and have been very happy with the service.  It helps that I am on a half price deal and only pay £7.50 per month for 5Gb of data.  I normally don’t use the dongle that was provided, as I have internal 3G cards in both my HP 6910p laptop and my Acer Aspire One netbook.

I have found it a bit of a hassle to have to move the SIM card between the laptop and the netbook, and my poor Benq E72 Windows Mobile phone has been left in the slow lane.  It only has GPRS/EDGE when out and about, although it does have fast WiFi when at home or in the office.

When I heard about the new ‘MiFi’ unit from Huawei that combines  a 3G dongle and WiFi access point all in one package I was intrigued. Capable of connecting multiple WiFi devices to a shared 3G connection, for up to 4 hours on the internal battery, this tiny device sounded like a great solution to my problem.  I can connect my laptop, netbook and Benq E72 phone all via WiFi to a fast 3G mobile broadband connection using the same 3G SIM card.

The device is really simple, five lights give just enough information and the three buttons make life very easy,

MiFi face on

It’s hard to understand from that photograph just how small this device is, but if I put it next to a credit card you can see just how small it is.  It is not much bigger or heavier than my Benq E72 candy bar phone,  which is incredible for a 3G dongle and WiFi router combined,

It's very small

The device comes with a charger, but also charges via mini USB, so will be a doddle to top up. Using the supplied USB to mini USB lead it can be connected to a Windows PC not only to charge, but to install the 3 WiFi manager.  Similar to previous Huawei dongles, once connected a drive letter appears as if you have inserted a CD, and this contains all the drivers and software required.  This installed first time on both my laptop and netbook, Windows 7 (both x64 and x86).

You can use the WiFi manager to configure the unit, and can also treat the MiFi as a standard 3G USB dongle where you manually dial the connection so you can use it without the WiFi turned on.  As well as providing options to turn WiFi on and off, the utility provided all standard WiFi options such as changing the SSID (and hiding it) and setting a different password.  Interestingly the utility also provides access to the range of Firewall options, including a DMZ - wow!

WiFi Manager

The final feature is a microSDHC slot, which unfortunately isn’t shared between connected devices as part of the WiFi connection, but appears as a drive letter when the dongle is connected to a system with the USB lead.

I could describe how the device actually switches on and how the buttons work, but there’s a much better video review of the device from one of my friends, Ewan McLeod on Mobile Developer TV, which saves me the effort.

        http://www.mobiledeveloper.tv/?p=209

So, what are my first impressions?  This is a fantastic device; it’s incredibly simple, easy to use and just ... well, works. 

It’s available for £99 on pay as you go, and £69 for a 5Gb per month £15 rolling 1 month contract.  There is no upgrade for existing customers, so I just bought the 1 month rolling contract, which I’m cancelling so the total cost for me is £85. Bargain!

Virtualised networking issues? Sometimes it's the most obvious thing, Doh!

I just provided some help to a friend setting up a small virtualisation network on single machine, for demonstrating a new software technology at user groups and conferences.

A few tweets and e-mails went back and forth as we discussed virtual networking options, static IP configurations and using NEWSISID to enable imaging VMs from a initial 'gold' image. Getting the machines to talk to each other on an isolated virtual network was proving to be way more difficult than it should have been.

At this point I'll veer off and mention the apocryphal story regarding a Physics PhD who was visiting his parents. When he discovered that their vacuum cleaner had stopped working the day before he offered to help out. About an hour after he started his mother brought him a cup of tea in a room now strewn with vacuum cleaner parts being tested with a digital multimeter. His mother casually asked if he had tested the fuse ...

So back to the virtualisation; I had actually hit a similar scenario with my virtualisation presentations when I installed Hyper-V Server on one laptop and used a crossed network cable to connect to a second laptop running Windows Server 2008. I blamed Hyper-V Server, I blamed my static IP configuration, I blamed the crossed network cable.

I blamed all the unfamiliar things I was working with.

And the solution for me, and my friend's isolated virtual network?

The default firewall settings in Windows Server 2008 block the ping command. Yep, the thing you'll first think of to test you have the network configured correctly won't work.

I discovered this when in desperation I configured remote administration. Once a connected remotely, I knew my network configuration was definitely working, and a bit of digging later and I discovered the truth about ping under a default installation of Windows Server 2008.

The lesson learnt; it is completely natural to blame the unfamiliar first, a very human reaction. It's also more often than not the wrong attitude, especially with new computer technologies.

Liam

P.S. Disabling the ping command follows the Microsoft goal of locking down server operating systems to be secure out of the box, and letting administrators enable services and firewall items when they are required. This is a good thing, and I definitely don't want this post to suggest otherwise. We just need to remember, no ping by default and get over it.

Hyper-V for Developers - presentation from Edge UG 16 September 2009

Thanks to Ray and Gavin for organising another top EdgeUG meeting in Microsoft Cardinal Place and for everyone who attended my talk on Hyper-V for Developers. The audience had to deal with a huge amount of technical information that I crammed into the hour - hopefully it didn't put them off their pizza. 

Fortunately the Stack Overflow master and author of C# in Depth, Jon Skeet, was on hand after the break for a interesting glimpse into code contracts coming with VS2010 and C# 4.0. 

For those who weren't there last night, the presentation provides an overview of Hyper-V Server 2008 and Windows Server 2008 running Hyper-V, tools that you can install to help you out, how Snapshots work and finally automation of Hyper-V using the PowerShell library for Hyper-V as might be used in CI (continous integration) server.

I've got two version of the slidedeck, one in PowerPoint, hyperv4dev-ppt.zip, and a PDF version complete with speaker notes that contains all the interesting stuff including the PowerShell script, hyperv4dev-pdf.zip.

Thanks again to the guys from EdgeUG and all those who joined us down the pub afterwards for a beer and a chat.

Liam

P.S. Jon mentioned that Microsoft has decided that static checking of Code Contracts should be limited to the Team System versions of Visual Studio 2010. Here is a link to the Microsoft Connect request to reverse this blinkered approach and place static checking into Visual Studio Professional edition;

   https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=481327

Do please vote on t his topic and let Microsoft know what you think, hopefully it 's not too late to reverse this marketing decision.

I wouldn't buy a phone that didn't charge off USB because ...

I recently bought a new Windows Mobile phone, Benq E72, and one reason it won over a Samsung model is the standard mini-USB connector for data and charging (hint, hint, Nokia).

Why does this matter? Apart from charging off any laptop, and off an 4 x AA battery pack I already have for emergency charging, it can even charge off the weirdest devices.  Here it is with a standard USB to mini USB lead charging from my Philips DVD recorder which has a USB port for displaying photos and playing MP3s.

Benq E72 charging from Philips DVD player

If you need a clearer image of the phone screen try here.

I'm always stunned by phones with a mini USB port but can't charge from it (Nokia's, until recently), even more by phones with a mini USB port that will only charge from their own charger (Alcatel). Not counting the worse offenders, phone manufacturers who connect via USB but have customer connectors (Samsung, it's you I'm looking at) that lock you to the one and only charger you get with the unit.

Hyper-V for Developers - presentation from DevEvening 13 August 2009

Thanks to Alex and Matt for organising another top DevEvening user group in Woking and for everyone who attended my talk on Hyper-V for Developers. Apologies for over running and hope it didn't stop you from enjoying your meals.  I think I achieved a good warm up for

For those who weren't there last night, the presentation provides an overview of Hyper-V Server 2008 and Windows Server 2008 running Hyper-V, tools that you can install to help you out, how Snapshots work and finally automation of Hyper-V using the PowerShell library for Hyper-V.

I've got two version of the slidedeck, one in PowerPoint, hyperv4dev-ppt.zip, and a PDF version complete with speaker notes that contains all the interesting stuff including the PowerShell script, hyperv4dev-pdf.zip.

Thanks again to the guys in Woking, and for or helping me polish off a bottle of nice wine on the way back to London.

Review: DisplayLink USB to DVI adapter, adding an external display to a laptop or desktop

DisplayLink USB

Last week I wrote a review of a Kensington USB docking station which included DisplayLink technology to allow an external display to be added to a laptop via a USB 2.0 port.  I described how I used this docking station to enable the holy grail of three external screens on my laptop.  You can read about it here,

   http://geekswithblogs.net/twickers/archive/2009/06/03/132579.aspx

Declaring an interest

On publishing, I promoted the blog post via Twitter where recently someone had bemoaned the inability of a laptop to support more than two displays.  I was curious to see if DisplayLink might follow me on Twitter, and checked to see if they had an active account.  When I discovered they had no account, I created a DisplayLink account and sent the guys at www.displaylink.com the username and password so they could keep it safe for future use.

The next day, the marketing guys at DisplayLink sent me an e-mail thanking me for setting up the Twitter account.  Also, as a gesture of appreciation they requested my address so they could send out a USB to DVI adapter based on their DL-160 chipset. 

So a big thanks to DisplayLink for enabling me to review the DVI version.

Hardware

Unlike the Kensington docking station which incorporated a USB 10/100 network chip, 4 port hub and USB audio, this is a dedicated display unit.  It’s wonderfully compact compared to the full docking station, approx 10cm x 5cm.  Connecting to the PC via a standard mini USB lead, it is self powered via USB, with video displayed using a DVI connector.

DVI Connector

DVI Connector
Mini USB connector

Mini USB Connector

(I placed a measuring tape next to the adapter sio you can see just how small it is, the tape measure is locked at 10cm)

Software

The software was identical to that used for the Kensington docking station (see previous blog post for details), I just left the old driver in place.  When I booted up Windows 7 RC there was a ‘New Hardware Device’ pop up for a few seconds, after which the DisplayLink adapter worked immediately, appearing as my display number 3 on my desktop.

Being a DVI output, the image was crisp and rock steady first time, with no need to adjust the display.  If anything it looked slightly brighter with better contrast on my test 17” display compared to the analogue version in the docking station, but that is most likely due to the monitor settings.

Conclusion

My third monitor, a 17” Sharp model, while great on the DVI connection, is slightly fuzzy when displaying analogue VGA, so having a DVI version of DisplayLink is a great solution for my setup.

The small size of the dedicated adapter really sells itself to those who spend their life fighting with projectors at client sites.  Having a couple of these, for both analogue and DVI solutions means you could guarantee best connectivity.

I’m tempted to lend the unit to a friend who regularly finds Windows 7 RC on his Mac Air struggles to connect to projectors at anything above 640 x 480 to see if this could solve the problem. I suspect it might.

It’s one of those rare IT products. It does a single job, really well, with the minimum of effort to install.

Review: Three external screens from a single laptop with help from DisplayLink

As a developer I’ve become used to multiple monitors to increase my productivity.  Debugging applications is much easier when one monitor is running Visual Studio and a second monitor is displaying the application being debugged, or SQL Management Studio, or your Locals window.

When I plugged my latest HP 6910p laptop into the docking station I was amazed to find that it supported dual external displays; both the DVI and analogue VGA ports can be active simultaneously.  It’s a real advantage to get off the laptop display which I never find ideal when working at a desk.  You really need the two monitors to be arranged side by side rather than above each other.  This places the laptop much further away than normal and makes the screen hard to read. 

I’ve been using dual 17” monitors at 1280 x 1024 with my laptop/docking station combination for some time.  A few months ago I bought a 24” HD screen, 1920 x 1080.  The ‘spare’ 17” monitor was relegated to my old desktop system, used for monitoring Outlook and Messenger and for Media Player duties.

If only I could have all three screens connected to my laptop ...

Enter DisplayLink

For some time, there have been proprietary graphics solutions for laptops which use PC Cards using the CardBus and Zoomed video abilities.  Effectively you are adding a new graphics card to the system.  These tended to be expensive and there was always the worry about driver availability for new operating systems.

DisplayLink takes a different route to enabling an external display by using a USB 2.0 interface.  A desktop graphics driver delivers compressed video to a dedicated hardware decoder which has an analogue VGA output.  Not only does this make it available to any laptop with USB 2.0, it also supports desktop systems without upgrading the main graphics card.

Cheap route to DisplayLink

I’d actually been following the progression of DisplayLink for some time in various www.pcpro.co.uk reviews, from the expensive Village Tronic ViBook (http://www.pcpro.co.uk/reviews/244438/village-tronic-vibook.html?searchString=vibook) at £130 to the more reasonable Kensington Dual Monitor Adapter (http://www.pcpro.co.uk/reviews/246230/kensington-dual-monitor-adapter.html?searchString=kensington) at £60.

Also, companies like Samsung have been selling external monitors which include smaller secondary screens powered by DisplayLink, as well as high end digital photo frames which include DisplayLink connectivity.

However, one of the PC Pro reviews included the comment it might be a better idea to search eBay for a Kensington USB docking station which supports video as these are normally available for less than the dedicated solutions.

 My hardware

I spent a few months on eBay tracking Kensington docking stations with video, for the ‘right price’, and last week I finally won one in an auction for £20.  The unit came with a power adapter, USB lead and the actual docking bar itself.  In addition to DisplayLink the bar provides a 4-port powered USB 2.0 hub, audio and 10/100 networking

Docking Station - Front

Docking Station - Front

Docking Station - Back

Docking Station - Rear


The great news is that if all you are using is the DisplayLink connecter there is no need for the power adapter as the USB 2.0 connection provides the power.

The laptop is a HP 6910p (with 128Mb ATI Mobility Radeon X2300), 2.2GHz Core Duo, 4Gb RAM, with the advanced docking station providing simultaneous DVI and VGA outputs by default when the laptop lid is closed.

Drivers for Windows 7 RC 64-bit

One of my criteria for using DisplayLink was that the software had to work under Windows 7 as, since the beta release this has become my day to day operating system on my laptop.  Even worse, it is a 64-bit installation which always makes one more wary of driver compatibility.

The good news was that the software drivers are available from the guys who make the hardware chip at http://www.displaylink.com rather than from Kensington.  I thought I might be able to use a Vista 64-bit driver, but on the driver download page was a warning that it was not compatible with Windows 7.  But right next to that warning was a link to a specific Windows 7 Preview driver.

By the time I finally won a Kensington docking station from eBay at the ‘right price’ my laptop had been upgraded to Windows 7 RC and the DisplayLink Windows 7 driver software had also been updated to a new release on 3 April 2009.

As with most USB devices, I ran the driver setup first (no reboot required) before plugging in the docking station.  Various new hardware devices were detected, including the DisplayLink adapter. Only an AX88772 device wasn’t recognised, the ASIX USB 2.0 LAN controller.

A quick right click on the desktop, Screen Resolution, and there were three monitors on one laptop.

Screen Resolution Dialog

I enabled the monitor and took my first photo of three monitors running live on one laptop.

Three monitors rocks !

 

DisplayLink utility

Although you can configure the resolution and layout of the monitors within the standard Screen Resolution dialog, there is a special DisplayLink utility.  This is installed during the driver setup but on my system was not added to the Start Menu.  I found the utility files in, \Program Files\DisplayLink Core Software.  Running DisplayLinkUI.exe provides a new icon in the system tray/notification area where you can control the DisplayLink specific options.

DisplayLink - Colour Depth

Colour Depth
DisplayLink - Resolution

Resolution
DisplayLink - Rotation

Rotation Options



During writing this blog post I decided to test whether the standard Windows 7 screen rotation options could be used instead of the DisplayLink utility menu.  Big mistake, my other two displays went blank and it took a few dock/undocks and a DisplayLink driver uninstall and reinstall to get everything back to normal.  Admittedly both Windows 7 and the DisplayLink drivers are both beta software so I’ll forgive them as long as the final releases work as expected.

CPU utilisation

The big downside with DisplayLink is that it uses the system CPU to compress the video it is sending to the hardware decoder.  Kensington recommend at least a dual core CPU running at 1.2GHz and above.  You do notice a bit of screen lag compared to the ‘real’ monitors but for applications like Outlook and Messenger work fine.

I decided to do a bit of simple benchmarking using Task Manager, tracking the core Display Link process, DisplayLinkManager.exe (you need to click on Show Process From All Users to view this).

Here are the results of my simple CPU utilisation tests,

Outlook and Messenger running in background                 < 1%

Windows Media Player playing MP3 files                              10%

bbc.co.uk iPlayer video within a web page                           15%

(Turkish Grand Prix 2005)

Windows Media Player MPEG4 video                                     30%

(Sebastien Lambla ASP.NET MVC best practices from VistaSquad user group)

Conclusion

What I wanted was a simple and cheap solution to providing a third display for my laptop which could handle background applications such as Outlook, Messenger or Twitter without compromising general performance.  I’d say DisplayLink has achieved that with an elegant solution to a simple problem, all for £20 delivered thanks to eBay.

 

BSI Role of Virtualisation in Green IT - presentation now available

For all who were at the BSI Green IT conference on 19th May, here is my presentation for download, in PowerPoint PPT format

http://www.tigernews.co.uk/blog-twickers/bsi/virtGreenIt.zip

DDD Scotland - Virtualisation for Developers presentation

Thanks to all the guys who turned out to the first presentation of the day at DDD Scotland where I gave my presentation, Virtualisation for Developers. As promised you can download the PowerPoint slide deck using the link below. Check out the speaker notes for all the resources and URLs I mentioned along the way.

http://www.tigernews.co.uk/blog-twickers/dddscot/virt4dev-DDDScot.zip

Thanks again for inviting me up to speak at DDD Scotland and creating a fantastic event.

UPDATE

And a video of an earlier version of this present, given at DDD7, is now live at, http://www.craigmurphy.com/blog/?p=1591