Saturday, November 24, 2007

Bringing Freedom to Web Apps: Introducing Forkolator

For a while now the back of my mind has been crunching away on web apps/services. It probably started with my work on Tomboy note synchronization, which is disappointing in that we were unable to provide centralized note storage for our users...they'd have to provide that themselves. So of course the idea of providing that service via the Online Desktop is very attractive, but it inevitably leads to demand for a web app for interacting with those notes. Hmm...

Recently, Luis' posts on Gmail have really got me thinking about where free software fits into this whole web apps/services sphere. And then I went to BarCamp...

Erik Pukinskis talked about how he believes that web apps are killing free software. That Gmail takes away even more freedoms from you than Outlook ever did. That even and cripple your ability to meaningfully exercise your freedoms. For example, you may be able to access and modify the source of the wordpress software, but you can't use your modified source on your data at Useful web apps/services are not distributed to users in the same way as traditional software. So how can the open source methodology thrive in this situation?

Erik's idea for solving this is Forkolator. Imagine you're using your favorite web app. You find a bug or think of a feature you'd like to implement. What do you do? Think for a minute of how you would hack on wordpress or mediawiki. Is it a worthwhile investment of your time? Now imagine that you can just click a button that says "Fork this page!". You are taken to a personalized instance of the web app with all the same access to your data, and you can drop into a web-based IDE and tweak your branch live. You can file a bug report that points directly to your live branch, and if the dev team merges in your changes, you can choose to switch back to using the upstream service or keep running your own branch. Maybe the dev team chooses not to accept your changes. With normal free software, you can build your own from source and live happily ever after. Wouldn't it be nice to be able to do this with popular web apps, and not lose the advantages of having hosting and social data handled by a reliable entity?

Right now Forkolator is a web-based IDE which can be forked and modified live. Your fork is not integrated into revision control yet, and the problem of borking your PHP code isn't really addressed. But these are technical hurdles that should be easy to overcome. The difficult problems are staggering:

1. Security.
2. Privacy.
3. Stability.

So Forkolator isn't hosted anywhere yet.

This post is pretty long so I'll have to write later about different ideas for addressing these issues with respect to user data. To sum up insufficiently, Erik believes that the data layer of the app would probably have to be well-defined and untouchable by forkers.

I think that Erik's idea is one that we need to explore. I think it could takes us to a whole new level of community development. I think a combination of social and technical measures can address the huge unanswered problems. We really need people with experience in hosting, security, etc, to hop on the mailing list and weigh in with their opinions. How would you solve these problems? We need to know how start so that we can begin hosting this thing!

Oh, and we need to talk about the GNU Affero GPL at some point...


Anonymous said...

For Wordpress and other hosted systems: Why not just host it yourself?

And GMail and such will never open their sources^^

Sandy said...

@anonymous: Because hosting is a huge effort. Because we're not at a point where everybody can reliably host their own services. Because that model totally fails for an app that relies on social networking of any kind. You might be interested in re-reading Luis' posts about why he's been using GMail.

Also, this is *not* about getting existing services to open up. It's about how our community can apply the same freedoms and development models to this "new" world of web apps and services. I'm also interested in figuring out how we can afford to compete effectively in this space.

By the way, I wouldn't be surprised if some combination of self-hosting and distributed computing is a long-term solution to a lot of this...but I really don't think we're there yet.

Sam Vilain said...

If the server software was written in a language that supported a sandbox well, such as Smalltalk or even JavaScript, then the security problems can be overcome.

However with PHP I don't think there are any options realistically.

Justyn said...

I'd be very interested in seeing some discussion of the merits and problems of using the AGPL in a situation like this.

Erik said...

Thanks for the link, Sandy!

By the way... I totally think Tomboy is a great platform for exploring what we might do with Forkolator. I'd love to explore half desktop/half web-based solutions to the syncing problem, or even a fully web-based forkolator-hosted version of Tomboy running on the desktop through Pyro...

.. it just seems like a great, well defined problem domain for exploring how web-friendly free software might work.