Author: Luca Davidian

0

Type erasure in C++

Polymorphism is the ability to use objects of different types in a generic way, using the same notation. In C++ there are two forms of polymorphism, dynamic and static polymorphism....

0

Friendship in C++

Encapsulation is a staple of object-oriented  programming: by hiding (or “abstracting away”) the implementation details of a class behind a public interface we can create abstract data types. Users of...

0

State Design Pattern

Many systems wait continuously for the occurrence of some event, and they react to the event by performing computations or changing their state. Once the event is handled, they go...

0

Composite Design Pattern

According to the GoF book, the intent of the Composite pattern is to “compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions...

0

Observer Design Pattern

The Observer Pattern According to the GoF book the Observer pattern “defines a one to many dependency between objects so that when one object changes state, all its dependents are...

0

Command Design Pattern

The Command Pattern The Gang of Four’s book gives the following definition of the command pattern: “The Command pattern encapsulates a request as an object, letting you parameterize clients with...

0

WiFi controlled Neo Pixels strips

In this project I explain how to drive NeoPixels with an Arduino M0 PRO (SAMD21) using the SPI peripheral with the DMA controller to create colored animated patterns. Since displaying...