DesignOfEverydayThings - Signifier - 6
Ex. The sink that would not drain
Ex. The sink that would not drain
<div> Ex. Slide door and said “Don’t push”</div> </span>
Ex. Bookmark indicate read progress.
Signifier is an important device for communication, whether or not communication is intended Ex. Flag indicate wind direction
Ex. A door need signifier: no signifier, dont know how to open
Affordance: it is a relationship, ex. Affordance of touching exists on the entire screen Signifier: designer put a circle on screen to signify user where t...
Chair affordance An affordance is a relationship between the properties of an object and the capabilities of the agent that determine just how the objec...
The most important characteristics of good design: Discover-ability and Understanding Discover-ability Figure out what actions are possible Where a...
Introduction I like this book very much! I always can learn from it. Have a chance to introduce this book to team, want to have some notes for "THE PS...
List image isaac@isaac-KVM:~$ docker image ls REPOSITORY TAG ...
Install ubuntu and try to check Docker version isaac@isaac-KVM:~$ docker -version Command 'docker' not found, but can be installed with: sud...
Ex. sync.Once.Do Can code "loadHeavyOnce everytime before read the variable", it will be executed once actually.
Add number to 10000. RWLock (Use Lock/Unlock to read): 19ms, 92202 read count RWLock (Use RLock/RUnlock to read): 597ms, 4789798 read count W...
Ex. Binary semaphore Race Condition Semaphore Ex. sync.Mutex Mutex.Unlock happens before Mutex.Lock Every Lock needs Unlock, can use defe...
Prevent race condition Initialize variables when package initialization phase, it will happen before main function. And don't modify those variables a...
Close a channel to broadcast cancellation No way to know a channel is closed or not, so need another channel to indicate a channel is closed This exa...
Declare select { case <- ch: ... case x := <- ch2: &...
Inner goroutine can send event to outer goroutine by channel Ex. Pass value to inner routine function Declare a variable in inner goroutine function, ...
Declare a queue: ch := make(chan int, 3) Block send when full, block receive when empty Get capacity: cap(ch) Get currently buffered: len(ch) ...
Send only: chan<- int Receive only: <-chan int Violation will compile error Only channel used to send msg need to be closed, so to cl...