Thursday, December 10, 2009

Visualizing Data: On Paul Graham


Being that I've seen Paul Graham speak, have read his book, and am partial to his essays, the talks delivered for Visualizing Data (see below) didn't present a ton of new information.  That being said, it's worth taking a moment to discuss why it is that I enjoy Graham so much, and his most famous analogy between "hackers" and "painters".

Graham's style of speaking and writing is unquestionably authoritarian, and that's the beginning of what I like about him:  he's not afraid to have strong opinions, and to put them out there.  So many commentators today waste their time either pandering to the masses, or being incredibly extreme.  With Graham, you get the feeling that not only does he believe in what he's saying, but that he's given it some real thought.  Even his most caustic opinions (for example, his constant mocking of the Java programming language) are rooted in well thought out and valid positions.

Most of those positions end up being about one of three things:  smart people, hackers, or programming.  Which brings me to the second thing I like about Graham:  he's not afraid to admit that there are smart people out there in the world, and that they behave differently than others.  He's willing to cite the good (high productivity, more inspiration) and the bad (stubbornness, near autistic behavior), but most importantly he's willing to admit that they're smart.  These days we're far too bogged down in a culture where everyone's getting a pat on the head, and Graham is far more inclined to give the truth than to put a rosy tint on everything.

When discussing these super-intelligent "hackers", Graham then takes a stance that (as least when he originally took it) is unique:  he treats them as people and creators.  Computer programming has long been the subject of being compared to engineering and math, as a sort of technical discipline.   Graham takes his unique role as both an artist and a programmer and proposes the opposite: that programmers (or "hackers") are actually creative people who simply use an engineering device and medium as their means of expression.

This treatment culminates in Graham's famous analogy between hackers and painters.  The two groups are unique to each other, Graham supposes, in that they both have two roles: they have to decide what to do, and how to do it.  While many other creative/engineering jobs have two roles for this action (he cites architects and engineers as the "what" and "how", respectively), Graham points out that both painters and hackers are responsible for creating their idea, and then engineering it as well.


Paul Graham: Great Hackers
Paul Graham: Hackers And Painters

Wednesday, December 9, 2009

Awesomeness From Applications Class

A while back in applications class, a group had us do this awesome stop motion pong game.  Truly killer - just found the vid.  Enjoy!

Tuesday, December 1, 2009

Physical Computing Midterm: Media Controller; "Pancake"


The "Pancake"


Again, a bit late on the delivery of this one.  Apologies to those waiting with bated breath....

For our Physical Computing midterm, we were split into groups and asked to create a media controller of our own devising.  No limits or requirements were put in place, except that the controller would be a physical interface to the arduino, and would controller some external media device.  I was teamed with the wonderful Amy Chien and Chris Alden, and the three of us came to the conclusion that we'd like to build something of an electronic musical instrument.

To start things off, we brainstormed about possible ideas for the media controller's interface.  However, we came up with so many cool ideas that we almost immediately decided that we'd like to do multiple interfaces.  This worked its way into a concept for a modular music table, that would be split into various pieces, and allow three individuals to collaborate using three different interfaces. 


Hauling wood.

The first step we took was to construct the table surface.  We procured two large pieces of ply wood, and cut them into identical circles.  One circle was the table itself, while the other circle was cut into pieces for us to build the interface modules.  Each of us took on one of the modules, and each module used a different physical interface.  The three interfaces were wind based, pressure based, and a conductive sequencer.


All three interfaces.

Once we had completed and tested the three interfaces, we brought them together to the table, and unified them into a single instrument.  Each interface had its own arduino, which were then collectively wired into a labtop via a USB hub.  Once all three arduinos were recognized on the computer, we then hooked them up to Max/MSP and created a patch that would listen for the serial values from each interface, and use them to control tonal output.


The pressure pad controlled pitch bending, the wind interfaces controlled the speed of the tone playback, and the sequencer controlled the notes being played over the loop.  Once the patch was loaded, all three interfaces could be used simultaneously to control the computer's sonic output.  You can see a demo of one of our classmates joining us in trying out the interface above.


Finally, we presented our project in class.  Here you can see a brief clip of our presentation, which managed to go off without a hitch.  Midterm, complete. Go Pancake!