Skip to content

Instantly share code, notes, and snippets.

Lesson 1: Affordances and Signifiers

Don't solve the problem given (as it's stated), figure out what the real underlying problem is.

To understand design, you have to be a good observer and question things. Travel with a camera and take photos. Don't use flash, use natural lighting when possible.

Affordances are the relationships (read: possible actions) between an object and an entity (most often a person). For example, a chair affords sitting for a human. Affordances enable interactions between entities and objects (similarly, anti-affordances prevent or reduce interactions). The presence of an affordance is determined by the properties of the object and of the abilities of the entity who's interacting with the object.

Signifiers are signals, communication devices. These signs tell you about the possible actions; what to do, and where to do it. Signifiers are often visible, but invisible (secret) signifiers do exist, like clicking a YT video to play

@reecer
reecer / server.js
Created October 8, 2014 22:26
PassportJS Usage
var passport = require('passport'),
FacebookStrategy = require('passport-facebook').Strategy,
TwitterStrategy = require('passport-twitter').Strategy,
GithubStrategy = require('passport-github').Strategy,
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
/* ...server setup... */
// Setup passport auth
app.use(passport.initialize());
@reecer
reecer / Preferences.sublime-settings
Created December 4, 2014 04:43
Sublime text editor config
{
"theme": "Piatto Light.sublime-theme",
"color_scheme": "Packages/Tomorrow Color Schemes/Tomorrow-Night.tmTheme",
"font_size": 10,
"highlight_line": true,
"detect_indentation": false,
"hot_exit": false,
"remember_open_files": false,
"tab_size": 2,
"translate_tabs_to_spaces": true,

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@reecer
reecer / .tmux.conf
Last active August 29, 2015 14:14 — forked from paulrouget/.tmux.conf
set -g default-terminal "screen-256color"
set -g status-utf8 on
bind M source-file ~/.tmux/mac.session
bind L source-file ~/.tmux/linux.session
# set -g terminal-overrides 'xterm*:smcup@:rmcup@'
# THEME
set -g status-bg black
@reecer
reecer / *.jsx
Created February 10, 2015 03:13
React.js getDOMNode 0.13 change
...
componentDidMount(){
// this.getDOMNode().className += '...';
React.findDOMNode(this).className += '...';
}
...
@reecer
reecer / gist:f22eb4c1381dddb831d0
Created February 14, 2015 01:56
Gnome dual monitor workspaces
gsettings set org.gnome.shell.overrides workspaces-only-on-primary false
#!/bin/bash
# Script for installing tmux on systems where you don't have root access.
# tmux will be installed in $HOME/local/bin.
# It's assumed that wget and a C/C++ compiler are installed.
# exit on error
set -e
TMUX_VERSION=1.8
@reecer
reecer / System Design.md
Created April 19, 2016 18:00 — forked from vasanthk/System Design.md
System Design Cheatsheet

#System Design Cheatsheet

Picking the right architecture = Picking the right battles + Managing trade-offs

##Basic Steps

  1. Clarify and agree on the scope of the system
  • User cases (description of sequences of events that, taken together, lead to a system doing something useful)
    • Who is going to use it?
    • How are they going to use it?
@reecer
reecer / update-vscode.sh
Created February 5, 2017 21:00
Update vs-code via latest 64-bit tar.gz
#!/usr/bin/env bash
OUT_DIR=/opt/
URL='https://vscode-update.azurewebsites.net/latest/linux-x64/stable'
DIR="$(dirname "$(readlink -f "$0")")"
TAR_FILE=$DIR/latest.tar.gz
curl -z $TAR_FILE -o $TAR_FILE -L $URL
tar xzf $TAR_FILE -C $OUT_DIR