Publications

Over the last few years I've written a large number of magazine articles and a book, Code Craft (which you can find out about on this page). To some people that's a really big deal. It makes other people yawn.

The articles have mostly appeared in ACCU magazines, and are available through the ACCU (if you're a programmer not in this organisation, join it - it's excellent). Some have appeared in CUJ and other publications.

I've also written quite a lot of book reviews. Check out Pete Goodliffe's book reviews, as published in C Vu.

Books 

Becoming a Batter Programmer and Professionalism in programming series

 This is a column that I've been writing for the ACCU's C Vu magazine. It investigates issues of "professionalism" surrounding programming. In early 2011 I changed the name to Becoming a Better Programmer as it more clearly reflects what I write about.

  1. Layout of source code
    in: C Vu Volume 12 No 2, April 2000
  2. Team work
    in: C Vu Volume 12 No 3, June 2000
  3. Being specific
    in: C Vu Volume 12 No 4, August 2000
  4. Code reviews
    in: C Vu Volume 12 No 5, October 2000
  5. Documenting code
    in: C Vu Volume 12 No 6, December 2000
  6. Good design
    in: C Vu Volume 13 No 1, February 2001
  7. in: C Vu Volume 13 No 2, April 2001
  8. The programmer's toolbox
    in: C Vu Volume 13 No 3, June 2001
  9. Defensive programming
    in: C Vu Volume 13 No 4, August 2001
  10. Software testing
    in: C Vu Volume 13 No 5, October 2001
  11. Software development: Fantasy, fiction or farce
    in: C Vu Volume 13 No 6, December 2001
  12. Recipe for a program
    in: C Vu Volume 14 No 1, February 2002
  13. How long is a piece of string?
    in: C Vu Volume 14 No 2, April 2002
  14. There and back again
    in: C Vu Volume 14 No 3, June 2002
  15. The outer limits
    in: C Vu Volume 14 No 4, August 2002
  16. in: C Vu Volume 14 No 5, October 2002
  17. The code that Jack built
    in: C Vu Volume 14 No 6, December 2002
  18. Engineering a release
    in: C Vu Volume 15 No 1, February 2003
  19. A passing comment
    in: C Vu Volume 15 No 2, April 2003
  20. Software evolution or software revolution?
    in: C Vu Volume 15 No 3, June 2003
  21. Software architecture
    in: C Vu Volume 15 No 4, August 2003
  22. Finding fault
    in: C Vu Volume 15 No 5, October 2003
  23. To err is human
    in: C Vu Volume 15 No 6, December 2003
  24. The need for speed (part one)
    in: C Vu Volume 16 No 1, February 2004
  25. The need for speed (part two)
    in: C Vu Volume 16 No 2, April 2004
  26. The need for speed (part three)
    in: C Vu Volume 16 No 3, June 2004
  27. And now for something completely different...
    in: C Vu Volume 16 No 4, August 2004
  28. An insecurity complex (part one)
    in: C Vu Volume 16 No 5, October 2004
  29. An insecurity complex (part two)
    in: C Vu Volume 16 No 6, December 2004
  30. Code Monkeys (part one)
    in: C Vu Volume 17 No 1, February 2005
  31. Code Monkeys (part two)
    in: C Vu Volume 17 No 2, April 2005
  32. An exercise for the reader
    in: C Vu Volume 17 No 3, June 2005
  33. A review to a kill
    in: C Vu Volume 17 No 4, August 2005
  34. Together we stand (part one)
    in: C Vu Volume 17 No 5, October 2005
  35. Together we stand (part two)
    in: C Vu Volume 17 No 6, December 2005
  36. Together we stand (part three)
    in: C Vu Volume 18 No 1, February 2006
  37. The curse of good code
    in: C Vu Volume 18 No 2, April 2006
  38. Mental gymnastics
    in: C Vu Volume 18 No 3, June 2006
  39. Effective version control (part one)
    in: C Vu Volume 18 No 4, August 2006
  40. Effective version control (part two)
    in: C Vu Volume 18 No 5, October 2006
  41. Effective version control (part three)
    in: C Vu Volume 18 No 6, December 2006
  42. Programming is...
    in: C Vu Volume 19 No 1, February 2007
  43. Playing by the rules
    in: C Vu Volume 19 No 2, April 2007
  44. How professional are you?
    in: C Vu Volume 19 No 3, June 2007
  45. Please release me (part one)
    in: C Vu Volume 19 No 4, August 2007
  46. Please release me (part two)
    in: C Vu Volume 19 No 5, April 2007 
  47. (series continues to present day, more details to come) 

As of November 2011, I'm up to #72 in the series. I must get around to updating this list!

C++ Programming Articles

  • Hardware register access in C++
    in: CUJ, May 2005. Read it here
  • STL-style circular buffers by example
    in: Overload 50, to be published
    See also circular buffer library
  • STL-style circular buffers by example, part two
    in: Overload 51, to be published
  • Techniques for debugging in C++
    in: Overload 46, December 2001
    See also dbg library
  • A framework for object serialisation
    in: Overload 37, May 2000
  • Experiences of implementing the observer design pattern, part one
    in: Overload 37, May 2000
  • Experiences of implementing the observer design pattern, part two
    in: Overload 38, July 2000
  • Experiences of implementing the observer design pattern, part three
    in: Overload 41, February 2001
  • An application of pointers to members
    in: Overload 36, March 2000
  • Adding 'threads' to Anthem
    in: CAUGERs Volume 6 No 6
  • Adding polymorphic classes to the Anthem 'threads' model
    in: C Vu Volume 12 No 2, April 2000

Miscellaneous magazines

  • Creating a framework for the iPhone
in: Overload 94, December 2009
  • The Ghost of a Codebase Past
in: Better Software Magazine, March 2009
  • Idioms and Idiosyncrasies
in: Better Software Magazine, September 2008
  • Finding fault
    in: Hardcopy, Issue 23. March 2004