IanG on Tap

Ian Griffiths in Weblog Form (RSS 2.0)

Blog Navigation

August (2014)

(1 item)

July (2014)

(5 items)

April (2014)

(1 item)

March (2014)

(1 item)

January (2014)

(2 items)

November (2013)

(2 items)

July (2013)

(4 items)

April (2013)

(1 item)

February (2013)

(6 items)

September (2011)

(2 items)

November (2010)

(4 items)

September (2010)

(1 item)

August (2010)

(4 items)

July (2010)

(2 items)

September (2009)

(1 item)

June (2009)

(1 item)

April (2009)

(1 item)

November (2008)

(1 item)

October (2008)

(1 item)

September (2008)

(1 item)

July (2008)

(1 item)

June (2008)

(1 item)

May (2008)

(2 items)

April (2008)

(2 items)

March (2008)

(5 items)

January (2008)

(3 items)

December (2007)

(1 item)

November (2007)

(1 item)

October (2007)

(1 item)

September (2007)

(3 items)

August (2007)

(1 item)

July (2007)

(1 item)

June (2007)

(2 items)

May (2007)

(8 items)

April (2007)

(2 items)

March (2007)

(7 items)

February (2007)

(2 items)

January (2007)

(2 items)

November (2006)

(1 item)

October (2006)

(2 items)

September (2006)

(1 item)

June (2006)

(2 items)

May (2006)

(4 items)

April (2006)

(1 item)

March (2006)

(5 items)

January (2006)

(1 item)

December (2005)

(3 items)

November (2005)

(2 items)

October (2005)

(2 items)

September (2005)

(8 items)

August (2005)

(7 items)

June (2005)

(3 items)

May (2005)

(7 items)

April (2005)

(6 items)

March (2005)

(1 item)

February (2005)

(2 items)

January (2005)

(5 items)

December (2004)

(5 items)

November (2004)

(7 items)

October (2004)

(3 items)

September (2004)

(7 items)

August (2004)

(16 items)

July (2004)

(10 items)

June (2004)

(27 items)

May (2004)

(15 items)

April (2004)

(15 items)

March (2004)

(13 items)

February (2004)

(16 items)

January (2004)

(15 items)

Blog Home

RSS 2.0

Writing

Programming C# 5.0

Programming WPF

Other Sites

Interact Software

Ten Years

Tuesday 7 January, 2014, 04:15 PM

This blog has been running for ten years as of today!

I’m only counting elapsed time, of course. It ground to a halt a couple of years ago—there are no entries for 2012! In my defence, my first child was born around that time, and I also moved house twice. Oh, and I wrote a book—a complete rewrite of Programming C#.

(Apparently I didn’t get around to blogging about the book! Oops. Well better late than never. If you happen never to have looked at it, it’s a very different animal from the previous editions of that title. I wrote the book I would want to read, so it’s a book for people who already know how to program, and are looking for a lot of in-depth information.)

Anyway, even though I can’t claim 10 years of continuous blogging—it’s more like about 8.5 years spread across a 10 year interval—I didn’t want to let this anniversary go completely unmarked. So here are some random thoughts inspired by this decimal milestone.

Homebrew Blog Engine

The code that serves up this blog may have enjoyed greater longevity than anything else I’ve written. (I could be wrong—I worked on various embedded systems in the 1990s and early 2000s which might, for all I know, still be going. But it’s certainly the longest running software for which I’ve been responsible over its entire lifetime. I may even add support for comments any decade now.) I wrote it back at the end of 2003, partly as a way of learning about ASP.NET, and partly because I was deeply unsatisfied with the URL handling that most blog engines of the time offered.

I’ve been using the code I wrote back then with only minor modification ever since. It has moved servers a couple of times—initially it was on a shared ASP.NET host, then on a dedicated Windows 2003 server up until last year (!) when I finally moved it over to Azure. There were a couple of minor modifications to upgrade from .NET 1.1 to 2.0, and then to 4.5, but not much else has changed.

Loose Ends

I’ve just been browsing through the archive. (You can see entire years at a time by cropping URLs by the way, e.g. http://www.interact-sw.co.uk/iangblog/2004/ http://www.interact-sw.co.uk/iangblog/2005/ etc.) I realise I never answered the question I posed in http://www.interact-sw.co.uk/iangblog/2004/05/03/angryspacebaboon so, better late than never: this was an attempt to render something similar to Adobe illustrator gradient meshes as a triangle mesh in DirectX (with wireframe mode enabled so I could inspect it more closely). At the time I was frustrated by the relatively small repertoire of gradient fill types in WPF (or Avalon as it was called back then). Mind you, more recent versions of XAML have seen fit to reduce the options further still!

Foolish Predictions

I notice that in 2004 I was rash enough to make a prediction. In http://www.interact-sw.co.uk/iangblog/2004/05/20/endofmooreslaw I referred to Craig Andera’s prediction (a year or so before Herb Sutter’s The Free Lunch Is Over article) that the exponential speed increases we’d hitherto enjoyed in computing would shortly be ending. He got that right. With the exception of highly parallelizable work (e.g. video encoding) that can exploit all your cores (8, on my current machines), the speed increase with each new computer purchase has been marginal since that time. Up to around 2003/2004, each new computer was around twice as fast as its predecessor, and you felt a profound difference every time. But these days, a new machine feels like a very minor upgrade. (Strangely, the popular press still hasn’t noticed this. I still see frequent references to exponential speedups, particularly in the context of predicted ‘singularities’ in which AI becomes intelligent enough to build better AIs, and the machines take over. The fact that computers settled into the S-shaped fate of all technologies around a decade ago has done nothing to dampen these exponential dreams.)

But that was Craig’s successful prediction. Mine was that spinning disks with their very slow seek times would be superseded by technology that could respond orders of magnitude more quickly, and that this would be game changing. Well I was maybe as much as half right. I was a relatively early adopter of SSDs, and have considered them to be a non-negotiable feature of any system I buy for about 5 years now. And these do indeed have seek performance several orders of magnitude faster than conventional spinning disks. However, these don’t seem to have been the game changer I anticipated. It would be closer to the truth to say that these have provided one last speed boost that feels similar to what I used to get every two years back when we could expect to ever-faster clock speeds. It was good, but not the fundamental shift I was expecting. And depressingly, there’s nothing on the horizon promising any similar kind of improvement any time soon.

Moreover, storage latency is at least a big a deal as it always was, mainly because these days, your important storage is probably somewhere else. For code running in the cloud, you’re likely to be using a storage service that’s a network hop away. And even for client-side code, chances are your data’s home is some service out on the internet. These storage mechanisms often have latency that make 1990s hard disks look fast.

What SSD has provided, the Internet has taken away.

A Personal Favourite

I thought I’d finish by posting a link to one of my favourite posts. I really enjoyed writing this one: http://www.interact-sw.co.uk/iangblog/2004/12/16/movingpictures which is about some of the subtle aspects of high quality video rendering.

Copyright © 2002-2013, Interact Software Ltd. Content by Ian Griffiths. Please direct all Web site inquiries to webmaster@interact-sw.co.uk