Gnome Online Desktop

There was a lot of talk recently about how Gnome should embrace the online services in order to keep up with the Web 2.0 development. But sadly most of the ideas were like “lets integrate better with web service <foo>” – the problem is that I do not want to start using Google Calendar from now on; I like the way Lightning handles my dates and I like that I have them available offline. What I would like would be able automatically synchronise them, when an online connection is available.

But we are already too focused on the data layer right now, so lets take a step back and see where we are.

We are here

What we currently have are web pages or better web services with interfaces described with XHTML and styled with CSS and we have local applications with interfaces described with XML and (eventually) styled with CSS. So the UI done pretty similarly already – although it still looks quite different, since there are standard web-page widgets and since most of the web-pages are drawn inside the browser, while local applications are drawn as separate windows on the desktop.

The difference

One might think that the difference might be the place where computation happens, but actually the computation happens in both cases on your local machine – it is just that Java Script is the only language you can use for web services and it is pretty limited right now, but things like Tracemonkey and Google Gears are creating a platform for computation intensive application delivered over HTTP.

And that is also the main difference; the way applications are deployed. Because web-services can be updated every time you reload the page, you can easily keep you customer up to date, while for local applications you often have to deal with out of date applications and updates. This is especially a problem on non Linux platforms, where you do not have a central package(application) manager. But on Linux we have that advanced systems for update delivery so this is not really a problem.

The real difference

What everyone is doing right now is rewriting existing and working code in Java Script in order to solve that one delivery problem, which is really not that big on Linux while the rewriting task is quite huge. And everyone starts using that new and shiny web services – but the question is why. The real benefit which web services offer over current local applications is centralized and therefore synchronised memory; you can log into Google Calendar from every PC you have access to and always see your up to date dates.

So we need

So basically what is missing from Gnome is that centralized memory, but the problem is that an open source community can not easily offer that because someone has to pay a lot of money for a lot of servers. So we still have to integrate with the existing web services. Nothing new here. But that is not a problem either, since there are already web services for everything one might imagine.

What we have to consider here, is that we have to be able to switch easily between different services like lets say Picasa Web Albums and Flickr. We could even define an open API for web service interaction which the services could implement then.

The master plan

to me it makes no sense re-implementing everything in JavaScript just for the sake of being able to run it inside the browser. We have already a variety of better languages available, when running on the local machine and there is also much of the infrastructure ready.

So instead we should make the existing applications more web-aware. Luckily there is already a framework made exactly for this: Telepathy. Currently Telepathy only manages your web-presence status and allows local applications to work with it. But it should also be able to manage your web-pictures and web-calendar and make it accessible to local applications similarly.

Then F-Spot could easily show you which of your pictures are currently published and which are only available locally without making a difference between Picasa Web Albums and Flickr – you should only care whether your pictures are synchronised or not.

The next step would be to actually take advantage of such a framework. If you currently want to write a text you have to care whether you write it for offline or online usage. If you write it for offline work, then things are pretty easy; since Word is not available on Ubuntu you use OpenOffice. But if you write it for online use you have to deal with a bunch of different interfaces – depending on what your web software is you have to deal with the WordPress text editor, the Joomla text editor and so on. And they all have in common that you cant save your text to your local computer easily.

The initial task was just to write a text – why have do I care of such things at all? Would it not be great if I just could open a local running text editor, write my stuff and then decide whether I want to save it to a file or publish it to a web service of my choice.

A locally running web-aware application could do that while offering a consistent interface for text editing and doing a lot of things which you can not inside a browser like launching Gimp in order to edit that picture you need in your article and then automatically upload it.

So basically we have to move things offline in order to get an online desktop and then we can also use browser for what they were meant for; reading text.

  • Rick Harding

    You missed one of the big advantages of the web delivery method. It’s more than just that you can update the app with any request. It’s the development is cross platform much easier. That is a problem, even on linux. When working with Gnome Do I don’t know how many times we had people having various build issues on distro XX/YY. Your gmail works on Ubuntu, Debian, RH, OpenSolaris as well as on windows and mac.

  • Pavel

    oh, you actually still have that different platform issues – its just that your platforms are not called Debian, RH, OpenSolaris and Windows, but Firefox3, Firefox2, Internet Explorer and WebKit.

    And believe getting JS code developed with Firefox running in IE is not that easier than porting a C application to Windows. ;)

  • Maxo

    I think you are on the right track. I have been thinking a lot about this lately and have been reading lots on web programming technologies to revamp my professional career in that direction.
    I think one thing we need is W3-like standard protocols for exchanging this information. So I can log in to my Linux machine at home with my system profile that says my calendar is stored at calendar-protocol:// and this is my password. My office documents are at office-protocol:// and my photos are stored at image-protocol:// Then when I go to work I make those same configurations on my work’s XP profile for my personal PC. Then when I’m at home I save a document using OpenOffice and it seamlessly integrates with my online documents for opening and saving. When I got to work Microsoft Office seamlessly integrates as well. Then one day company x pisses me off and I realize that company w has been recommended a lot. I simply migrate my calendar to w’s site and repoint and my desktop doesn’t miss a beat. On my low-end laptop I could browse to an online office application and provide it with my online office document information and it seamlessly integrates with my online docs as well. This provides competition, desktop independence, and open standards. Whether I’m using my personal computer, a friends computer, my XBox 360/PS3/Wii/Whatever, iPhone/gPhone or any other device the independence is so strong that people stop caring what OS or platform they are working on and information retrieval is omnipresent.

  • Habub

    I think the common memory problem can easily solved by p2p dht service. The more people use the service the greater the capacity of the network storage and bandwidth. And it does not require any server. The transition between the current web services is easy to do by providing api to the dht network.

  • Pingback: Peng’s links for Monday, 24 November « I’m Just an Avatar