@romanmars produces a beautiful podcast titled 99% Invisible which is where I first heard of the Feltron Annual Report.

The Feltron Annual Report is produced by this guy

Nicolas Felton. It is a chronicling of the data that make up his life. Everything from bowel movements to birthdays are recorded and documented in his wonderfully fantic Annual Reports.

AR 2012

I was absolutely fascinated with the reports, not only because of their obsessive level of detail, but also because of their graphics. The are phenomenal visualizations of complex data and they are all produced using Processing, which is, “An open source programming language and environment for people who want to create images, animations, and interactions.”

I decided that it was something that I wanted to learn to use (and will continue to learn to use despite what I am about to say).

Enter Bret Victor aka @worrydream who looks something like this, but older (because pictures are always of us from when we were younger, unless they are photoshopped in which case all sense of reality flies out the window {unless you are a photoshopper for the Chinese Government})

He wrote an article/novella/gives talks on Learnable Programming in which he disapproves of (to put it gently) the methods and execution of Programming because it fails in some very important areas. He says that a programming environment

 should allow the learner to:

  • read the vocabulary— what do these words mean?
  • follow the flow— what happens when?
  • see the state— what is the computer thinking?
  • create by reacting— start somewhere, then sculpt
  • create by abstracting— start concrete, then generalize

The language should provide:

  • identity and metaphor— how can I relate the computer’s world to my own?
  • decomposition— how do I break down my thoughts into mind-sized pieces?
  • recomposition— how do I glue pieces together?
  • readability— what do these words mean?

These features are essential to any programming environment, but they illustrate an underlying design principle central to understanding the concept of programming. The idea is to fix the elements of a programming environment which hinder the groking of thinking like a programmer.

I realized that the reason I have always had difficulty whenever attempting to learn to program, even in high-level, (theoretically) straightforward languages is not due to a lack of understanding of applications I could potentially build, but a lack of understanding of the words and syntax which are typically hidden away in a manual somewhere and not particularly accessible or intuitive.

Bret Victor proposes a myriad of (simple seeming) alterations to programs similar to Processing where the actions performed by the computer “instantly” can be stepped through at an understandable pace. This facilitates deeper and much more immediate/direct understanding of what the computer is actually doing rather than jumping from A to Z and leaving the actions that theoretically occurred between B and Y up to the imagination. He also suggests that variables, words, and values are explained in-line when they are hovered over which enables much more rapid feedback on what different things actually do instead of requiring a manual (who really reads manuals anyways?)

That being said, it seems as though I don’t have (m)any options at the moment which employ Bret’s brilliant suggestions so I shall carry on learning Processing so that one day I may be able to creepily catalogue my own life, or just make some dope digitally processed art.

About Adam

I am an architecture undergrad @ Virginia Tech with an interest in emergent and interactive design.
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply