Toward the end of January I conducted an experiment that I didn't tell anyone about. At the time, #hackernews was filled with a lot of “how I hacked my x with y” posts so I thought I'd give it a whirl. My idea for a journal quickly turned into a hack session and what I learned along the way was quite fascinating from both a social and technical perspective. The following is a digest of my notes from the experiment followed by a conclusion which I believe accurately summarizes what I've learned.

I have a feeling I was in the first wave of people that #Facebook gave Graph Search to. It was mid-January, I had just quit Twitter for some reason I can't remember, and I had inadvertently started using Facebook again. I was up for some hacking so I sat down at a coffee shop, ordered a drink, tipped the barista, said hi to someone walking their dog, and whipped out ST2. I've never liked working with the#opengraph API so I went full-on luddite and set out to make my own. I wondered if I could write a simple console-based script that could perform some queries on #GraphSearch in the browser and save the results to a local, HTML5-powered, web database. I know my way around the client pretty well so it wasn't long before I had a working JavaScript utility to automate graph searches. This was how it began.

I had been thinking about how to "hack" #highschool all throughout that month. Most lives are lived by default and the lives of high schoolers are no exception. When you really get down to it, high school is about relationships with the opposite sex, both intimate and friendly. I certainly don't spend that much time in the social "sphere" of it all and starting from square one didn't seem like a good idea, so I extended my tool into a makeshift browser plugin and retrieved a list of female high school students in Portland that were in my immediate network and friended quite a few of them by hand—just temporarily—to aid in an experiment. A vast majority accepted quickly as it has become common courtesy to accept any and all requests you get on the social network. The rise of mobile helped too. From here I ran a simple query into graph search and emptied over one hundred results into an #HTML5 web database…

With a little jQuery magic I dumped a comma separated list of everyone's "likes" into the database and compared them to my own to get a good view of people who have some sort of common interest to myself. Everyone with a similar interest got a "point" in the database. I wanted profile photos. Since Facebook includes jQuery on people's timelines as well I had those on my hard drive in a matter of minutes. Then I remembered Facebook also launched a Foursquare competitor a while back that some people still used so I ran another juicy search and gave the people another point if they have an unusually high number of check-ins at a restaurant near my house.

I also needed to exclude people who my friends knew particularly well. Just as a courtesy. I didn't want to cause any conflicts. This was a tricky problem but Facebook's wonderful friend ranking algorithms made it easy to solve. Your own friends list is sorted by how often you interact with each person so I looped through each one of the top 10 people on my friends list and excluded anyone in my database who also had one of my top 10 friends in their top 10 lists. That was in the bag, but my lust for analytics only continued to surge. I started thinking of ways to serendipitously cross paths with people so I used Facebook's timeline feature to jump down to the beginning of the school year when everyone was posting their class schedules online. Some were hard to find, but after some digging, a lot of the people on my list now had class schedules in their database row as well. I also needed a personal touch…

With another minute of manual curation I had a list of 10 young women who went to my high school, their birthdays, profile photos, class schedules, the television shows they watch, the people they've dated, the parties they went to, where they eat on which days, and even a handful of mobile and home phone numbers. Did I purposefully cause chance meetings with people at my high school? I did. Did I go on dates with a number of those people? I did. Do they, to this day, have any idea how we came to meet each other? Not in the slightest.

The truth is that the plethora of information Facebook knows about you is unfathomable. The information I gathered without the use of an API is just the tip of the iceberg. The terrifying amount of information stored in my local database is merely what Facebook is willing to show me in the front-end of their app. Behind the pretty blue navigation bar is a macrocosm of algorithms, cron jobs, scripts, and frameworks on top of frameworks that make Facebook tick.

At Facebook headquarters, possibly at the end of a hall, around a couple of corners, past a drinking fountain that nobody uses, maybe there's a room. It's likely not everyone is allowed to talk about this room, but I have a feeling it's there all the same. In this room I have a feeling you will find humans and computers. These humans and computers will be dedicated to analyzing everything about you. People and machines, working side-by side to mine your life. Soon, however, this room will be devoid of people, and the machines will be able to do this job on their own. These machines will know more about you than you do. These machines will decide what you eat, the kinds of clothes you buy, the books you read, the television shows you watch, and the kind of person you are. The scariest part is, you won't even know it's happening. Those who predict Facebook's decline are wrong. Facebook isn't a novelty anymore, it has become something much worse. It has become a necessity.

Is the future both a terrifying and fascinating place? Ask graph search.