Simple pictures to explain DRY and SRP

The Single Responsibility Principle (SRP) and Don’t Repeat Yourself (DRY) are two common principles of good software engineering.  This article is probably a statement of the bleeding obvious, but I was struck by how the two principles could be illustrated by simple variations on one simple diagram.  I couldn’t remember seeing such diagrams before and … Continue reading Simple pictures to explain DRY and SRP

Authentication, authorisation and the chain of trust

I recently walked by my old college.  There was a sign outside: Closed to visitors.  I realised that two cards in my wallet would get me in, which made me think of some security concepts: the difference between authentication and authorisation, and the chain of trust.  I’ll go into those a bit in this article, … Continue reading Authentication, authorisation and the chain of trust

Optimisation part 2: Hill climbing and simulated annealing

In the previous article I introduced optimisation.  In this article I will go into two optimisation algorithms – hill-climbing and simulated annealing.  Hill climbing is the simpler one so I’ll start with that, and then show how simulated annealing can help overcome its limitations at least some of the time. Hill climbing To explain hill … Continue reading Optimisation part 2: Hill climbing and simulated annealing