Recently, Canonical Ltd., the company which sponsors the Ubuntu family of GNU/Linux distributions recently announced the UbuntuOne service, which is at it's core a service that allows users to synchronize files between multiple Ubuntu-based machines. Having your files sync between multiple machines is a huge feature, and the truth is that there aren't really good solutions that accomplish this task, for any operating system. At the same time there's been a lot of hubbub in the community over this release. It's complex but the issues in the complaint are:
- UbuntuOne is a non-free project, in that, the software that's powering the service (on the servers) is not being distributed (in source, or binary) to the users of the service. While the client is being open sourced, the server component is crucial important to users' autonomy.
- Ubuntu, if we are to believe what Canonical says, is the name of a community developed Linux distribution based on Debian. Canonical, is a for-profit organization, and it's using the Ubuntu name (the trademark to which it owns) for a non-free software project.
- Canonical has also gone back on a promise to release the software that powers LaunchPad under the AGPL. While this isn't directly related to the flap surrounding Ubuntu One, it allows us to (potentially) contextualize the ongoing actions of Canonical with regards to network services.
My response comes in three parts.
Part One, the Technology
File syncing services are technologically pretty simple, and easy to create for yourself. I use ssh and git to synchronize all of my files, data, and settings between machines. I keep the sync manual, but I could automate it pretty easy. It's not free, I pay a small monthly fee for some space on a server, but it works, and I have total control over the process.
Granted, my solution is a bit technical and requires some babying along, and works because 95% of my files are text files. If I had more binary files that I needed to sync, I'd probably use something like rsync which is a great tool for keeping large groups of files synchronized.
In fact rsync is so good, you can probably bet that UbuntuOne is using rsync or some rsync-variant (because it's GNU GPL software, and it's good.) If you're running OS X, or any GNU or Linux based operating system then the chances are, you've already got rsync installed. Pulling together something to keep your files synced between more than one machine just requires a few pieces:
- something that runs on your computer in the background that keeps track of when files change so that it can send the changes to the server. Conversely this component can also just run on a timer and send changes ever x amount of time (five minutes? if the computer isn't idle.)
- something that runs on the server that can send changes to other computers when the other computers say ("Has anything changed?").
Done. I'm no programmer--as I'm quick to attest--but I think that I could probably (with some help,) pull together a tutorial for how to get this to work in a few hours.
Part Two, Trademarks, Centralization and Community
I think a lot of people feel betrayed by the blurring of this "thing" that a community has built (Ubunutu) with Canonical Ltd.
Which is totally reasonable, but this is largely an orthogonal problem to the problem with UbuntuOne, and I think is a much larger problem within the free software/open source/crowd sourcing world. This is one of the problems when entrusting trademarks and copy rights to single entities. In a very real way, Canonical--by using UbuntuOne--is trading on the social capital of the Ubunutu community, and that leaves a sour taste in a lot of peoples mouths.
But the issue of ceding control over a name or a product to a centralized group, is something that we have a lot of experience with, with varying results. Some thoughts and examples:
Here's one example: There's a huge "open source" community that's built up around the commercial/proprietary text editor TextMate for OS X. While I think TextMate is really great software, and the TextMate community is made up of really great people, TextMate is largely valuable because of the value created by the community, and it exists (tenuously) on the good graces of the owner of the TextMate intellectual property. While Alan is a great guy, for whom I have a great deal of respect, if anything were to happen to TextMate a lot of people would find that they had nothing to show for their energy and efforts in the TextMate community.
Similarly, MySQL AB (and later Sun Microsystems and now Oracle) owns the entire copyright for the MySQL database, which isn't (or wasn't) a major issue for most developers in the early days, but now given the sale of that company (and it's copyright holdings) puts the development of that code-base into some doubt. I've seen, as a result, much greater buzz around the PostgreSQL project as a result of this doubt, and I think this kind of fall out serves as a good example of what can happen to a community when the centralized body fails to act in the interests of the community, or even threatens to.
This is a huge issue, in the whole "web 2.0"/mashup/social networking/social media space. The logic for the proprietors of these sites and services is "build something, attract users create a REST API that makes it easy for people to develop applications using our service that add value to our service, attract more users, stomp out competition in the space, profit." This is basically, the Twitter/Facebook/ning business model, and while it works to some degree it's all built upon: stable APIs and the enduring good will of the community toward the proprietors of the service. Both of these are difficult to maintain, from what I've seen, as the business model isn't very coherent, and requires the proprietors to balance their own self interest, their community's interests, and find some way to profit in light of an unstable business model. It's tough.
Part Three, Business and Free Network Services.
I've been treading over ideas related to free network businesses and cooperatives and software freedom for weeks now, but I swear it all fell into my lap here. Some basic thoughts, as conclusion for this already too lengthy essay:
- The UbuntuOne service, like most free network service, is at it's core providing a systems administration service rather than some sort of software product. The software, is relatively trivial compared to making sure the servers are running/accessible/secure
- The way to offer users' autonomy is to develop easy/free systems administration tools, and to educate them on how to run these systems.
- Corporations, while important contributors to the free software community, also inevitably serve their own interests, while it's disappointing to see Canonical go down the proprietary track, it's neither surprising nor a betrayal. Canonical has put on a good show and accomplished a great deal, but in retrospect we can imagine a number of things that they could have done differently from way back that would have changed the current situation. (eg. Worked within the Debian Project, developed a tighter business model, etc.)
- Free software, is very pro-business, but it's not very pro-big-business, as "native free software business models" are built on personal reputations rather than tangible products. It translates to making an honest living pretty well, but it doesn't convert very well into making a lot of money quickly.
Anyway, I better get going. Food for thought.