My notes on Software Design Patterns