Max Ogden is a developer living in San Francisco. He’s a Code for America fellow and one of the founding developers of Couchappspora, an open source social network built with Apache CouchDB.
This is the second half of our interview. Part one can be found here. In this half we focus on Couchappspora, Ogden’s open source social networking project.
Klint Finley: How many Couchappsora users are there?
Max Ogden: I’m not sure at this point to be honest. Probably on the order of hundreds. It is incredibly alpha.
The nature of it is that you can set up a CouchDB somewhere and then tell your Couch to start replicating from anyone else’s Couchappspora instance or start your own disconnected network. Replicating in that sense is similar to ‘following’ someone. So it is a big experiment in creating small decentralized networks.
One of the comments that I always think of came from a user named ‘Chauncey’ on Couchappspora. He left a comment that said “Anything ‘small’ like this can be really ‘big’ in China market, and web app like this is no exception.” I think it was in reference to the aggressive censorship that is prevalent there.
The development timeline of Couchappspora so far hasn’t been that speedy. Originally we did a couple weeks of work after the initial Diaspora release back in September of 2010. And then it laid dormant for a few months. I actually picked it back up at the beginning of February because I got motivated by the turmoil in Egypt. In the last few months I had been ruminating on what other projects people are working on in this space and how I can make Couchappspora something relevant. I’ve decided to use it as an excuse to write interfaces for the OStatus stack.
In terms of OStatus, the most exciting part of it to me is the ActivityStreams spec, which is being spearheaded by some folks at IBM, Google, Myspace and Microsoft. See the bottom of this document for references.
ActivityStreams is implementing what is called “actor-verb-object” logic to represent social streams. So if you look at the front page of Github, of Twitter, of Facebook or any other social network (or feed) you can extract actor verb object triples such as “Max pushed a new piece of functionality to his project on github” or “Tyler posted ‘hello max’ to your wall” or “Klint uploaded a photo of his cat to icanhazcheezburger.”
So if we can convince these major players to implement ActivityStreams as a syndication format…
You could pull stuff from all around the web into Couchappspora?
Exactly. Jeremie Miller’s Locker Project is really exciting. I had a chance to have dinner with Jeremie and the rest of his team at Sing.ly a few weeks ago and they got me really excited about Locker and Telehash and I got them really excited about CouchDB and Ostatus. It was a productive meeting.
At a high level I am promoting the idea that data should be able to flow freely. I’m actually getting mentored by Stewart Brand this year, which is one of the most exciting things to ever happen to me. He famously stated “information wants to be free,” and I think that idea gets more and more important as we move forward. Especially when governments start shutting off the Internet.
To state it even more concisely, I want users to have the option to be totally private and “off the grid.” Right now it is a binary system. You’re on Facebook or not. But I want to introduce the option to host your data anywhere if you are motivated to do so.
I would like to see Linux nerds running social networks from their cellphones and when they turn their phones off they become invisible online.
I think that most people don’t care about their privacy. A small percentage does care a lot and it’s important to facilitate the rights of all users.
I want to see Couchappspora or other related technologies be combined with mesh networking hardware in situations like Egypt or Iran where you run a social network server on your cell phone and it will automatically ‘hop’ your data around the crowd to find the one guy who has internet access.
I would love to see something like that. I’ve been covering mesh networks a lot lately.
Couch.io/CouchOne/CouchBase are working on getting Couch running everywhere, which is really exciting in that respect. You can run it on Android now and iOS and in browser via HTML5 are in the pipeline.
Is it possible to run Couchappsora on Android then?
Yep, although I don’t have an Android.
What advice would you give people just starting out with Couch?
The hardest thing to ‘grok’ with couch is how to get data in and out, the workflow of pushing and pulling. There are some great developer tools that make it really easy, but like any other command line utilities they can sometimes be a pain to install since the entire API is implemented in HTTP. It is hard to wrap your head around sometimes, but you can literally do anything in couch over HTTP, which is one of it’s strongest points.