Editor’s Note: This post was originally published on Seattle 2.0, and imported to GeekWire as part of our acquisition of Seattle 2.0 and its archival content. For more background, see this post.
By Sasha Pasulka
I wake up these days and I complain about the mattress. My lower back hurts and my spine feels scrunched somehow. Twenty-odd years of being hunched over a keyboard or a book or a sandwich has taken its toll on the natural angle of my shoulders. At 29, I’m not old, but I certainly don’t feel young anymore. The signs of aging are noticeable on my skin and in my energy level and by the age of the contestants on reality TV shows. (Remember when any woman over 30 on The Bachelor just seemed desperate?)
For the first time, I’m aware that I’m still living in Body 1.0 as we approach Web 3.0. And it’s not just my body – it’s my Brain 1.0. It gets tired when it doesn’t sleep, and then it can’t sleep because it’s too tired, and then it misses the exit onto the 405 and has to drive four miles out of its way to get home. It picks fights with my boyfriend when he triggers an insecurity, it honestly thought it sent you that file last week, and it has no freakin’ idea which necklace goes with this dress, despite decades of exposure to fashion magazines.
None of the startups I work with today would, in good conscience, release me, even as a minimum viable product. I mean, I’m perfectly likely to die forever, taking all my data down with me, because of a minor miscalculation by an entirely separate person. I’m basically Windows Vista.
So I’ve plunged myself into the semi-escapist world of futurism, of reading everything I can get my hands on about how our bodies and brains won’t be stuck in 1.0 forever. I think about how computing power can and will solve problems much bigger than we can – problems we don’t see, or we can’t imagine have solutions, and we certainly can’t imagine have simple solutions sitting right in front of us.
I think about n-queens.
The n-queens problem is one that most computer science students will be faced with at some point in their undergraduate careers. The problem is this: Given an n-by-n chessboard, how many ways can you place n queens so that none is in a position to attack any other?
My introduction to this problem came my sophomore year of college. The professor handed us two sheets of paper. On one was written the n-queens problem, and the other was a photocopy of an 8-by-8 chessboard.
“Your project,” he said, “is to bring that board back marked with the position of those eight queens.”
The obvious question: “We don’t have to submit any code?”
He shook his head. “No.”
The brilliant teenage minds in the class were confused. “So … can we just figure out how to do it, and mark the board?”
The professor, known for his handlebar mustache and the old-fashioned pipe attached just beneath it, grinned. “I don’t care how you arrive at a solution. But it must be your own work. If you care to figure it out in your head, you are welcome to do so.”
We made eyes at each other around the room. The old man’s lost it, we figured. Oh well. Easy project. More time for beer.
Several days later, I sat down to mark my 8 queens on my chessboard. None could be in the same row or the same column, obviously, so that should narrow it down considerably. After that, it should be …
It was impossible. Hours later, I’d determined with great certainty that it was impossible. I had moved eight pennies around that chessboard ad nauseum. I’d drawn charts and graphs and scribbled out heuristics and lessons learned. Nothing got me any closer. This was a trick question. I’d applied the absolute extent of my intellectual capacity to what should have been a straightforward problem, and I couldn’t solve it. I called in some friends from around my dorm. They applied their own great intellects to the photocopied board, the corners now dog-eared and the page streaked by the pennies, and agreed that it was impossible.
To make sure I’d covered all my bases, I finally sat down to write the code. The computer, I knew, would confirm my findings, but I didn’t want to waver when the handlebar mustache peered over me and asked “Are you certain of that, Ms. Pasulka?”
It turned out to be a simple program, a quick recursive function that, at a value of n=8, can use brute force to arrive at every single one of the 92 solutions.
There are 92 solutions at n=8, from twelve unique patterns that can be rotated or reflected.
If you want a grasp of how un-freakin’-believable that is, sit down and try to find a single one by yourself.
There are over 4.4 billion ways to put 8 queens on an 8-by-8 chess board (that’s 64 choose 8, for anyone doing the math). If you know the queens can’t share a row or a column, congratulations – you’ve eliminated 16.7 million (8^8) of those. In other words – you’re still totally screwed. Even after applying a variety of more complex heuristics, you’re left with an unwieldy number of options, most of which won’t work. The odds of you coming across a solution are dismal.
A computer program of only a few lines can find all 92 solutions in seconds.
Most of college is a blur, but this moment for me is crystal clear, alone in the tiny computer lab in the first floor of my dorm, staring at the output on the screen as the code churned out one solution, then another, and then another. Checking these solutions. Checking each one and then checking it again.
This computer. It was a simple problem and I had been absolutely certain that it had no solution. This computer had solved it. And not just solved it – had found 92 equally viable solutions. I was awestruck.
It’s important for me to remember moments like that, to remember the string of moments where the capacity of these machines left me speechless: the first time my Prolog code solved a problem I didn’t think I’d taught it how to solve yet; watching a stream of data fly across the screen as distributed nodes chose a goal that surprised the team that developed them; even a simple hacked-together operating system I wrote for class, saving files and then, against all odds, reopening those files with the data intact. (Take that, Vista.)
As Body and Brain 1.0 move farther from lower back health and instead log the experience I need to hold strategic and C-level jobs, to move into the world of funding and personnel and spreadsheets and PowerPoint, they also move farther from being a person who knows what a recursive function is, much less writes one.
I need to be reminded that this is why I always come back to the world of software: because of what I felt when that computer solved n-queens. Because the things we can build – the things we do build – with these computers has changed everything and does change everything and will continue to change everything. Because we can teach these computers to make the impossible possible.