I am not a geek. But that doesn’t mean I don’t want to know what geeks are thinking, even if I can’t quite follow along on all the details. Programmers—as political consultant-turned-author Clay Johnson points out—are the new scribes. Quite literally, they give shape to content, define form that defines function and create tools that can reveal, or obscure.
If I have any special talent, it is a curiosity and willingness to walk through doors where, superficially at least, I have no business. Sitting in a room full of programmers fueled on Groupon-sponsored pizza, pop and tiny packets of hermetically sealed Skittles—as I did the other night listening to a talk by EveryBlock founder, Adrian Holovaty—qualifies.
Holovaty’s passion is liberating useful data from unruly copy. With “just the facts, ma’am” focus, he teases information order from narrative chaos. And he is brilliant at it. Cell by database cell, details collect over time, providing all sorts of often startling insights in the aggregate, from crime patterns to the arc of a war. There is a spare-truth poetry in data structure, the bare bones of news.
Yet it was s flick to a talk by another programmer, Bret Victor, about “Inventing on Principle” that proved the richest data nugget of the evening. “Watch this when you get home,” Holovaty urged, pointing to a slide with screen grab of a video.
So I did.
The video, shot in the dim glaring light of a hotel ballroom, lacks even the barest hint of the warm, slick production values typical of a TED talk, and at nearly an hour, clocks in at three times the length. Yet the brilliance shines through.
Victor, clearly a hero, if not a legend, among the programming crowd, was news to me. His lecture at the Canadian University Software Engineering Conference (CUSEC) last January transcends programming. It is about ideas, creativity, purpose, ethics, guiding principles and making a difference.
In short, it is for all of us.
Ideas are very important to me. I think that bringing ideas into the world is one of the most important thing that people do. And I think great ideas—in the form of great art, stories, inventions, scientific theories—these things take on lives of their own, which give meaning to our lives… What sort of tools could a healthy environment for ideas grow?
…Creators need immediate connection to what they are creating. That’s my principle….There can’t be any delay and there can’t be anything hidden.
Victor dazzles his audience with a series of programming demos to prove his point. An image of a tree appears on a page next to its corresponding code. All the values—height of tree, number of leaves per branch, height of mountains, color of sky—are rigged to slide bars, allowing the programmer to see immediately the effects of changes. No more edit, compile, run, check…lather, rinse, repeat.
Playing around, he sees that adding and subtracting the number of blossoms on the tree creates a shimmery effect that could be used in animation.
How would I ever have discovered that if I had had to compile and run between every change? So much of art—so much of creation—is discovery. And you can’t discover anything if you can’t see what you’re doing. … So having this immediate connection allows ideas to surface, to develop in ways that would be impossible before.”
Victor next clicks open magnifying glass that shows how each line of code affects the image. Hold it over the image and, pixel by pixel, it highlights the corresponding line of code.
I can make these ideas as quickly as I think of them. And that is so important to the creative process, to be able to try ideas as you think of them. If there is any delay in that feedback loop between thinking of something and seeing it and building on it, then there is this whole world of ideas that will just never be. These are thoughts that we can’t think.
Then it is onto video games, animating a character’s bounce so that he slides neatly into a little box.
So here’s what I’m going to do. I’m going to bounce off my turtle. Pause the game. And now hit this button here, which shows my guy’s trail. So now I can see where’s he’s been. And when I rewind, this trail in front of him is where he’s going to be. This is his future. When I change the code, I change his future. So I can find exactly the value I need. And when I hit “play,” he slips right in there.
Victor continues with an an animation demo on an iPad, where, with a gentle touch, he guides a leaf to swirl and fall, no keyframing required (as one currently learning how to keyframe in Final Cut Express and pretty much hating every minute of it, I want this, please…).
This is all just the warm up.
Victor continues, first visualizing an algorithm as it is coded…
The people that we consider skilled software engineers are just those people who are really good at playing computer… But for writing our code on a computer why are we simulating what a computer would do in our head? Why doesn’t the computer just do it and show us?
That’s what it might be like to write an algorithm without a blindfold on.
…and then a completely new way to map out an electrical circuit.
Two golden rules of information design: show the data and show comparisons.
There’s nothing hidden. There’s nothing to simulate in your head. So what we have here is a different way of representing a circuit… Instead of being made out of little squiggly symbols, it’s made out of data. And I think it’s important to ask: Why do we have these little squiggly symbols in the first place? Why do they exist? They exist because they’re easy to draw on pencil on paper. This is not paper. So when you have a new medium, you have to rethink these things. You have to think how can this new medium allow us more immediate connection to what we’re making. How can this new medium allow us to work in such a way so we can see what we’re doing? It’s really the same situation with programming.
…This principle—immediate connection—is not even about engineering. It’s about any type of creation.
The audience, completely enthralled, is now ready to hear Victor’s deeper message, one that resonates even for the code-phobic.
When I see ideas dying, it hurts. I see a tragedy. To me it feels like a moral wrong. It feels like an injustice. And if I think there is anything I can do about it, I feel it is my responsibility to do so. Not opportunity. But responsibility. Now this is just my thing. I am not asking you to believe in this the way that I do.
My point here is that these words that I’m using—injustice, responsibility, moral wrong—these aren’t the words we normally hear in a technical field. We do hear these words in association with social causes. So things like censorship, gender discrimination, environmental destruction, we all recognize these things as moral wrongs. Most of us wouldn’t witness a civil rights violation and say, “Oh good! An opportunity.” I hope not. Instead, we have been very fortunate to have had people throughout history, who recognize these social wrongs and saw it as their responsibility to address them.
.. As a technologist, you can recognize a wrong in the world. You can have a vision of a what a better world can be. And you can dedicate yourself to fighting for a principle. Social activists typically fight by organizing, but you can fight by inventing.
…So you can choose this life. Or maybe it will end up choosing you. It may not happen right away. It can take time to find a principle because finding a principle is essentially a form of self-discovery—that you’re trying to figure out what your life is supposed to be about, what you want to stand for as a person.
… And finally, if you choose to follow a principle, a principle can’t be any old thing you believe in. You’ll hear a lot of people say they want to make software easier to use. Or they want to delight their users. Or they want to make things simple. That’s a really big one right now. Everyone wants to make things simple. And those are nice thoughts and kind of give you a direction to go in, but they’re too vague to be directly actionable.
… I believe creators need powerful tools. It’s a nice thought. It didn’t really get me anywhere. My principle is that creators need this immediate connection. So I can watch you changing a line of code and I can ask, “Did you immediately see the effect of that change? And again, all those demos that I showed you came out of me doing that, of me following this principle and letting it lead me to exactly what I needed to do.
So if you’re guiding principle embodies a specific insight, it will guide you. And you’ll always know if what you’re doing is right.
There are many ways to live your life. That’s maybe the most important thing to realize in your life, that every aspect of your life is a choice. There are default choices: You can choose to sleepwalk through your life and accept the path that’s been laid out for you. You can choose to accept the world as it is. But you don’t have to. If there is something in the world you feel is wrong, and you have a vision for what a better world would be, you can find your guiding principle. And you can fight for a cause.
So after this talk, I’d like you take a little time and think about what matters to you. What you believe in. And what you might fight for.
For the last couple of days, I have done just that. I think my guiding principle has always been about the importance of connections: across disciplines, applications, interests, cultures, geography, need. Now, it will be that much more intentional.
Which means there is a lot of work to be done, a lifetime of doors to open.
—J.A Ginsburg / @TrackerNews
- Ex-Apple Deisgner Creates Teaching UI That “Kills Math” using Data Viz / John Pavlus / Fast Company
- Refresh Meetup / Chicago (big shout out for hosting Holovaty’s talk, sparking this whole virtuous circle of thought)
- The Information Diet: You Are What You Read…Really (so read this) / J.A. Ginsburg / TrackerNews Dot to Dot