How could I have lived for so long without knowing that I could set up my command line with vi key bindings? Well, for anyone else who uses vi and bash, here’s the secret…

Create ~/.inputrc

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off

add this to your .bashrc

set -o vi

Thanks Adam!

New research tells us what seems intuitive to me as a parent: play is important to learning. A recent New York Times article by Tara Parker-Pope reports that “play and down time may be as important to a child’s academic experience as reading, science and math, and that regular recess, fitness or nature time can influence behavior, concentration and even grades.”

…the brain uses two forms of attention. “Directed” attention allows us to concentrate on work, reading and tests, while “involuntary” attention takes over when we’re distracted by things like running water, crying babies, a beautiful view or a pet that crawls onto our lap.

Directed attention is a limited resource. Long hours in front of a computer or studying for a test can leave us feeling fatigued. But spending time in natural settings appears to activate involuntary attention, giving the brain’s directed attention time to rest.

In addition to the study, publish in Pediatrics, the article quotes Dr. Stuart Brown, the author of the new book Play: How It Shapes the Brain, Opens the Imagination, and Invigorates the Soul
. Brown calls play “a fundamental biological process,” and says that people who play as children “learn to handle life in a much more resilient and vital way.”

I say, it’s not too late… whether or not you got in enough play time as a child, take some time out to play. You’ll think clearer and be happier. Who needs a study to tell you what you know is true?

Sam Wan writes about preconditions for a playful experience or how to prepare to “get in the flow.” He highlights 3 related preconditions:

  • Memorizing a few basic rules and internalizing them into a mental model
  • Practiced ability to iterate quickly without conscious thought:
    feedback loop + muscle memory + internalized mental model
  • Immediate contextual information that fills in gaps in the mental model during active learning: code sense, tooltips, contextual documentation, quick jump to reference documentation

A few related posts where I’ve written about playfulness before:

  • “It is the essence of play that a new relation is created… between situations in thought and real situations.” — Vygotsky Mind in Society (creativity as play)
  • A few basic tactics to create a playful experience (work as play)
  • “True education flowers at the point when delight falls in love with responsibility.” — Philip Pullman (less grammar, more play)

I’ve found it helpful to consciously separate learning from doing, but hadn’t thought about how it enables “flow”. I set myself to different activities and a different frame of mind when my goal is to learn (acquire knowledge, internalize a mental model and develop “muscle memory”), rather than when my goal is solve a specific problem (which relies on applying specific knowledge and “know how”). There was a specific experience that led me to be conscious of this separation of learning and doing.

When I was working on Shockwave at Macromedia and all this web stuff was new, I was assigned the task of trying out Shockwave as a windowless plugin. I was told that Jonathan Gay, the lead developer on Flash, made it so Flash worked in windowless mode in just a few hours. I set out the next day to figure it out. I spent the whole day reading and re-reading the meager documentation. I could find no code examples and didn’t want to dive into modifying the perhaps overly complex Shockwave code without having a clear understanding of a workable approach. By the end of the day I was frustrated an demoralized. How had Jon gotten this working in just a few hours? The next day, I decided to set aside my pride and just ask the guy.

So I walk over to his cube and ask him about it. He offers to send me over the working Flash code, so I have a good sample, which I gladly accept. Then I just have to ask: “I found the documentation to be pretty sparse and heard you got this working in less than a day. Did you find other resources? How did you approach it?” He replied that all he found was the same poor documentation, but that he had spent a few days experimenting and writing his own simple examples, then when he actually sat down to make the changes to the Flash code, it just took a few hours. I was floored. So this is how boy-genius does it.

By redefining the exercise into two tasks: learning about it and doing it, he accomplishes three things. 1) He frees his focus to learning all about the domain, what Sam might call developing his internal mental model and muscle memory; and then 2) applies that learning to the problem at hand, turning a complicated problem into a simple one, then 3) with a brilliant stroke of self-marketing, he excludes the learning time when reporting his accomplishment. In all fairness to Jon, I don’t think he was trying to position himself as the super star he is. He was accurately reporting how long it took him to modify the Flash code, reflecting how long it would take him to do a similar task in the future — pretty useful data.

What I learned from Jon was not the approach, since I would have followed the same practice of learning, then doing. What I learned was that by framing the experiences separately, I felt myself to be more productive, happier and found it easier to achieve “flow” during the learning phase, and that by tracking the time it took me to apply that learning, I had a useful data for estimating future tasks, and, of course, it always feels fabulous to get things done in a short amount of time.