"All problems in computer science can be solved by another level of indirection"
"... except for the problem of too many levels of indirection"

- David Wheeler


More Productive C++ with TDD


The title might read a little like click-bait, and there are certainly some nuances and qualifications here. But, hey! That's what the article is for.

Those that know me know that I have been a practitioner of, and advocate for, TDD in C++ for many years. I originally introduced Catch in an attempt to make that easier. I've given many talks that touch on the subject, as well as giving coaching and consultancy. For the last year I've added to that with a workshop class that I have given at several conferences - in both one-day and two-day forms (at CppCon you can do either!).

...continue reading

East End Functions


There has been a recent stirring of attention, in the C++ community, for the practice of always placing the const modifier to the right of the thing it modifies. The practice has even been gifted a catchy name: East Const (which, I think, is what has stirred up the interest).

As purely a matter of style it's fascinating that it seems to have split the community so strongly! There are cases for and against, but both sides seem to revolve around the idea of "consistency"

...continue reading

The World's First Distributed C++ Meet-up (*)


(* Probably)

Last week my London based C++ user group, C++ London, joined forces with SwedenCpp, based in Stockholm, for a distributed event where we shared video streams with each other. The whole thing was hosted by King, who took care of the audio-visual link up, so we just had to organise the speakers.

We did this as a series of lightning talks (5 or 10 minutes each) - 5 in Stockholm and 7 in London.

This was an experiment. The idea was that, if successful, we could do more like this

...continue reading

Older posts


3rd November 2017 Catch2 Released
19th January 2017 Catch Up
28th December 2016 C++17 - Why it's better than you might think
22nd December 2016 On joining JetBrains
8th July 2015 A Game of Tag
1st May 2015 Naming is hard - or is it?
7th October 2014 Modern C++ Testing
1st February 2014 The Future Of Computing
13th December 2013 Optional streaming
7th September 2013 The Minimum Viable Wiki
11th July 2013 Injecting Singletons in Objective-C Unit Tests
28th June 2013 Catch 1.0
26th December 2012 TDD - is it worth it?
20th April 2012 Upcoming speaker engagements
12th January 2012 Finesse
15th June 2011 Could the Internet please stop changing while I finish this blog post?
27th May 2011 Unit Testing in C++ and Objective-C just got ridiculously easier still
28th December 2010 Unit Testing in C++ and Objective-C just got easier
6th October 2010 The iPad reconsidered
30th September 2010 The iPad - two ... no, fifteen, weeks in
20th August 2010 Welcome to the new decade
13th August 2010 OCPtr - a Smart Pointer for Objective C
13th August 2010 We Don't Need No Stinking Garbage Collection
21st May 2010 The Ultimate C++ Unit Test Framework
9th May 2010 iPhone Multitasking Revisited
5th March 2010 The 80s called; they want their memory manager back!
2nd March 2010 Interlude
31st January 2010 Why the iPad may never need multi-tasking
30th January 2010 What *I'll* be using the iPad for
27th January 2010 What is the iPad for?
11th November 2009 Code formatting in C++ Part Three
4th November 2009 Apple's "Magic Mouse" - just sleight of hand?
31st October 2009 DevDays slides
30th October 2009 Stackoverflow DevDays London
10th October 2009 Using a networked drive for Time Machine backups (on a Mac)
5th October 2009 Code formatting in C++ Part Two
24th September 2009 Code formatting in C++ Part One
24th September 2009 Elegant XML parsing with Objective-C
24th September 2009 ACCU 2009 Conference
24th September 2009 RAII and Readability in C#
24th September 2009 The move to Squarespace
17th February 2009 Getting at pixel data from a UIImage for iPhone dev
18th June 2007 RAII and closures in Java