Pete's publications
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
- Code Craft, my software development book, is described here.
- I have contributed three items in O'Reilly's 97 Things Every Programmer Should Know.
- I've contributed a chapter to O'Reilly's Beautiful Architecture called A Tale of Two Systems.
- I'm working on some as-yet unannounced book projects, too. Watch this space!
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.
- Layout of source code
- in: C Vu Volume 12 No 2, April 2000
- Team work
- in: C Vu Volume 12 No 3, June 2000
- Being specific
- in: C Vu Volume 12 No 4, August 2000
- Code reviews
- in: C Vu Volume 12 No 5, October 2000
- Documenting code
- in: C Vu Volume 12 No 6, December 2000
- Good design
- in: C Vu Volume 13 No 1, February 2001
- in: C Vu Volume 13 No 2, April 2001
- The programmer's toolbox
- in: C Vu Volume 13 No 3, June 2001
- Defensive programming
- in: C Vu Volume 13 No 4, August 2001
- Software testing
- in: C Vu Volume 13 No 5, October 2001
- Software development: Fantasy, fiction or farce
- in: C Vu Volume 13 No 6, December 2001
- Recipe for a program
- in: C Vu Volume 14 No 1, February 2002
- How long is a piece of string?
- in: C Vu Volume 14 No 2, April 2002
- There and back again
- in: C Vu Volume 14 No 3, June 2002
- The outer limits
- in: C Vu Volume 14 No 4, August 2002
- in: C Vu Volume 14 No 5, October 2002
- The code that Jack built
- in: C Vu Volume 14 No 6, December 2002
- Engineering a release
- in: C Vu Volume 15 No 1, February 2003
- A passing comment
- in: C Vu Volume 15 No 2, April 2003
- Software evolution or software revolution?
- in: C Vu Volume 15 No 3, June 2003
- Software architecture
- in: C Vu Volume 15 No 4, August 2003
- Finding fault
- in: C Vu Volume 15 No 5, October 2003
- To err is human
- in: C Vu Volume 15 No 6, December 2003
- The need for speed (part one)
- in: C Vu Volume 16 No 1, February 2004
- The need for speed (part two)
- in: C Vu Volume 16 No 2, April 2004
- The need for speed (part three)
- in: C Vu Volume 16 No 3, June 2004
- And now for something completely different...
- in: C Vu Volume 16 No 4, August 2004
- An insecurity complex (part one)
- in: C Vu Volume 16 No 5, October 2004
- An insecurity complex (part two)
- in: C Vu Volume 16 No 6, December 2004
- Code Monkeys (part one)
- in: C Vu Volume 17 No 1, February 2005
- Code Monkeys (part two)
- in: C Vu Volume 17 No 2, April 2005
- An exercise for the reader
- in: C Vu Volume 17 No 3, June 2005
- A review to a kill
- in: C Vu Volume 17 No 4, August 2005
- Together we stand (part one)
- in: C Vu Volume 17 No 5, October 2005
- Together we stand (part two)
- in: C Vu Volume 17 No 6, December 2005
- Together we stand (part three)
- in: C Vu Volume 18 No 1, February 2006
- The curse of good code
- in: C Vu Volume 18 No 2, April 2006
- Mental gymnastics
- in: C Vu Volume 18 No 3, June 2006
- Effective version control (part one)
- in: C Vu Volume 18 No 4, August 2006
- Effective version control (part two)
- in: C Vu Volume 18 No 5, October 2006
- Effective version control (part three)
- in: C Vu Volume 18 No 6, December 2006
- Programming is...
- in: C Vu Volume 19 No 1, February 2007
- Playing by the rules
- in: C Vu Volume 19 No 2, April 2007
- How professional are you?
- in: C Vu Volume 19 No 3, June 2007
- Please release me (part one)
- in: C Vu Volume 19 No 4, August 2007
- Please release me (part two)
- in: C Vu Volume 19 No 5, April 2007
- (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