Coding and Dismantling Stuff

Don't thank me, it's what I do.

About the author

Russell is a .Net developer based in Lancashire in the UK.  His day job is as a C# developer for the UK's largest online white-goods retailer, DRL Limited.

His weekend job entails alternately demolishing and constructing various bits of his home, much to the distress of his fiance Kelly, 3-year-old daughter Amelie, and menagerie of pets.


  1. Fix dodgy keywords Google is scraping from my blog
  2. Complete migration of NHaml from Google Code to GitHub
  3. ReTelnet Mock Telnet Server à la Jetty
  4. Learn to use Git
  5. Complete beta release FHEMDotNet
  6. Publish FHEMDotNet on Google Code
  7. Learn NancyFX library
  8. Pull RussPAll/NHaml into NHaml/NHaml
  9. Open Source Blackberry Twitter app
  10. Other stuff

Editing JPEG Photos Without Recompressing - Part 1

Hi all,

A bit of a departure from the norm today, I've just spent the afternoon having a whale of a time with a good mate of mine, talking guitars, web programming, a bit of home automation, and at some point the subject of time lapse photography came up. But wait, isn't this a coding blog? What the heck's this got to do with code!?

Okay, some background first. My friend is fortunate enough to have a view from his window over the beautiful countryside surrounding Preston, out towards the coast. For a year now, he's had a digital camera trained on said countryside, taking a photo every minute. 12 months and half a million photos later, he's discovered a problem. Some of his photos need touching up, and by some I mean a LOT. Here's where the coding comes in.


Categories: Hacking
Permalink | Comments (0)

Four Of The Best Linq Extension Methods

If you've read any of my previous blog posts, you might have the feeling that I absolutely love Lambdas in .Net, they're just plain awesome. Get a good handle on Lambdas, and you can chuck out a good wedge of your crummy old nested "foreach" statements. When the language feature first came on the scene, Lamdas seemed (to my eyes at least) to be confined to the world of Linq extension methods. Since then of course there's been a plethora of tools that have jumped on, such as Fluent NHibernate and Moq, but there's still plenty of life in the ol' Linq extension method yet! Here are my top four linq extensions, the lifesavers that I keep coming back to.


Categories: Architecture
Permalink | Comments (0)

"The Rules" Part 1 - Single Responsibility Principle

Over the last few years, my experience of being a software dev has changed massively. I've not changed the language I code in, I've not changed what I'm trying to achieve, the change has purely been a move from coding on my own, to coding as part of a team.

Previously, my number one concern was "Does this code produce the right end result". Today, I balance this with the need for clean and reliable code. Now that I work as part of a team, I see that code needs to do more than just work. It needs to work reliably, it needs to be resilient in the face of unanticipated change, and it needs to be trustworthy in the eyes of my colleagues.

This should be the first of a couple of blog posts looking at different ways I'm striving to write resilient code. My four planned posts are:

  • Single Responsibility (this one)
  • Command-Query Separation
  • Tell Don't Ask
  • The Law of Demeter

If anyone can suggest anything to add to this list (Open-Closed principle and Design By Contracts are on the edge of my mind somewhere), please let me know in the comments below.


Categories: Architecture
Permalink | Comments (0)