I ran into Nat on my way to OSCON this summer and he asked me what was new and exciting in my world, which gave me the perfect opening for my rant about why cloud-hosted services are essentially modern sharecropping.
I ended up typing up a copy of my rantings for him, but never got around to publishing it. (If you'd rather listen to me rant than read me rant, syncwith.us has links to slides and a video of roughly the same material.
Social computing is a good thing. Being able to share data easily has led to astounding advances in what we all think of as the web over the past few years. It's unlikely that I'd need to tell anyone in the greater O'Reilly Media sphere about all the cool stuff Web 2.0 has brought with it. What's been worrying me is how the current generation of Internet technology has increasingly centralized control of just about everything into very few hands. What we've seen is essentially a return to a sharecropping model where users neither own their tools nor the computers those tools run on.
Back in the "bad old days," access to computing resources was tightly controlled. A small cadre of acolytes made decisions about who could use computing resources, which programs could be run and how much computing time a given user had access to. If a user were particularly unlucky, the entire system would be managed by an outside provider who took care of all the upgrades, whether a user wanted them or not.
In the 1980s, things started to get better. Desktop computers meant that users could make their own decisions about what software they used, when they upgraded it, how carefully they protected their data and so on. As the open source ecosystem matured, things got even rosier. Users gained the freedom to fix their own bugs, add their own features. Not many people took advantage of that freedom directly, but having it at all gave users more flexibility and control.
We've stepped back into the mainframe era. Users are encouraged to use hosted services for even the most sensitive of tasks with very little control over what actually happens to their data once the providers get ahold of it. It's not unheard of for a provider to start charging for access, change or remove features, stop accepting new signups or even sell out their users to the secret police. And users have no recourse. Open APIs are one of the scarier forms of seduction. APIs give users nominal access to their data without actually giving them a way to make use of that data. An API isn't going to help users unless they actually have applications which can use the data and provide the highly networked features the users have grown accustomed to.
For the past couple months [Since April 2008], I've been working on a peer-to-peer database called Prophet. It's designed to allow "offline" replication of databases between people who want or need to share data. There don't need to be any servers, though you can share databases over HTTP as easily as over sneakernet. A user can publish all the changes he's made to a database and his peers can choose if and when to incorporate his updates.
The first app we've built is a peer-to-peer bug tracker which can sync to RT and Hiveminder (and shortly to trac and google code). You can find out more about SD and Prophet at http://syncwith.usI'll be posting more about SD and Prophet in the nearish future.