Understanding Software

Recently I had the pleasure of reading Max Kanat-Alexander’s excellent Understanding Software. It is a follow up to his Code Simplicity. Max is Technical Lead for Code Health at Google. This post contains a few points extracted from the book. If you find these notes useful, I highly recommend you check out his book for […]

GRASP Patterns

These notes are taken from Craig Larman’s brilliant book “Applying UML And Patterns”. There is so much information in this book, you really need to work through it in its entirety. Still, it’s good to have a brief refresher of some key points. I hope you may find these notes useful. GRASP Patterns General Responsibility […]

Class Diagrams

Every now and then I’m tasked to do something which requires me to quickly jog my memory. This time it was a class diagram, and Martin Fowler’s UML Distilled was so helpful that I’ve decided to list here some of the important points it raises, for future reference. I’ve added a few of my own […]

Testing Visual C++ in NUnit

This is a re-post from an old blog I had dated 2010, it has some useful information: Recently I have been busy working on a large unmanaged Visual C++ project and I needed to introduce unit testing. I decided to create a Managed C++/CLI library with a few assert wrappers, so I could drive the […]

Extreme Programming Explained

This morning I had the opportunity to read Kent Beck’s delightful work, Extreme Programming Explained 2nd Edition. This is a book by a man who has been in the trenches and has reflected upon his experience for the benefit of all involved in application delivery. His concern for people is evident throughout, and inspiring. An […]

Object-Oriented Design Heuristics

I took the following notes whilst studying Arthur J. Riel’s book on OOD best practices, I hope they may be useful to you. This is a good book, definitely worth a place on any developer’s bookshelf. It is a bit dated, but much of the advice is solid, and you can see the seeds of […]

Designing Object-Oriented Software

The following is a collection of notes taken from Designing Object-Oriented Software. This is a good book about OOD, but a bit dated. The follow up book is more interesting, Object Design, which goes more into object roles, responsibilities and collaborations. Still there is wisdom, in particular I liked the emphasis on objects as agents […]

Setting up Go on Ubuntu

This is a quick guide to getting started with Golang on Ubuntu 20.04 with the bash shell. Download From the Golang website, download the latest version of Go for Linux to your Downloads folder, as of this writing it is: go1.16.3.linux-amd64.tar.gz Install Open a bash terminal (CTRL+ALT+T) and make sure you are in your home […]

Installing Android on Ubuntu 20.10

This post is an addendum to installing Ubuntu, if you are missing any packages, please see the Essentials section in that post. Let’s get cracking! Install Java Not absolutely necessary, but I prefer to use the default JDK: Setup Virtualization The Android Emulator runs faster when virtualization software is used. Before proceeding, please make sure […]