Tuesday, March 31, 2015

Book review: Karen Joy Fowler "We Are All Completely Beside Ourselves"

This was one of the most enjoyable books I read recently. This is definitely character-driven fiction, and not just primary, but secondary and tertiary characters too were developed with unparalleled depth and nuance.

The plot revolves around a young woman named Rosemary, who is trying to figure out what happened to her "sister", a chimpanzee named Fern. In their early childhood Rosemary and Fern (who were born just months apart) were raised as siblings; Rosemary's parents treated the chimpanzee as their own child, encouraging her to do everything Rosemary did. Then, when Rosemary was five years old, Fern suddenly disappeared from the household, and Rosemary never fully recovered from the loss of her sister.

On one hand, it wasn't hard to figure out the mystery of what happened to Fern; it was clear that Rosemary's parents gave Fern away because they just couldn't keep a chimpanzee at home anymore as Fern grew bigger and stronger. Historically, cases of raising a chimp as a human never ended well, because humans were never able to control the chimp's aggressive tendencies; this novel leaves no illusions that this attempt could have been anything else but doomed, and the adult Rosemary understand it very well.

However, there is a twist at the end that makes it particularly ironic -- but by the time it is delivered, we readers are quite skeptical whether we should believe it. That's what makes this book so captivating. As Rosemary tries to piece her past into a coherent narrative, it becomes increasingly clear that none of the characters' versions of events can ever be trusted. Rosemary herself doesn't trust her memory, believing that many of her vividly remembered childhood episodes never could have happened. But we also find out that throughout Rosemary's childhood her parents and older brother Lowell manipulated her, feeding her various lies, fictions, and non-answers to avoid accept responsibility for their actions. So later in the book, when Lowell delivers a key "revelation" to the now-adult Rosemary, there is no reason to think that he isn't manipulating her even then.

This book reveals, in an understated way (because Rosemary is never bitter or angry towards her family) how even highly functional, seemingly caring parents can be subtly cruel towards their children. They raised Fern among humans, knowing that she won't be able to live with them indefinitely, yet making it very hard for her to adapt to a life among chimpanzees. It was just as bad that Rosemary's father, a psychologist, treated not just Fern but Rosemary too as an experiment. While she and Fern were together, they were both studied by graduate students in her father's lab. Everything Rosemary said was interesting to them, but only because she was part of the human-chimp speech acquisition experiment. With Fern was gone, nothing Rosemary said interested them anymore, and her endless chatter became a nuisance.

What I liked best about this book was endless observations about the nature and unreliability of memory, about theory of mind, about animal rights, and the way those meditations were wrapped into suspenseful plot arc.

Tuesday, March 03, 2015

Build Something Awesome… but what?

"Build Something Awesome with OpenStack and the Open Cloud" hackathon could have lived up to its name, if only someone knew what kindof awesome things one could build with OpenStack. Or could explain it to developers. But I'm getting ahead of myself.

Maddy (left), our unofficial team lead and Python expert, and Anna
Maddy (left), our unofficial team lead and Python expert, and Anna. More pictures from the 2013 OpenStack Hackathon are in my photo gallery.

The September 14th, 2013 OpenStack hackathon was the first hackathon I ever attended. It was organized and sponsored by Rackspace, creator of the OpenStack project. I didn't know much about it, so I assumed that it was just yet another API that lets you build applications. The hackathon event page did not hint at what kinds of applications you could build with it. So I was surprised when it turned out that for the kind of application my team wanted to build, OpenStack kind of… got in the way.

The hackathon started with a 2-hour presentation by Rackspace's developer advocate. He guided us through a tutorial on how to create a DevStack server on Rackspace. DevStack, by the way, he said, is not the same as OpenStack, but the distinction was lost on me. This was by far not the most subtle point that was lost on me.

Left to right: Paige, Jess, Maddy (our unofficial team lead and Python expert), and Christine
Left to right: Paige, Jess, Maddy (our unofficial team lead and Python expert), and Christine. More pictures from the 2013 OpenStack Hackathon are in my photo gallery.

After the presentation our team of five, all female developers, rolled up our sleeves to start building the application proposed by one of our members. I investigated the server created during the walkthrough, looking for the directory where Apache keeps HTML files and web scripts. That's where I thought I would place a web application (at the beginning, just a Python script) that we were writing. I saw there was an index.html in the /var/www directory, but its contents were not the one that were displayed when you pointed your browser to this server's root URL. So I went to the presenter and asked why that was. He said, better don't try to use Apache on that devstack server; it's configured in a special way, and if you want to run an ordinary Apache web server, you'd be fighting it all the way. You should create a basic Linux server on Rackspace, not a Devstack server, and install Apache on it. I tried asking him what could we do with this Devstack server, if not write web applications. He said it was mostly for learning. Learning OpenStack. Well, that still didn't answer my question what I could do with OpenStack, but oh well, maybe I should have found out beforehand? It's not like it was any secret that this hackathon was for building things with OpenStack: it was in the name of the hackathon. But I wasn't the only person who went there with assumptions that I could build web applications with it.

Other lessons from this hackathon were more interesting, and came from my attempt to find out what can be accomplished during a hackathon. More about it in the next blog post.