Recent Articles

All truth

“All truth passes through three stages. First, it is ridiculed. Second, it is violently opposed. Third, it is accepted as being self-evident.” – Arthur Schopenhauer, German philosopher (1788 – 1860)

If

Quotes: Things that inspire and be remembered “If you can dream – and not make dreams your master; If you can think – and not make thoughts your aim; If you can meet with Triumph and Disaster And treat those two impostors just the same;” – Kipling

I can’t believe I missed this!

Just over 20 years ago Jack W. Reeves wrote an article in the C++ Journal entitled “What is Software Design?” and I missed it. Not only that but no one thought to point out that I was missing a very important article. An article that challenged and changed/clarified my mental model of software design and [...]

DRYing out code

Removing duplicate code is a great way to improve the internal quality of your application code. Duplications mean that you have more code than you should and are often the source of more subtle bugs of the “I’ve already fixed that ..” variety. While working on a scriptable command line tool for Java (see Automated [...]

Integrating GPUs in Application Development – From Concept to Deployment

This post is a little overdue In June I presented at QCon NYC on using GPUs. It was a great chance to catch up on all the changes to C and C++ that I have missed out on in recent years. You can catch up on the presentation over on InfoQ The source code used in [...]

Autmated refactoring for library updates

Vision: Automated refactoring for upgrades After watching Clang MapReduce — Automatic C++ Refactoring at Google Scale I was struck with the idea that this could help with the upgrade problem. Almost every application uses libraries. Those libraries need to be updated from time but each time they are updated all the code using those libraries also needs [...]

Metrics based Refactoring for cleaner code

Refactoring is a key practice to improved code hygiene. Making refactoring part of your next project is one thing but if you have just joined a team or project with a significant amount of debt how do you work on making things better? Over the last few months I have been assessing a number of [...]

Coderwall achievements

Linkedin

Inspiration

Site Info

Welcome to my website. This site is really a hub for me to be able to find all the things that I participate in online. I imagine that if you found this website hoping you will find out about me please feel free to dig around.

I have been developing software professionally since 1985 in a fairly wide range of technologies for quite a few industry areas. Happily I learn something new every day. I like to think that there are no "bad" projects just learning opportunities.

Some time ago I was working on a "difficult" project. The technology was not that inspiring but the challenges facing the client in a large programme of work were daunting. Learning to help with those challenges and form a strong relationship with the client.

I work for ThougthWorks as a Principal Consultant. I have found ThoughtWorks to be the most inspiring organization I have ever worked for. The Planet TW and ThoughtWorks Blogs are very insightful.

About Me

Graham Brooks Photo Born in 1962 near Bristol (England). I have a passion for software, technology, climbing and the great outdoors.
Spent 1982-1985 at the University of Kent at Canterbury working late into the night mixing for bands and helping out with college discos.
1985 - now learning the error of my student days by working far too hard but enjoying most of it.



Interests

  • Software Development
  • Photograph - viewing and taking
  • Walking
  • Climbing