Tuesday, July 30, 2013

Why tampons suck / lifehack for ladies

Which would you rather put in your mouth? Which would feel less uncomfortable taking out of your mouth again?

Pleh. I am getting kind of uncomfortable thinking about putting either of those in my mouth, but I'd prefer the silicone one that didn't absorb my spit, dry out my mouth, and leave little tufts of cotton left over. One of those things is like a tampon.

Normally tampons stay out of my life and don't bother me. But this intimidating little girl at camp got me kind of riled up. Now I feel compelled to explain why.

#1: Timing

Related to the cotton ball metaphor above, if you take a tampon out too soon, it's dry and kind of uncomfortable. If you leave it in too long, it's, uh, more moist, but more likely to have leaked. You're not supposed to leave them in for more than 8 hours, so you should need to change it right before bed, both to avoid scary-sounding "toxic shock syndrome" and to avoid leakage in the night. It's like a perpetual optimization you have to solve in your head for some number of days every month for many many many years of your life.

#2: Disposal

You can NOT flush them down the toilet, despite what the packaging says. So you put them in the trash. It's just kinda gross and wasteful. I've heard of dogs eating tampons out of the trash but I have never had a dog while also having a period. 

#3: Supplies

They make different sizes of tampons because of reason #1 and people having different amounts of flow during different times. You have to buy and keep on hand all the different sizes you could possibly need. They all cost money -- part of the lady tax. They make different kinds with different materials, different applicators, different expanding/absorbing patterns. It's up to you to buy them, experimentally put them in your body, and figure out which ones work for you. Then the brands get all new and modern and change on you. You know how you find a favorite cereal/deodorant/shoes and buy it a lot and use it a lot and then suddenly they CHANGE IT or STOP MAKING IT altogether? It's devastating, but especially so when it's a product for your fucking vagina. I am still bitter at Tampax for eliminating the cardboard "satin tip" applicators.

Lifehack: menstrual cup

Getting one of these was like entering the fucking enlightenment. It solves all of the problems above. You can wear it for ~12 hours straight, for light days and heavy days. It doesn't leak at all, if you've put it in right. You change it when you fucking want to change it, like when you're taking a shower. You dump the blood down the drain. You reuse it. You wash it out and boil it to sterilize it. You buy ONE and use it until you lose it or melt it or your pet destroys it (I've only read about this) or you feel bad about not giving the company more business. I bought my diva cup over 8 years ago (at the Herb Room in Santa Cruz because I was a hippie college student) and it's still going strong. I have avoided the use of over ~1,000 tampons. 

The two downsides of menstrual cups are that a) people find them even creepier to hear about than tampons and b) the learning curve is a bit steep, and if you put it in wrong, it's failure mode is pretty catastrophic, like it's not even there.

Monday, July 29, 2013

A lack of empathy on the internet

This tweet (and some of the responses) caught my eye the other day.


What was that tweet about, I wondered? A frustrating general truth about the internet, and/or commentary on a specific event? Ah yes, it's probably related to Phil Fish, who has canceled Fez 2 and is quitting games. That sucks. I don't even know the full extent of what went down, but I would hate to be driven away from my passions/career by some entity that fought against me and turned my emotional responses against me and was outright cruel to me. 

Speaking of games, there was a game jam at my house yesterday. We semi-ironically listened to some music from Fez and other music by Disasterpeace. One of the randomly chosen themes was Stockholm Syndrome, so I read about nasty things humans do to each other and the bizarre ways humans respond. I made a game in Javascript that started out with fairly good intentions. I wanted it to be a reasonable game template for a friend who was learning to program. I wanted to incorporate the game jam's themes somehow. I wanted a fun "graphical" reinterpretation of Candy Box ! with more compound-candy-interest. I wanted the player to experience Stockholm Syndrome so I needed the candy man to be threatening and abusive with small bouts of kindness. I think I made the candy man too creepy to feel positive about, though, so I had to throw in some victim blaming: (e.g. "It was your own love of candy that brought you here!") It's a weird game. I didn't really know how to end it/I didn't really want to end it. You can experience it here or the creep-free, candy-only version here.

The game doesn't really capture my thoughts, though. There is so much more that I've been thinking as I observe the (online) world around me. I need to write long English paragraphs instead. So here goes. This post is about hate, bullying, harassment, nasty human behavior, and empathy.

Responding with a justification

If something is uncomfortable, we try to explain it away, find a rationalization for it. Then it's not quite so uncomfortable. This seems to be the basis for Stockholm Syndrome (according to a Freuidian hypothesis on Wikipedia) wherein the victim identifies with and adopts the values of the aggressor in order to make them less threatening/resolve cognitive dissonance.

I don't think that's a good thing. I guess we all have Stockholm Syndrome with respect to the internet/life.

There are so many nasty things we wind up trying to justify that really don't need it.
  • Rape: S/he was asking for it. 
  • Bullying: S/he needs to just ignore it. 
  • Vile threats: The internet is full of trolls and that's just how things are.

I reject these justifications. Threats and rape and abuse don't deserve to be justified and rationalized away. Even emotional manipulation in a relatively benign relationship does not need to be justified and made okay. These things deserve to be acknowledged... and then addressed head on. 

(Meta comment: This whole blog post is kind of me trying to break down and justify this discomfort so that it leaves me alone. Hmm.)

Victim blaming

Victim blaming is a pretty big part of responding with a justification. Find out more about it here. Don't do it. If you catch yourself doing it, consider why and if what you are doing will have any positive benefit except to make yourself feel better about someone else's terrible situation. My brain now automatically flags comments/articles/actions that fall under this category and then I feel sad and annoyed. Try empathy instead. Or just not getting yourself involved.

Tomb Raider

This article has stuck with me for over a year. Apparently, the "boss level" of some new-ish Tomb Raider game involves fighting off some rapists. If you lose, Lara gets raped. It makes me feel sad for Lara Croft and annoyed that this was how some game designers thought to make players connect with the character. What, why, that's not okay. The article has some good quotes to explain blaming the victim. I don't know how to segue into them, so here:
“She is literally turned into a cornered animal. It’s a huge step in her evolution: she’s forced to either fight back or die.” Generally, character evolution involves how people respond to situations, not what other people do to them. ...
Kat Howard points out how disturbing it is to have whether a character is raped be entirely dependent on the actions of the player: “Here is what we get asked: What were you wearing? Did you know him? Did you scream? Was your skirt too short? Were you in a bad part of town? Did he spend a lot of money on dinner? Were you wearing a bra with that dress? Did you let him touch you? Did you hit him? Did you fight back? Did you fight back enough?”
What. Lara Croft was already sexualized to the extreme... and now this. Go watch Feminist Frequency for more like this.

Anonymity and accountability

I think face-to-face communication can smooth over a lot of ill will between people. And maybe tying peoples' online identities to their real identities can help hold them accountable. But people are still non-anonymously bullied and harassed on Facebook and driven to suicide. And people will still spew hate at each other in person.

Cars vs. bikes

Here's another fine example of blaming the victim: drunk driver cuts off cyclist who is minding her own damn business in her own damn lane, vehicles collide, cyclist loses chunk of thumb, and people on the internet say the cyclist should have been more careful. What?!?! I hate you, Internet. The cyclist, Karlyn, who I worked with at Startup Weekend and is awesome, had the most dignified response I've ever seen:
Thanks guys... agreed, responsibility is shared all around. Although I don't think a bike lane would've prevented the crash, an infrastructure that legitimizes bikes as transportation and separates them from traffic is necessary. There are a million reasons why bike transpo is good for people and cities everywhere, not to mention it's cheaper for everyone involved! I like the idea of holding bikes accountable while riding on the roads, and maybe a formal license would help with that. Bottom line, look out for yourself and each other, wear your helmet, and in Bike + Car crashes, bikes always lose!!

Why are people nasty to each other?

Get ready for a big ol' justification! I think it's for sport. That doesn't mean it's good or right. I think it gives people certain feelings/experiences that they/we as humans crave, but that there are other ways to get similar feelings and experiences.
  • It can be a challenge (a game) to come up with the nastiest thing you can think of
  • It requires some creativity (e.g. the who/what/where/how details of a vile thread)
  • It's an outlet for self expression (see above point on creativity)
  • It's a way to communicate with/show off to their peers
  • It provides a bit of an adrenaline rush
  • It feels powerful 
  • It is one way to hold onto and preserve a specific opinion 


I don't know what each of us can do except try to be more empathetic and make the situation around us a little more positive.
  • Is your hobby sating nasty things online? Why is that your hobby and what do you get out of it? Consider alternative hobbies. 
  • Did you just blame the victim? Reflect on that. 
  • Are you about to justify/rationalize a nasty situation just to say something/provide input/show you have an opinion? Maybe there is a more supportive way to join the conversation.
  • Self-preservation: Extracting yourself from a toxic environment sounds like a good option to me. Lean on your friends. Pay someone on Mechanical Turk or ODesk to filter your tweets. I'm sorry, I totally just made that sound easier than it is... it can be hard/impossible to get out of a shitty situation, but it is worth trying.
  • Acknowledge someone else's shitty situation and let them know you support them.

Empathy to be found some places online

I ran into this Reddit thread on twitter in which a person discovered through a blood test that they were not biologically the gender they thought they were. I read a lot of it and felt many things: empathy for the poster. Warm fuzzies that the internet was being so loving and supportive. Curiosity about the physical, psychological, emotional and cultural logistics. 

I hope online culture changes

Humans have always hated other humans for one thing or another... for being from different tribes/races/religions/sexual orientations. But society changes and we look back and say, "Man, that was really messed up. We're so much kinder now." Maybe we're in an internet cultural dark age and the next generation will be more civil to each other. Maybe the internet is helping us be kinder to one another.

Seattle. Look how pleasant and jolly this bus is!

Thursday, July 4, 2013

CVPR brain dump, part 5 of 5

I think this is going to be the last post about this year's CVPR! It'll be about the fun times I had at the "What makes a good ground truth dataset?" workshop, which is pretty relevant since I make and think about crowdsourcing games that change how people collect data to hopefully collect better data.

Here's a list of many of the datasets used in computer vision research. The field is essentially driven by datasets -- designing and evaluating algorithms to "work" on these datasets, and basing success and publishing on improving the numbers by itty bitty amounts. That's not necessarily a good way to do things, so this workshop was held to discuss how ground truth datasets get made, how they're used in research, and how to create new high quality datasets, and what the disadvantages and advantages are of letting these datasets drive the field.

General Ideas

  • Big data does not necessarily imply good data.
    • It needs to be correct.
    • And it needs to have high coverage/be representative of what data in the real world looks like.
    • All the data we need to solve every task is already out there (on the internet) waiting to be found and used; I think new data needs to be explicitly collected for certain tasks.
  • Data is biased.
    • Check out this Unbiased look at dataset bias.
    • We need more datasets with more universal coverage.
      • Have you heard of WEIRD (Western, Educated, Industrialized, Rich, and Democratic) datasets? It's like psychology experiments that are said to generalize but might only apply to college undergrads. 
    • What are different ways to get better coverage?
  • Correctness of data is important.
    • It can be hard work to guarantee it's correct, and it can't always have that guarantee.
    • Crowdsourced data, especially, is hard to guarantee the correctness of.
  • With crowdsourcing in particular, these are some things we might want to get a better handle on:
    • What are good incentives? Money, curiosity, social connection...
    • What are ways to instruct users to contribute data?
    • What are ways to encourage certain things (e.g. contributing more useful data)?
    • What are the right kinds of feedback to give?
      • Feedback to show users what happened with their data and teach them to contribute more useful data
      • Feedback to encourage/motivate/delight

Middlebury Benchmarks

Daniel Scharstein gave an excellent talk about lessons from publishing and maintaining these Middlebury benchmarks. In addition to the datasets themselves, they also maintain an online benchmark evaluation where everyone can see how different methods compare, and it even captures "snapshots" of the state of the art research across time.
  • Good things about having benchmarks:
    • The community has a shared challenge to focus on.
    • The benchmarks can drive research. They were designed to be super challenging and then people find ways to solve these really challenging problems!
  • Bad things:
    • These datasets are pretty small, so it's hard to tell how general the solutions are. It's easy to overfit to the datasets.
    • People can focus too much on ranking.
    • People can focus too specifically on what the benchmark is about and not innovate in  valuable other directions...
      • because it's too outside the scope of what the rest of the vision community expects
      • or because there's nothing to evaluate on if moving in too new of a direction.

Middlebury + Computer Vision as one big game

These are some ideas and quotes that I couldn't help but relate to game design.
  • Obviously, the online ranking of how well your algorithm does in a benchmark is a straight up leaderboard. And that motivates a lot of people.
  • What Daniel said about maintaining the online benchmarks was how they had to put a lot of work into the UI, give it a nice compact representation, and nice visualizations of the results.
    • They had to make it easy to participate so that people would participate and find value in doing so.
  • He also said a number of things about making the datasets themselves:
    • "We're having a lot of fun creating these datasets!"
      • This was in reference to making a new stereo image dataset for specular objects, where they took a motorcylce, photographed it in all its shiny glory, and then covered it in matte clay spraypaint stuff and took more pictures including ground truth depth images.
      • The fun and challenge of capturing data is exactly what players experienced in PhotoCity and what I hope to recreate in my new project.
    • "Creating ground truth data is challenging and fun!"
      • This sounds similar to the quote above, but this was in reference to inventing new datasets to challenge the computer vision community. Exactly like designing more challenging levels for more skilled players. 

How to proceed

Carl Vondrick's last slide of the last talk of the workshop sums things up pretty nicely: 
  • share datasets
  • share annotation tools and code
  • share lessons

Wednesday, July 3, 2013

CVPR brain dump, part 4 of n

What is computer vision? We just don't know...*
Actually, we do know. Computer vision is having computers look at/interpret/understand images of the real world. While it's still sort of fresh in my mind, I'm going to list some of the interesting papers I saw at CVPR (Computer Vision and Pattern Recognition) 2013 that will hopefully give a sense of what people study and publish on in computer vision.

*allusion to the Water episode of Look Around You because I can't help but make semi-obscure jokes in my blog posts...

Papers papers papers!

  • Dense Variational Reconstruction of Non-Rigid Surfaces from Monocular Video
    • Ravi Garg, Anastasios Roussos, Lourdes Agapito
    • http://www.eecs.qmul.ac.uk/~rgarg/Variational_NRSfM/ 
    • I didn't know this was possible, making a 3D shape from a video of a face, especially with no face template (not even knowing it's a face)! The main trick is that the guy moves his head around a little bit from side to side, and by some magic, that is enough to provide 3D information.

  • Supervised Descent Method and its Applications to Face Alignment

  • Lost! Leveraging the Crowd for Probabilistic Visual Self-Localization 
    • Marcus Brubaker (TTI Chicago), Andreas Geiger (KIT & MPI Tubingen), Raquel Urtasun (TTI Chicago) 
    • http://www.cs.toronto.edu/~mbrubake/projects/map/
    • The idea of this paper was that given an map, and driving a car around some roads represented by that map, you could figure out where you were by looking at odometry and how the car was turning. Basically, by capturing turns and how far you'd driven between turns, you could see where that would fit on a map and make a good guess as to where you were.
    • The awkward things about this paper, especially as I actually read it now, is that:
      • It's not using any visual clues about where the car is... so I don't know where the vision is
      • I don't believe that using OpenStreetMap data counts as "leveraging the crowd". It's just using map data that happened to be put together by "the crowd"/not a mapping company. It's even less crowdsourcey than mining photos from Flickr, where at least you're tapping into this weird human-nature-what-do-people-take-photos-of thing. What do humans map using OSM? People interested in mapping map things that need to be mapped.
      • Their approach DOES, however, feel very much like what I would do as a human if I were lost. I'd walk and look at the shape of the road/terrain for clues and then I'd walk more to confirm my hypothesis.
A car driving and hypothesizing about its location on a map

  • Fast, Accurate Detection of 100,000 Object Classes on a Single Machine 
    • Thomas Dean, Jay Yagnik, Mark Ruzon, Mark Segal, Jonathon` Shlens, Sudheendra Vijayanarasimhan 
    • The answer is... use a hash table! That's the answer to pretty much every Google interview question, and it should not be surprising that this paper is from Google Research. But seriously, this does seem like a nice, clever, scalable way to do things.
  • Bringing Semantics Into Focus Using Visual Abstraction 
    • Larry Zitnick, Devi Parikh 
    • http://research.microsoft.com/en-us/um/people/larryz/clipart/abstract_scenes.html
    • Larry is at MSR and has ties to UW, so I actually saw a sneak peek of this at the GRAIL retreat last fall. He also has a neat and unrelated paper on Handwriting Beautification appearing at Siggraph this summer. 
    • The point of this paper is that we can start doing scene understanding before all the hard parts like object recognition are completely figured out. Just use objects that you already know about (these cute clipart things) and have people on the internet make a variety of scenes. 
    • They had people make random scenes, then make sentences from those scenes, and then from 1000 sentences, make 10 more scenes for each sentence. Then they studied which visual features were meaningful and which words were meaningful, and were able to automatically learn some pretty common sense knowledge. 
    • The end message was that even though the system appeared to learn "obvious" things (for humans, anyway) these things were not necessarily obvious to computers, but this approach of having people create clipart scenes was an automated way of learning common sense knowledge.
    • Also, people on Mturk thought it was super fun because they got to be creative!

  • Higher is Better: High-dimensional Feature and Its Efficient Compression for Face Verification 
    • Dong Chen, Xudong Cao, Fang Wen, Jian Sun 
    • http://research.microsoft.com/apps/pubs/?id=192106
    • The two main points of this paper were:
      • You're not using enough features to do face recognition! You could use way more and be way better at it! How about multi-scale descriptors at dense landmarks?
      • We suggested you use a lot of features and that's kind of scary, hard, and computationally expensive, so here's a trick for using a sparse representation for these large features that makes things work out okay in the end.
  • Exemplar-Based Face Parsing 
    • Brandon Smith, Li Zhang, Jonathan Brandt, Zhe Lin, Jianchao Yang 
    • http://pages.cs.wisc.edu/~lizhang/projects/face-parsing/
    • One of the reasons this was cool is that other face landmark techniques just find points, like the corners of the eyes/mouth/nose. This technique would find whole patches and even represent ambiguity like the region between the nose and the cheek being a mixture between those two regions.

Anyway, that's just a small sampling of what was going on at CVPR this year!

CVPR brain dump, part 3 of n: graphs of photos

Someday, there's going to be a world-wide geo-located network of photos called "The Photo Graph". Adam and I are going to make it. Every node will be a photo with a location and orientation on the globe, and a confidence for that pose/orientation. Photos that see something in common will be connected by edges that encode matching visual features between photos and the relative change in pose.
This is a graph of facebook friends, but imagine geolocated photos and their "friends"...

The important features of the Photo Graph will be:

  • It's easy to add new photos to the photo graph, whether they go into a heavily populated area or mildly populated area or a totally new, unpopulated area
  • It's easy to update the graph in the presence of new information
  • It's easy to correct mistakes in the graph (bad edges, edges that should be there but aren't)
  • It's easy to query the graph to get photos (and matches) to use for other purposes, like on-the-fly 3D reconstruction or geolocalization 
  • It's easy to attach other useful metadata to nodes and edges in the graph, such as tags about the photographer, or the content of the photo, or human-defined "architectural" points that match between photos that a computer would not have realized were matched.
Actually a graph of photos. This shows some PhotoCity photos and matches between photos. There were more matches than Fusion Tables could cope with, though. Also this graph is totally static and can't be grown/pruned/fixed/changed in any way.

How does this pertain to CVPR? 

I didn't even talk about the photo graph at CVPR, I just stalked other people's graphs of photos.

Here are some notable graphs that were spotted:

Not a graph, just geolocalized pictures on flickr from Crandall's Mapping the World's Photos

Also from Crandall's Mapping the World's Photos, but this time the graph just shows the visualization of a photographer's movement around Manhattan

A graph of photos of Dubrovnik from Cao & Snavely's Graph-Based Discriminative Learning for Location Recognition. The edges correspond to images sharing visual features. The layout of the graph doesn't reflect how the images' spatial location in the world.

The Angled Graph thing, which doesn't encode spatial information but does make a nice representation for a particular "CrowdCam" application. Video here!

Marc Pollefeys was giving a talk about many projects, including one on Discovering and Exploiting 3D Symmetries in Structure from Motion and he had a figure of a graph of photos with some broken and incorrect links. Since I can't find a relevant image, I'm just going to use my own. This is my own figure that shows the matched photos around a particular model. You can see on the left that there's a gap in the photo matches; they really should connect and be solid pink all the way around. This symmetry exploitation approach could really help this model.

Graphs graphs graphs! So obviously graphs of photos aren't new, but I think the Photo Graph could be something new and special that borrows ideas from these other graphs and extends the things you can do to a graph and with a graph.