Category Archives : Programming

This category is designed for entries which relate to software development

Home Office – Personal Development Space

It doesn’t seem to be discussed too much, but I think there’s great value in establishing a quiet, comfortable space in your home environment where you can work and focus. 

As a developer or architect your environment has a large impact on your creativity, your thinking and ability to concentrate.  Therefore, it’s worth spending some time examining under what conditions you perform the best.  In that vein, I’d like to invite you on a brief tour of my current workspace.

I work from home from time to time, and as a result have “requisitioned” a room as a home office.  As I perform large scale architectural work these days (i.e documentation and conceptual design), my work style and work space needs have changed slightly.  I’ve also needed to accommodate the occasional incursions by my two wonderful boys and occasionally my wife too.

Over the years [2009] as we’ve moved around, I’ve had evolving home office configurations – here’s a brief review of my current setup.

My Desktop


My desk has become noticeably cleaner (basic) and clutter-free in the new house.  This is partially because the boys will tend to climb up onto the desk and “liberate” any desk ornaments.  I also rather enjoy the clear space.  The only non-standard accessory might be the Polycom small office conference phone for long teleconference meetings. 

Oh yeah, and a 31” Stormtrooper, naturally.

I’ve parted with some serious cash to obtain a mechanical keyboard and gaming mouse because I use them quite heavily, and the backlit keyboard is simply brilliant if when I work in low light – typically late at night, to not disturb the boys who sleep in the next room. 

I’ve retained two high definition speakers from my old Boomtube™ portable speaker system and coupled them to a fairly ordinary TDK stereo amplifier (which used to be in the kitchen).  The amp has a handy headphone jack so I can plug in headphones when needed.


There’s a couple of small frames to keep me company (screened off in these photos) and really not much else of note.  Below the stern gaze of the Stormtrooper, sitting on top of a side table, is my old Sony turntable which is connected to the workstation underneath the desk.  Underneath that is my old (American) football helmet, and a leather backed two-volume copy of the complete Far Side by Gary Larson – not photographed.

The Office

Visitor CentreBookshelf

The view from the desk isn’t too shabby either – I’ve got a reasonably comfortable blue leather single seater for guests (or kids) and (temporarily) a rocking chair as well as two very tall wooden bookcases filled to the brim with collectables and odds and ends.  The top of the bookcase is adorned by a reasonably sized Lego™ city.

I also have a large whiteboard behind the study door, which is used to do basic diagramming and designing.  So that’s basically it – in days gone by I would have had half a dozen machines, a KVM and 5.1 or 7.1 surround sound.  These days I’ve gone for a less compact, larger space workspace with comfort and minimal clutter in mind.


Strangely enough, I feel like I’ve matured my workspace into something comfortable and spacious compared to some of my previous home offices.  By moving most of the “office tech” (server, NAS, networked printer) into a spare room, I’ve created a lot of clear space so that it doesn’t feel too cramped.

There’s only one computer in the room (under the desk) and one router which is obscured in a corner.  The emphasis is on the work space, and since the room needed to be kiddie-proof, most of the desk clutter has been removed.

How does your work space compare?  Do you prefer space, or do you work better in a compressed but highly organised area?  What do you have in your office which provides you with inspiration for ideas and designs?  Please comment.

IIS 8.5 Dynamic Compression Issue

Windows Server 2012 R2 comes with IIS 8.5, and in this release an issue has been found in relation to the Dynamic Compression module.  The module sets the “Vary” header which is used to specify caching properties that the browser uses to determine whether the response should be cached or not. 

In IIS 8.0 and earlier, the Dynamic Compression module was overwriting the Vary header with the value “Accept-Encoding”, and as it happens this is the correct value to ensure that dynamic content is correctly cached – but – according to IIS it should be appending this value to the existing value and not overwriting it.

As it happens, this was supposed to be fixed in IIS 8.5 but the fix appears to be broken.   In IIS 8.5 (which ships with Windows Server 2012 R2) the Vary header is being set to “*” and the “Accept-Encoding” from the Dynamic Compression module is not appended.  The result of this is that no dynamic content is being cached by the browser.


Thankfully there is an easy workaround in IIS 8.5 for this:

1. Select an IIS site, and go to Configuration Editor.


2. Select system.web/caching/outputCache section, then set the omitVaryStar property to true



Setting this value results in the Vary header being returned with a value of “Accept-Encoding” and the browser then caches the dynamic content.

Bad disk – but which one?

You might be unlucky enough to occasionally run into issues with a hard drive which has issues, and Windows will attempt to warn you via the System Log.  However, as the issues are logged from a low level (below the UI level), the disk identifier can be a bit cryptic.  Here’s an example:

“The device, \Device\Harddisk5\DR5, has a bad block.”


Which might be a little less than helpful, especially if you mainly know your disks by their assigned drive letters.  Fortunately, there’s a Microsoft KB article on this topic:

However, that’s a bit dated.  After trawling through some forums, I found a really succinct translation in an answer on this thread:


DR# means drive, removable, and then the number Windows 7 has assigned that removable drive. # is the USB host controller ID assigned by Windows during setup. If you switch your HD to another USB port, the number should change.

In my case, this translation was spot on.  I had an external drive attached which actually had faulted and I was in the process of data recovery and (ultimately) a reformat:


So if you’re reading this – condolences – and I hope this article has helped you find the drive which is causing you some grief.  For help with disks, check out this page of really useful free disk data recovery tools.

I’ve been using TestDisk quite successfully, although it isn’t for a novice user.  If you’re not sure what you’re doing, read the documentation very carefully!

If you want to read an inspired answer on Server Fault, the first answer is enlightening.