Ceci n'est pas une pipe.

A description of a doctrine without words is not a doctrine without words.

Over the last few days, the internet saw a layered explosion of conversation regarding Adria Richards, and a conversation which happened near her at PyCon 2013. To me, it looked like this:

The first circle represents the initial event. The second circle represents Adria's public reaction. The third circle represents the reactions of HackerNews, Twitter, Playhaven, SendGrid, Anonymous, 4chan, and the internet at large to Adria's reaction. The fourth circle represents the analysis of the internet's reaction. And, for the sake of brevity, the last circle represents the analyses of this analysis. Some where in the middle of that rainbow pile there was some introspection. (Aside: I consider all of these articles worth reading.)

I'm the sort of person who likes to believe I'm above such flame wars, even before I know what they are about. And it was easy for me to nurture that unproductive belief in a little log cabin of silence. Fortunately, I was brought into a conversation in our office and knocked off my little throne of self-righteousness. Someone said something. Someone took offence. Someone else took offense on behalf of the offended (and, of course, themselves). It was discussed and the Original Someone took offense to the implications of that discussion. That's when I stepped in to "help out". Now our picture looks like this:

I've shrunken our original semicircles to avoid a hyperbolic 3364 x 1740 PNG.

No need to thank me, friends. Glad I could help.

Keep in mind that this was a respectful and lucid discussion; everyone I work with is intelligent and thoughtful. But look at those layers: none of us could possibly share a context. It was difficult to nail down what we were even debating most of the time. Our own emotions? A specific incident? The reactions to an incident? The state of our industry? The incident as a microcosm of our industry at large? The state of gender roles and sexuality the world over? Some muddied mix? Anything we'd unravel seemed to hide another layer of experiential and emotional complexity which would quickly bury us again.

It wasn't until hours after Tejas stepped in and suggested we all take the weekend to sleep on it that I realized I was making precisely the mistake I presumed everyone else was making. I believed I understood. I believed I had clarity. I believed if they would just listen to me I could show them the answer. Specifically, I believed I had the one piece of advice everyone else was missing: "Maybe you should take some time to reflect on how she might feel." The irony still hurts.

I will continue to participate in this conversation. (And the related conversation about stopping rape, as it is ultimately more important.) Many of the links in this chain are ugly links. When a conversation is itself about our understanding of one another -- and thus how we treat one another -- those ugly event-links are (a) pointers to discussions we need to have and (b) proof the conversation is valuable, because we haven't stopped hurting each other yet. The recursive nature of the conversation shouldn't scare us but it might suggest we speak carefully.

But before I participate in the conversation, I'm peeling back all ten layers and taking stock: Who am I? A healthy, educated, middle-class, white man. I will never be a woman and I do not have the imaginative capacity to understand what a woman feels. I will never be another person and I do not have the imaginative capacity to understand what another human being feels. I can learn by listening with an open mind, even if I will never perfect my understanding. How beautifully this dovetails with my position of privilege! It's the perfect time to shut up and take some of my own medicine: Reflect.

How do I really see other people? How do I really see myself? When do I judge you? When do I desire you? When do I reject you? Why? When my perceptions take life in my actions and my words do you feel threatened, comforted, intrigued, or confused? Why? Which link in the chain am I? Am I making things better?

. . .


defining the test for rubymonk

I wrote some time ago about defining the interface for rubymonk. Glancing at it again that post was a bit rambling. Sorry. However, it did introduce a concept I've been mulling over for the last half-decade: re-framing all software in terms of automation. Robots. I'll start with RubyMonk as an example, and then move on to others and counterexamples.

RubyMonk has quite a sophisticated back-end. The details aren't important for this discussion, but it is essentially a virtual sandbox which quickly and safely executes any programming language (not just Ruby) in isolation, preventing that code from interrupting other users' exercises, other processes running on the RubyMonk servers, other files on said servers, or the clean operation of rubymonk.com itself. Once this sandboxing technology is in place, the interesting question is no longer "how do we run arbitrary code submitted from a browser?" but "how do we teach someone Ruby?"

Everyone on the RubyMonk team has taught Ruby to classmates, colleagues, kids, and friends. The activity of "teaching Ruby" is a known quantity. In the world of yesteryear, however, these lessons always involved our physical presence. From our teachers we have learned how to recognize certain categories of mistakes and how to introduce a correction. From them we have also learned when not to correct someone -- sometimes feeling the pain of a mistake is more memorable. Conversely, they taught us to identify frustrations and to step away from an exercise when it becomes too emotionally taxing. They taught us to ask the right questions when someone doesn't appear to understand a concept. Or to employ humour, analogies, and anecdotes to colour a subject. Finally, they taught us to teach. And so, when we work with a new programmer, we also teach them to teach.

This is an incredibly human endeavour, teaching. But all software is an immaterial robot. We need to bridge the divide. How does the RubyMonk robot work? Today, when you attempt an exercise on RubyMonk, you are learning from an interactive book: first you read a blurb about lambdas or ActiveRecord or your topic de jour. Next, the robot quizzes you by offering up an exercise. Your solution to the exercise is sent to the RubyMonk server and executed against a small battery of tests -- each of your test results is returned to you with a brief explanation. If you pass all the tests, you pass the exercise. So what are we missing? Well, we can't teach you TDD with this method yet -- how do we test a test? And if the solution to that seems obvious, how about teaching SQL? Prolog? Portuguese?  Calculus? And once you solve those problems (and we largely have), the real challenge emerges. So far the robot does not recognize categorical mistakes. The robot does not infer when to let you suffer through a mistake to make it stick (perhaps thankfully!) nor does it know when to tell you to step away for a tea break and give your mind a rest. It doesn't ask the student dynamic exploratory questions on difficult lessons. It doesn't remember the last time it forgot the order of parameters to the signature of Enumerable#inject.


The challenge of RubyMonk -- as is of all useful software -- is to replace a human being. And while the task of teaching is surely orders of magnitude more complex than the task of photocopying documents or playing your favourite David Bowie track, the goal remains the same: Build robots. Free up human time. iTunes is a robot. Prismatic is a robot. RubyMonk is a robot.

I've only been back in the startup world for one year. There's a lot of great stuff going on around the world right now. The last time I lived in India there was no Cleartrip or Redbus, which are robotic replacements for travel agents and telephone booking. Online banking was a non-starter. In 2013, every country seems to have technology covering the basics. The better technology companies are geo-agnostic or are striving to be. I don't want to hire a robot I can't take with me to Thailand (it's always fun to see which part of my Rdio collection is missing when I land in a new country... but I'd still prefer if it were all there). The world is getting smaller and faster and more overwhelming -- but thankfully a generation of nerds is fighting to smooth the transition for you. When we can't build a robot to help you, we'll fight the antiquated laws which stifle progress. At least, some of us will.

I see a divide between the inevitable future of beautiful, helpful robots built by a new generation of businesses (and non-profits, for that matter) and the ephemeral world of peculiar toys established on a misguided premise. This hit me in the face as I read through The Lean Startup, agreeing with everything Ries had to say but feeling a peculiar unease throughout the entire book. Why was I getting such a barfy feeling in my guts reading a book of sensible advice? It only occurred to me once I'd finished that most of his experience was drawn from building IMVU, which was a robot version of human... what, exactly? I'm not sure, either.

It's a good thing for those of us in the startup world that there is money to fund such endeavours: GroupOn, Instagram, the iPhone-ordered-artisanal-bread-aged-cheese-local-ingredient-biodegradable-packaging... grilled cheese sandwich. A cornucopia of startups whose primary customers are other startups. (Ever read a short story by an English Lit major about an English Lit major who suffered from writer's block during a short story assignment? Yeah. That.) A thousand other companies that lack a real goal, a real business model, a real raison d'être. If those companies can find enough money to feed their employees, surely so can those building software which solves real problems.

At C42 Engineering we're currently working on a process to help us identify meaningful problems and gaps in the solution space. We'll publish everything about this process because there are big, hard problems left to solve. And each of those problems is an opportunity for someone to build an elegant robot. We can't wait to see yours.

An Atheist's Glimpse of God

One of the benefits of working for a startup like C42 Engineering (where I help build rubymonk.com -- the name is a coincidence) is the broad range of experiences available, both in and out of the office. Thanks to our flexible work environment, I was able to travel to Himachal Pradesh for a couple weeks of experimenting on myself as a break from experimenting with software. I know not everyone enjoys such benefits, so let me start by saying this: I am thankful.

An introductory course in Vipassana meditation is 100 hours of meditation practiced over 10 days. I took this course in late 2012 and it was simultaneously the hardest and most interesting thing I've ever done. In the months since I took the course, I've tried dozens of times to explain the experience in print and in person. I've consistently failed.

With that in mind, let's all just agree this article will also be a failure. Low expectations will prevent us from taking things too seriously and prevent me from talking too much. Hopefully.

The Problem

I haven't identified with atheism since I was an angry teenager but in 31 years on Earth, I've never put faith in something greater than myself. That's fine. I've never had much faith in myself, either. The bigger things aren't missing out on much. I've called out this fact because I expect my retelling of my experience to sound considerably religious, even though I am not.

I ask the same questions we all ask. Who am I? Who are we? Where are we from? What is our purpose? What is my purpose? How can I help? Usually my answers come in the form of pithy quotes from scientists whose attractive wisdom I've come to wish was my own. Other answers I've found in secular interpretation of religious and philosophical tomes: the bible, the torah, the quran, the tao te ching, the writings of chuang tzu, calvin and hobbes, dr. seuss. And though many of these answers are momentarily comforting, I've spent the majority of my life in a state of philosophical discontent.

I'm a middle-class kid from Western Canada. I have a loving, supportive family. I couldn't ask for better friends. Ninety percent of Maslow's pyramid has been taken care of for as long as I could remember, leaving me to arrogantly believe it's my responsibility to improve this world, even if I have no idea how to do so.

Enter Meditation

I didn't start meditating for some spiritual or mystical purpose. I started out of arrogance: "Sit there and think about breathing." Yeah. That sounds pretty easy and relaxing. I bet I'll be good at it.

Once I realized that meditation is incredibly difficult, arrogance transformed from my reason for attempting meditation into my reason for continuing to try: After a while, I noticed that it did start to relax me. Not during meditation, of course: the meditating part was still insanely difficult. But if I meditated for half an hour before work, I found myself occasionally enjoying the unpleasant bus commute. Sometimes there was a marked change in my behaviour for the first few hours of the day. I was less arrogant. I was less of a jerk in general.

Anyway, that's pretty boring. The point is: meditation is hard. To make this point clearer, I've set up an interlude so you can meditate if you've never tried it before. It will only take 10 minutes, which is relatively short compared to the 6000 minutes of an introductory vipassana course.

Meditation isn't usually very complicated. Try this for ten minutes:
  • put your hands on your lap, close your eyes -- don't move or open your eyes until you hear the 10-minute gong.
  • focus on your breath; feel it wherever you can -- in your nose, in your throat, in your lungs, in your diaphragm.
  • distracting thoughts will come up; just ignore them. when you notice you've been distracted, gently let go of the thought and focus on your breath again.
  • if you get really distracted, breathe hard a few times so your breath is easier to focus on.
  • don't feel disappointed or defeated when your mind wanders... it's just what happens.
  • make sure you hear a gong sound when you click "Start"; the timer only works in modern browsers (HTML5).


How did that go? Was it difficult? If you found it easy, try this twenty minute timer.


You are amazing.

The Material

The course is completely free of charge. The course center is spartan. The stone buildings have no ornamentation. There is no text beyond the essential. ("Breakfast is served at 6:30AM.", "Toilets this way.") There is no imagery whatsoever, not even a little stone buddha statue. Males sleep in little huts on one side of Camp Goenka and eat on the male side of the kitchen. Females sleep on the other side of Camp Goenka and eat on the female side of the kitchen. Everyone meditates together in a big hall.

The course is taught by recorded video and audio, which gives the drab surroundings an extra-culty feel. All vipassana centres worldwide use the same video, so one hopes Mr. Goenka records a new one in high-definition before he dies. The DVD used for the course already looks dated; in a couple decades it will resemble Scientology recruitment videos from the 1970s... in medium, if not in content. Some of the instructional audio involves chanting. I'm not a fan but by the end of the course I was accustomed to it. The chanting, as it turns out, is little more than the instruction repeated in Pali.

What happens on a vipassana course is very simple: You meditate. There are breaks in the day to eat, sleep, poop, shower, and walk around. Sometimes a dog would wander through the course centre and we could pet him. That was exciting. Sunset was the only daily sensory event of note.

What doesn't happen on a vipassana course? Everything else. Just in case you were wondering, you can't: talk, read, write, exercise, eat your own food,  use the internet, use a phone, or look anyone in the eye. Some monastic rules (precepts) also apply: No killing (even mosquitoes), no stealing, no sex, no masturbation, no lying, no smoking, no drinking, no drugs. Thankfully, when so much is forbidden, some rules cancel each other out! It's easy to avoid telling lies when you can't speak. Though you can speak to the instructor and the volunteers, so there are one or two daily opportunities if you're really jonesing to tell a delicious lie.

Every day follows the same format. Vipassana centers exist in most countries across the globe and the course is run identically in each one:

Though it's never explicitly mentioned, the course is effectively broken up into three equal parts:

Days 1 - 3: Anapana (breathing) Meditation. These first three days are spent mentally staring at your nose. It's not as boring as it sounds because it's excruciatingly painful. Sitting still for ten hours a day hurts. "It will be painful." was the forewarning of the instructor when I complained about my knees. He was right. By the third day, I had experienced the greatest physical pain of my life.

Days 4 - 6: Vipassana (insight) Meditation. These next three days are spent learning and practicing vipassana. It's basically an extension of Anapana: rather than focusing explicitly on the skin beneath the nostrils, scan every bit of skin over the entire surface of the body. Over and over and over. Somehow, this actually calms the pain caused by sitting still for ten hours a day. The pain is not eliminated but it becomes much less significant.

Days 7 - 9: Deep Vipassana Meditation. The last three days of "serious" meditation are where things get weird. Surface scanning gives way to deeper penetration of the body. Physical pain takes a back seat to the volcano of emotion and memory one opens up after six days of attention turned inward. On Day 7, one girl ran out of the hall to sob and howl loudly in the courtyard. After the morning meditation on the ninth day, I broke down and cried in a way I haven't felt myself do since childhood. The meditation hall was so utterly silent on this ninth day it was almost impossible to believe this was the same crowd that was shuffling and burping and grunting and coughing and farting their way through the beginning of the course.

Day 10: Vipassana and Metta Bhavana. Noble silence is broken: we can talk and look each other in the eye again. The businessmen of the crowd are back on their Blackberries. Writing utensils emerge and some return to the book they abandoned nine days prior. As senses return and the intensity of meditation is visibly dulled, the world becomes real again. Each meditation ends with a few minutes of Metta Bhavana (loving-kindness) meditation.

For the following week, I also meditated twice a day at the vipassana centre. Everyone seemed to experience strange physical effects during the course but most of mine appeared during this period. Toni (a friend I'd met just before the course) found her hearing was so sensitive in the days following the course that the sound of a crowded restaurant was deafening. Pieter (a friend I met just after the course) found his sight was increasingly crisp each day until the tenth. 

The most peculiar physical reaction I had during this period was that as long as I was meditating twice a day, I slept comfortably on my back. I have never slept on my back in my entire life. I woke with no lower back pain for the first time as an adult.

The most surreal physical observation I made during this period was twofold: I started to feel deep into my body, on occasion. Once, into my bronchial tubes and the tops of my lungs. Another time, while lying down, I could feel the blood coursing through my cardiovascular system with unnerving clarity. I am a fragile little blood sack.

The Immaterial

Those concepts outside the realm of the physical are, out of interest, those which I tried to impress upon others in the months following my course. This is the section where I will fail, in case you thought I was doing a good job of explaining the experience thus far. I'll do my best but in the end I can only suggest that, if you are at all curious, you could try an introductory course yourself.

"It's strange that the very act of thinking about something makes it impossible to see it." -- Pieter Jan Visser

I didn't have words to describe this until my conversation with Pieter. In the last three or four days of the course, I started to see things. My eyes were closed, of course... and the "things" weren't really visual. However, far in the distance, on the horizon of comprehension, I saw -- briefly and for the first time -- something which resembled my beginnings. I don't know much about this thing beyond what Pieter said. To know it, to think about it, to try to understand it... was for it to disappear. I think it may have been recursive: defined in terms of itself. I can't tell you why or how.

Such a thing... this non-thing, born of nothing, apropos of nothing, ceasing to exist in the presence of anything else, is the closest I've ever come to experiencing anything religious or spiritual in my life. And yet, the process of discovery felt more scientific than anything else. Through sheer observation -- in the necessary absence of effort, suggestion, idea, word, colour, sound, smell, or taste -- an unadulterated reality appeared. It was strange and new but somehow it made sense.

Where this non-thing was very small and very hard to relate, the other idea which appeared toward the end of the course was much clearer: the meditation became an allegory, a microcosm, for the world around me. The past is immutable; why worry about it? The future is unknown and impossible to predict; why worry about it? Planning is not worrying, mind you. Just make plans with these two truths in mind. Meditation is terrific practice since there's no need to plan -- I just get to try my hand at avoiding worry. As an incredibly anxious person, this can be surprisingly informative.

A second microcosm becomes obvious after some time: After eight or nine days of internal monologue, I noticed that the way I treat myself is much like the way I treat others. Distraction was frustrating, my frustration with distraction was frustration with myself, if I was angry at the distraction I was angry with myself, and the anger never helped. Calmness and rationality prevailed every time. Gentleness. I had to be gentle with myself or I did more harm than good. I'm not certain, but I suspect it's true of my interactions with the world I live in as well.

And with that, my failure to explain my experience is almost complete. There's much I've missed. The hours of the course I spent doubting the motives of the instructors, the meditation itself, and my own sanity in signing up for such a thing -- all these doubts were quenched. My unexpected reaction to intoxicants when I returned home -- I still enjoyed them. My seeming inability to lie to myself by the end of the course -- I ask myself hard questions all the time but I apparently don't always answer from the heart. My frustration with the inclusion of Buddhist beliefs such as reincarnation, kalapas, and omniscience -- we were told to ignore these beliefs if we so chose; I ignored them. And still more remains.

Rather than exhaustively discussing every aspect of the experience, I'll leave you with what attracts me most to this bizarre practice: It is ordinary. There are no tools: Just sit down. There is nothing to see: Just close your eyes. There is nothing to believe in, nothing to talk about, nothing to do... yet it was more informative than any conversation I've had or book I've read. There is no literature to read, no philosophy to ponder, no behaviour expected of you. There are no gods, there are no drugs, there is no magic... yet it was more intense and revelatory than any acid trip.

As the Zen kids say: "Just sit."