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.