Category Archives : Programming

This category is designed for entries which relate to software development

Remembering Terry Pratchett

“Tech-savvy admirers of the late Terry Pratchett have hit upon an idea for a particularly appropriate memorial. It will be everywhere and nowhere, hiding in the code of the internet.

Pratchett’s 33rd Discworld novel, Going Postal, tells of the creation of an internet-like system of communication towers called “the clacks”. When John Dearheart, the son of its inventor, is murdered, a piece of code is written called “GNU John Dearheart” to echo his name up and down the lines. “G” means that the message must be passed on, “N” means “not logged”, and “U” means the message should be turned around at the end of a line. (This was also a realworld tech joke: GNU is a free operating system, and its name stands, with recursive geek humour, for “GNU’s not Unix”.) The code causes Dearheart’s name to be repeated indefinitely throughout the system, because: “A man is not dead while his name is still spoken.”

What better way to remember the beloved inventor of this fictional system, then, than “GNU Terry Pratchett”?”

Source: The Guardian

This, of course, means simply adding a HEADER value for HTTP responses in your favourite Web Server.  The header name = “X-Clacks-Overhead”, value = “GNU Terry Pratchett”.


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 1

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.