//vapor_141013b software art taxonomy - Olga Guriunova


The initial intention of creating an overlapping, inexact, funny, and inspiring taxonomy can be traced through the current categories, which cover a wide range of approaches from projects that create critical allowances for modes of writing and textual cultures that are constructed and maintained…

3 notes


Improve your firepower!

Sunless Sea is a game of exploration, terror, loneliness and potential (eventual) cannibalism.

It is available to buy in Early Access on Steam.

13 notes


Inktober day 15! The Scythian from Super Brother’s Sword and Sworcery has strong feelings about rainbows.

Gauss Life

Study Tip
How to Study by MIT Graduate

Scott Young recently finished an astounding feat: he completed all 33 courses in MIT’s fabled computer science curriculum, from Linear Algebra to Theory of Computation, in less than one year. More importantly, he did it all on his own, watching the lectures online and evaluating himself using the actual exams. Check out the link for more in depth info.

1. Coverage

The first step in learning anything deeply, is to get a general sense of what you need to learn.For a class, this means watching lectures or reading textbooks. For self-learning it might mean reading several books on the topic and doing research.
Take sparse notes while reading, or do a one-paragraph summary after you read each major section.

2. Practice
Practice problems should be used to highlight areas you need to develop a better intuition for.
Non-technical subjects, ones where you mostly need to understand concepts, not solve problems, can often get away with minimal practice problem work. In these subjects, you’re better off spending more time on the third phase, developing insight.

3. Insight

The technique is simple:

a)Get a piece of paper
b) Write at the top the idea or process you want to understand
c)Explain the idea, as if you were teaching it to someone else

What’s crucial is that the third step will likely repeat some areas of the idea you already understand. However, eventually you’ll reach a stopping point where you can’t explain. That’s the precise gap in your understanding that you need to fill.

For Formulas

Formulas should be understood, not just memorized. So when you see a formula, but can’t understand how it works, try walking through each part with a Feynman.

Most intuitions about an idea break down into one of the following types:

a)Analogies – You understand an idea by correctly recognizing an important similarity between it and an easier-to-understand idea.

b)Visualizations – Abstract ideas often become useful intuitions when we can form a mental picture of them. Even if the picture is just an incomplete representation of a larger, and more varied, idea.

c) Simplifications – A famous scientist once said that if you couldn’t explain something to your grandmother, you don’t fully understand it. Simplification is the art of strengthening those connections between basic components and complex ideas. (via not-now-im-studying)


(via study-hard-now)

(via bettyann)

2,123 notes

//leaves_141008bArrayList<PointPosition> pointPosition = new ArrayList();boolean alternate = false;int threshold = 0;int width = 500,    height = 700;int[] directions = {    (width*-1)-1,    (width*-1),    (width*-1)+1,    width+1,    width,    width-1,    -1,    1  };void setup() {  size(width,height);  background(255);  setPoints(100);}void draw(){  setPoints(100);  drawPoints();  alterPixels();}void alterPixels() {  loadPixels();    for (int k=height+1; k<width*height-height-1; k++){      int pModifier = directions[int(random(directions.length))];      if (brightness(pixels[k]) < threshold){        pixels[k-width] = pixels[k];        pixels[k] = pixels[k+pModifier];      } else if (brightness(pixels[k]) == threshold) {        pixels[k-pModifier] = color(          int(red(pixels[k+pModifier])),          int(green(pixels[k+pModifier])),          int(blue(pixels[k+pModifier])),          int(brightness(pixels[k-pModifier]))        );      } else {        pixels[k-1] = color(          int(red(pixels[k+1])),          int(green(pixels[k+width])),          int(blue(pixels[k+1])),          int(brightness(pixels[k-1]))        );      }    }  updatePixels();  threshold = setThreshold(threshold,1,255); }void drawPoints(){  int i = 0;  for(PointPosition p:pointPosition){    i++;    int posx = int(sin(i*TAU/(TAU/22)));    int posy = int(cos(i*TAU/(TAU/22)));    p.update(posx,posy);    if (posx > width || posx < 0) {      posx = width/2;    }    if (posy > height || posy < 0) {      posy = height/2;    }    p.render();  }}void setPoints(int count){  for (int i=0; i<count; i++) {    PointPosition p = new PointPosition();      p.c = color(              map(i,0,abs(cos(i*TAU/count)*count),0,33),              map(i,0,abs(sin(i*TAU/count)*count),50,253),              map(sin(i*TAU/count),0,1,153,255)              );      p.x = width/2+int(sin(i*TAU/count)*width/3);      p.y = height/2+int(cos(i*TAU/count)*width/3);    pointPosition.add(p);  }}int setThreshold(int threshold, int minThreshold, int maxThreshold) {  if (threshold <= maxThreshold && threshold >= minThreshold && alternate) {    threshold++;  } else if (threshold <= maxThreshold && threshold >= minThreshold) {    threshold—;  } else if (alternate) {    threshold = maxThreshold;    alternate = !alternate;  } else {    threshold = minThreshold;    alternate = !alternate;  }  return threshold;}class PointPosition {  int x,y;  color c;  void update(int dx, int dy){    x = x + dx;    y = y + dy;  }  void render(){    stroke(c);    point(x,y);  }}