Lecture 1: Introduction to Research — [📝Lecture Notebooks] [
Lecture 2: Introduction to Python — [📝Lecture Notebooks] [
Lecture 3: Introduction to NumPy — [📝Lecture Notebooks] [
Lecture 4: Introduction to pandas — [📝Lecture Notebooks] [
Lecture 5: Plotting Data — [📝Lecture Notebooks] [[
The three design patterns (Adapter, Facade and Bridge) all produce the result of a clean public API. The difference between the patterns are usually due to a subtle context shift (and in some cases, a behavioural requirement).
The primary function of an Adapter is to produce a unified interface for a number of underlying and unrelated objects.
You will notice this pattern being utilised in many applications. For example, ActiveRecord (the popular Ruby ORM; object-relational mapping) creates a unified interface as part of its API but the code underneath the interface is able to communicate with many different types of databases. Allowing the consumer of the API to not have to worry about specific database implementation details.
The principle structure of this pattern is:
#ifndef _ASM_GENERIC_ERRNO_BASE_H | |
#define _ASM_GENERIC_ERRNO_BASE_H | |
#define EPERM 1 /* Operation not permitted */ | |
#define ENOENT 2 /* No such file or directory */ | |
#define ESRCH 3 /* No such process */ | |
#define EINTR 4 /* Interrupted system call */ | |
#define EIO 5 /* I/O error */ | |
#define ENXIO 6 /* No such device or address */ | |
#define E2BIG 7 /* Argument list too long */ |
Setup remote repository:
ssh git@example.com
mkdir my_project.git
cd my_project.git
git init --bare
On local machine:
cd my_project
Setup remote repository:
ssh git@example.com
mkdir my_project.git
cd my_project.git
git init --bare
On local machine:
cd my_project