1 Oct 2008
1. Writing Workshops
I took a couple of poetry writing workshop classes in college. They’re an astoundingly effective way to improve the quality of your work. The basic premise is that you get a bunch of people around a table and discuss their work. The moderator selects which works will be reviewed, and everyone reads them (usually before the actual meeting, especially if they are not very short). When your work is reviewed, you’re not involved in the discussion — you’re explicitly forbidden from saying anything until the very end. The end result is that you can’t play the defense; you just have to listen until the end, where maybe you make some clarifying points. Sometimes the criticism is bogus, but, especially if your moderator is good, it can be life-changing. It shows how smart a group can be when egos are held back. Like most great learning experiences, some people freak out and start crying, but if you endure and listen then both your skill and passion can grow.
Richard Gabriel’s book, Writers’ Workshops & the Work of Making Things is an interesting explanation and analysis of workshops in a variety of creative settings. Gabriel is a hacker-turned-poet who thinks workshops are an underutilized source of magic for software makers; I totally agree.
2. BarCamp and Open Space Technology “Unconferences”
If you’ve been to a BarCamp, like the three we’ve put together in Boston, this one shouldn’t surprise you. BarCamp is just an application of the simple group behavior tricks described by Harrison Owen in Open Space Technology: A User’s Guide. It comes down to something very simple: if you give people a way to communicate that emphasizes the ideas and not the personal status of presenters, they work together in ways that develop the ideas.
3. Google AppEngine
You probably could have guessed this one from my prior glowing blog posts about it, but as I’ve continued to use AppEngine I’ve begun to understand and admire the way it’s built more and more. AE has scalability by default: you can make your app scale poorly, but you’d have to work at it. Once you bend your brain away from relational databases a bit, AE has a surprising degree of elegance. Gloriously, there is no “Object Relational Mapper”. Queries are explicit but they’re also readable, in nice little Python code. Schema evolution isn’t an awkward ordeal: you can add a property, give it a default value, and whoomp there it is. And perhaps most importantly, the deployment process is (1) standard and (2) totally automatic. Automating deployment is now considered an industry best practice, and unlike many things described this way, is actually worth doing even when it takes a lot of work. Developing and publicizing a standard, easy, automatic deployment process for webapps might not seem like AppEngine’s main goal, but it may well show the light to a lot of hackers and companies.
4. Our Ability to Rationalize the Random
I’m convinced that one of human nature’s most entrenched bugs is the compulsion to seek specific causes for complex situations. It is something we need in order to learn from our mistakes, but it’s often such an overriding compulsion that we vastly underestimate the significance of Factors Too Unpredictable Or Uncontrollable To Compute, i.e. luck.
In a mostly efficient market, like the stock market, the primary determinants of a commodity’s value are understandable things like supply and demand. As recent events show, cultural and psychological factors are also powerful, but when a recession hits it still makes sense to look for causality because it’s quite likely we can learn something about governance or how to evaluate risk. So the cause-seeking impulse is quite valuable.
But in an inefficient market, like dating, that impulse becomes a vulnerability. The “chemistry” that we feel or lack with another person has its basis in a lot of things we can’t reasonably control, like the genetic- and current mood-compatibility of the pair. Considering the huge range of possibilities on either side and the tiny space of compatible matches in the middle, the most likely outcome of any date is failure. But despite this objective fact, it’s damn near impossible not to feel personally rejected if a date doesn’t go well. We go over our appearance and scrutinize every word we said, even though it might well be more productive to just try a lot more dates without thinking so hard about it. To reinforce this behavior, we go watch movies where people, if they’re good and willing to take some chances, eventually get what they want/deserve after, maybe, one or two attempts. Trying again is, of course, necessary if you’ve failed once and want to succeed, but you probably have to try again a statistically significant number of times.