Sexist by design?

No, no, I don’t mean intentionally sexist. What I’m talking about is when a product completely fails to understand the needs of a segment of it’s users, in this case women, and builds something that simply won’t work for them. It is built into the design. I have three examples, which is an admittedly small sample, I wonder if you have others?

Apple Store Staircase

I recently had to take my Macbook air to the Genius bar to sort out some goblins which were messing up the works. Yeah, ok, so my hard drive got corrupted.

I was sitting on the benches looking down to the first level, and I realized the stairs I had just walked up were quite transparent. Not only that, I could see the faces of people standing below, so I know they could also see up the staircase.

The previous day had actually been hot in San Francisco (a thing that almost never happens), and I had taken advantage of the weather to wear a dress. Had my appointment been that day, I would have had the choice between flashing more skin than I might like and missing my genius bar appointment.

Virtual Reality Makes Women Vomit

Looking at this staircase, I started to make connections. I knew nothing about The Oculus Rift virtual reality headset before I read Danah Boyd’s very interesting piece on how women often become nauseous and vomit in VR. Go read that and then come back. Seriously, she says it much better than I possibly could, and her research is compelling.

The rough idea is that there are two ways of perceiving distance. One is called ‘motion parallax’, the other is ‘shape from shading.’ Which one works for you is very much influenced by your gender and also your hormones.

Although there was variability across the board, biological men were significantly more likely to prioritize motion parallax. Biological women relied more heavily on shape-from-shading. In other words, men are more likely to use the cues that 3D virtual reality systems relied on.

This, if broadly true, would explain why I, being a woman, vomited in the CAVE: My brain simply wasn’t picking up on signals the system was trying to send me about where objects were, and this made me disoriented.

~ Danah Boyd

Motion parallax is probably somewhat familiar to CSS developers. Your brain assumes bigger things are closer and pays attention to how they move against each other. Shape from shading, on the other hand, is something we aren’t used to thinking about. Danah explains that your eyes flickr ever so slightly all the time and calculate microscopic differences in shading on every part of an object as it moves. As you can imagine, shape from shading is much much harder to calculate (but to be fair it also hasn’t seen nearly the resource investment of motion parallax).

Oculus has made a huge investment in a technology that will be very hard for nearly half of the population to use. It might have been easy to conclude that women lack the capacity to participate in VR or that they simply aren’t interested. But it is much more interesting (and challenging!) to ask ourselves in what way our product might be exclusive by design?

Google, Real Names

In 2011, Google made a choice to require people to use their real names on Google+ and other services. In the most innocuous case, in different cultures, your name can be considered something private.

Living in France, I finally noticed that it was unacceptable to ask strangers their name. You had to wait for it to be given. A name was (as best I could determine) private information that should be shared, not taken. You can’t imagine the number of times I committed excruciating cultural faux pas in order to arrive at semi-fitting-in in Paris.

Taken further, it is easy to imagine how victims or witnesses to crimes, political dissidents, or whistle-blowers would not want to have their real names exposed. Google made a business decision which will keep certain kinds of people from using their products. There is a reason dissidents involved in the arab spring used twitter and not Google+ to coordinate their protests. Yeah, ok, two reasons. ;)

I believe that social media is a tool of liberation and empowerment. That may seem fairly audacious when a good portion of the Western world is using Facebook and Twitter to post pictures of what they had for dinner or take quizzes on what TV character they may be. But the freedom to communicate openly and honestly is not something to be taken for granted.

~ Pierre Omidyar

Some people can use their real name and still communicate openly. Others cannot.

Pitchforks, bring out the pitchforks!

Did anyone sit down and say, “I’m going to make it impossible for women (and men in kilts) to get to the Genius Bar?” Of course not. Did someone say, wouldn’t it be rad if we made a virtual reality headset that made women puke? Again, of course not.

But does that change the fact that women may find it much more difficult to get to their Genius Bar appointments (or their job at the genius bar)? No. Will women be able to go through the same army training if simulator sickness makes them vomit. No. And when a technology excludes, how do future developments exclude even further because they cater to the audience they already have?

The architecture firm involved in creating the Apple stores is obviously incredibly talented (as are the genius bar employees who fixed my mac). The architects just didn’t have me in mind when the built the store. This is why I believe it is incredibly important to have diverse teams. We will build the most inclusive products only when we have the most inclusive teams. Otherwise, we may unintentionally exclude an entire audience, simply because we failed to understand their needs.

I was lucky. I wore pants that day. Try not to make your users wear pants.

Horn Ok Please

The first time I was in India, I travelled to Bombay, Agra, Delhi, Jaipur, and Udaipur mostly by van. It was impossible not to notice the multicolored painted vans. They are covered in painted flowers, designs, and the ubiquitous “Horn OK Please.”

And why does it say this? Driving etiquette in India requires that drivers honk before passing, “to let them know you are there.” Driving with a friend and his dad, I was most amused when his dad scolded him for not honking enough. You can’t even imagine how much honking there is on a four lane highway, with each car honking every time they overtake another. It brings new meaning to the word cacophony!

A few years ago I went to Goa, India. While there, I had the chance to drive both a scooter and a car. It was so much fun. Like a video game. It was the 5th or 6th time I’d travelled in India, and I’d consistently been impressed with how traffic works, often without signals, in some kind of natural organic flow. Different types of vehicles blending together to share space.

Though Goa is far tamer than other parts of India, I still found driving very inspiring. It was fun like the best kind of driving video games — which got me thinking…

Wouldn’t it make a great video game? Imagine that you drive different kinds of vehicles. Maybe you start out with a push cart that you push yourself, move up through ox drawn carts, rickshaws, scooters and motorcycles (with at least 5 passengers), cars, and, of course, horn-ok-please trucks. You have to negotiate traffic, avoid hitting cows sleeping on the median strip, and achieve goals (like delivering the vegetables on the push cart, or picking up and dropping off customers in the rickshaw). Meanwhile, trying to incarnate up levels to better vehicles. And if you do hit that cow? Definitely incarnating downward…


It’s amazing how the traffic flows… somebody build this please? Otherwise I’ll have to go back to India for the real thing. :)

Photo Credit: Horn OK Please by Dave Morris

Rails is mucking up my CSS – Already!

Or is it Ruby? I’m not really sure. I’ve been building the sample app in Chapter 2 of this Ruby Tutorial, and straight away I can see that my CSS is getting structured incorrectly for long term maintainability.

I used rails to generate the User automatically…

rails generate scaffold User name:string email:string

And Microposts…

rails generate scaffold Micropost content:string user_id:integer

I did not order these stylesheets

I took a look inside /app/assets/stylesheets/, mainly because I wanted to spend a bit of time in a part of the app that was likely to look more familiar to a front-end developer. ;)

What I found surprised me. There were already four stylesheets – none of which I would have created were I rolling a brand new app by hand.

application.css
microposts.css.scss
scaffolds.css.scss
users.css.scss

Erm, weird. Our CSS architecture should certainly not match our back-end architecture if we want it to scale. It seems like rails creates a new stylesheet every time I make a new model (and some other times too, because scaffolds aren’t a model).

How could Rails handle CSS better?

As a first pass, it seems like it would make sense for rails to add command line options to add CSS components. So you could ask rails to add buttons and it would create sass files for buttons, add .erb templates, etc. Maybe they could even be dependencies? I’ve been thinking that it would be cool to add components like buttons, boxes, grids and media blocks to NPM so that a project could require buttons and automatically get any code required for them without including an entire front end library. Maybe rails needs something similar.

Is that nuts? What do you think? Has your CSS stayed maintainable on Rails projects? I’d also love to hear about it if I’m misunderstanding aspects of Ruby, Rails, or the line between the two.

Photo credit: Christina B Castro