GNOME and the Cloud

Let’s start with a little thought experiment: If you had to chose between only running a browser and no other application or all applications but no browser, what would you chose? Sure, using wget and vim instead is fine, as is running a vnc client in your browser window.

Ok, now that you’ve thought about it a bit, here’s what I’ve been thinking about: Why is there such a huge distinction between our browsers and the rest of our desktops? Especially because the browser is roughly as important as the rest of our software taken together.
Or from a GNOME point of view: We’re doing a very bad job at integrating the web into the desktop. Apart from epiphany (and the weather applet), what application does GNOME ship that speak http?

I believe there are two main reasons for this: One is GNOME developers are not “web-enabled”. We’re a bit like Microsoft in the early 90s: We focus on the local computer and ignore the internet. It’s nice that someone rewrites session management, but why not keeping the same session across computers? Why does dconf (or GConf) not store my settings in the cloud so it uses the same settings on my university login? (I had to think hard to come up with these, I bet there’s lots of other, probably more obvious examples, but as I said, I’m not web-enabled.) We seem to completely ignore these issues and think locally.

The other, related reason is that we don’t have the software to do this. The core GNOME libraries do not have any support for the Internet, there is no glib_open_tcp (char *hostname, guint port). We don’t even have a http library that knows cookies.
This is slowly beginning to change with work done on Gnio (Did I mention that the name sucks, can we call it GNetwork?), libsoup or the RTP framework inside GStreamer. But it’s a long way from GNOME’s current state to having a full Internet experience, in particular getting a web browsing framework into GNOME. Note that I’m not talking about a web browser. I’m talking about a full featured framework that allows every application to display (partial) web pages, execute XHRs, upload photos to flickr, run user-downloaded scripts or otherwise integrate with the web. In fact, even the browser situation is worse than ever as GNOME is currently trying to switch to a different framework.

So how are we gonna marry GNOME with the web?


#1 MyKel on 02.21.09 at 00:25

Actually I’m quite pleased that GNOME is GNOME that way it is now without (any/much) web/Internet integration. Every application has it’s specific function like a tiny shell command only do it’s little thing, but does it well. I’m afraid it ends like only big spaghetti application linked all together and dependency hells starts (like Microsoft?…)
My two cents, I know

#2 Lee Braiden on 02.21.09 at 00:28

GtkWebkit is a good start. KDE has traditionally been much better at this, partly because of its very reusable DCOP-based (and now DBUS-based) konqueror kpart, and partly due to, as you say, good underlying API support for setting up quick transfer jobs from URLs etc. They’ve also got the lead in RDF now, with a desktop search engine that supports queries against remote RDF databases.

The way I see it, there are two choices to catch up: work hard, or work with.

#3 Joe Buck on 02.21.09 at 00:39

There is no “cloud”. There are only specific servers owned by specific organizations with specific terms of use.

Certainly integration with the Web can be improved, but cloudy thinking won’t get us there. In many cases the “cloud” has to be treated as hostile, in the sense that it poses security and integrity risks that aren’t present on the user’s own machine.

#4 Jud on 02.21.09 at 00:47

I think that a computer can be very useful without actually being connected 24/7.

Ergo, applications that don’t require the internet. Even then, for an application developer, the internet (and communicating through pages using AJAX or plain markup) is yet another layer to force your code to work through.

Every application shouldn’t have to work through a network layer.

Network-aware services should be integrated into existing desktop clients (for music, photos, file sharing, etc.) but as extensions of general functionality, not as an end in itself. IE, I want a photo album viewer that can manage my photos, and connect to Flickr seemlessly if I need it to. I don’t want a Flickr client that works offline.

#5 bastanteroma on 02.21.09 at 01:24

Fancy technology aside, the huge distinction between the browser and the rest of the desktop is an effect of tabs, which recreate the task bar inside a single window, removing it from the screen edge and isolating it from the window manager.

Because of tabs, some apps, the ones which happen to be local, use the actual task bar, while one of them, the browser, holds within it a bunch more apps, unified only by the fact that they’re located on the web. The browser acts like a virtual desktop, except that it’s the origin of the app that determines where its located, not the desire of the user. Improve window management and you can reintegrate web apps and local apps.

Tabs might make sense in an application with a complicated interface (and maybe they made sense in the past), but with web apps, the interface is within the tab, not outside. Witness Google Chrome. Because the ui is so minimal, and the tabs are restored to the screen edge, it’s effectively a tabbed window manager. Imagine if local apps shared its tab bar and just dispensed in their tab with the url bar…Voila!…integration. Who would need Mozilla’s Prism anymore? And things like using multiple processes and session management might become easier to handle at a desktop-wide level.

Get those web apps out of their ghetto. Not with dumbed down dedicated browser windows, but with a window management system that makes handling tons of apps easy, no matter their origins. No one else has done this yet.

#6 Simon on 02.21.09 at 01:36

I think you need to clarify what you actually think of as the cloud – as Joe said, there’s not really any such thing, just a collection of servers out on the internet. So if you think gconf should be storing your desktop settings on the cloud, what do you actually mean by that? Never mind whether gconf actually supports it, because that would be fairly easy to add. But where are you actually going to store those settings? And what kind of protocols do you need in order to communicate? Is it going to be standardised, or do you need to talk differently to every server a user might potentially want to use?

If you look around, you’ll find exactly this kind of thing being done, in places. Applications like F-Spot include plugins for uploading your photos to services like Flickr and Picasa – but as far as I know, there’s no standardisation, so each new service needs a different plugin written for it. The same applies for music services – few of them have anything in common, so client code has to be written for each one.

So far, that’s the problem with the cloud concept – you don’t add support for a type of service, you add support for every single specific service provider that you want to support – there’s no common language that merges everything into this abstract cloud. There is no cloud, just a bunch of servers – the services might be new, but otherwise it’s the same old infrastructure as 10 years ago.

#7 Stephen Gentle on 02.21.09 at 03:31

“I think you need to clarify what you actually think of as the cloud – as Joe said, there’s not really any such thing, just a collection of servers out on the internet.”

Exactly – this is exactly why we need to stop using this stupid term that some marketing department probably made up. It’s an absolutely pointless word for something that many people have been doing for the last ten years – storing things on the internet…

#8 Andreas Nilsson on 02.21.09 at 08:56

“So how are we gonna marry GNOME with the web?”

Did you see ?
Not sure if that’s what you’re looking for, but it contains the words Cloud and GNOME. :)

#9 jón guttesen on 02.21.09 at 10:42

my music player goes online to find music tags and cover art, and streams audio of the internet, and can share play information. the same is more or less true for my picture manager and my mediacenter. and i never open my browser. the web is already here.

web apis are very fast moving targets, i think it is hard to incorporate these apis in core gnome, but i like what you write about net io libs.

how about common libs for web apis anyway, are the missing¿ and what about language bindings

#10 oliver on 02.21.09 at 11:01

Can’t say much about the Cloud stuff (it’s noo blurry so far), but it would be really nice if I could store browser bookmarks on my home server and have them automatically and immediately synchronized between home, work and laptop system. And there are certainly other points where better integration withe the web would be nice.

But regarding the actual web browser, I think it should stay separated. It should clearly show the distinction between your trusty local system and the untrusted internet. It’s already bad enough with phishing and social engineering through websites; imagine this also came onto your desktop…

#11 liqar on 02.21.09 at 13:58

Don’t marry gnome with the web. I dont want to store my data somewhere in a “cloud”. You cannot trust a place in the internet to keep everything secure, even if it is open source and even if there is good encryption.
If you want to have control over your data, then you have to have them on your own computer.
If you put everything in a cloud you will loose control in the long run. It is just that simple.

#12 shmook on 02.21.09 at 16:41

I’m a KDE user. But I always liked GNOME’s look and feel better than KDE’s. What keeps me from switching to GNOME as my main desktop (apart from that I can type Alt+F2″konsole” much quicker than Alt+F2″gnome-terminal”) is that I can have konqueror tabs with local dirs, remote dirs (via ssh, ftp, smb, anything) and web pages all side by side. Even better, I can efficiently switch between them through keyboard shortcuts.

Being used to that concept, the separation between web pages and directories feels awkward. Funny that so many commenters are afraid of that…

And having the ability to store your setup on a remote computer (without being forced to do so) is a very attractive idea. If you don’t have your own secure server, you can still store everything locally.

#13 Craig on 02.21.09 at 21:11

Interesting comments about moving gnome to the cloud… and coincidentally I was thinking the other day about something similar to the other comments…
Why should I post my data to flickr, google docs/mail, facebook, etc., for it to be accessible to my friends? Why can’t some peer-to-peer style blog app be created so that my friends can easily see my latest thoughts and photos, without me “selling my information” to any of these online services (having it archived forever out on the interwebs). Certainly with computers being available 24/7 (or at least the home media server), there is no need for me to use a hosted data store.
I can appreciate there is value in online communities, and tracking the conversation, but the majority of my information is private, and only of use to my friends, and I have no interest in it being indexed and stored forever out on the web for some marketer to profile me with. What has value on the web should be on the web… and what has value locally should stay local. [at the bare minimum, some temporary signed caching within my trusted group of peers could take care of times when my PC wouldn’t be available]
[btw… then I would pay for my bandwidth, rather than the selling of my information pay for the servers out on the web]

#14 Robert Smol on 02.21.09 at 23:19

How about to start with something much more simple.

Please allow user to fill its accounts in ‘About Me’ dialog. First time user can benefit in following ways:
* gnome can automatically start Piding, Emphaty or other IM if user has pre-configured at least one account. Info then will not have be entered multiple times in various applications.
* other applications can pull for this information (Ekiga, DropBox, Firefox Plugins?, Banshee-Last.Fm) and use it whenever appropriate.

I am not GNOME hacker but is this feasible?
I guess store it in the gnome-keyring and write DBUS service Accounts? What do you think?

#15 Simon on 02.22.09 at 09:43

Yes, that’s a thought that’s occurred to me too – some sort of decentralised social networking. Post whatever you want to your own site (or to some 3rd-party service, if you don’t want to run your own), and rely on some magical piece of software to gather up all the information provided in the same way by your friends.

There are already scattered technologies that go partway – RSS/Atom feeds of blogs, web calendaring, etc – but right now, they’re all unstructured. And that sort of takes us back to the standardisation problem – how to find a photo album on Flickr vs Picasa vs Facebook vs some random person’s website.

#16 otte on 02.22.09 at 17:15

Asking if GNOME should be in the cloud is a question I do not care about. The answer is “yes”. Everybody arguing that we should keep his stuff separate from it, needs to be way more convincing than “I don’t like it” or “it’s a security risk”. Those are implementation details. And of course, you’ll always have the option of checking “disable networking” on nm-applet.

And what do I mean with “the cloud”? I mean that I don’t have to care what device I’m using, all my settings, programs and files are already there. No more “oh crap, that text file is elsewhere”. The only example I have for where this works now is GMail. When I delete an email on my desktop, it’s gone on my laptop, too.

And for integrating with webservices, I don’t care. In the worst case, we can build our own webservices. Even if those are just forwarders to other services. It’d allow us to keep the interfaces up-to-date.

#17 Howard Chu on 02.23.09 at 04:12

It sounds very much like you’re asking the old question “why don’t I have roaming profiles for other apps besides my browser?” Netscape did a decent job of things ‘way back when with LDAP-based profiles. The current DBUS/DCOP/whatever is somewhat pointed in the same direction, just using much more bloated protocols to get there.

As an aside, handwaving all the real problems away with “that’s an implementation detail” isn’t going to help. Despite what telcos ads’ may say, high speed connectivity is not ubiquitous or pervasive, let alone cheap. It might be the Way of the Future but it is definitely NOT the way of the Present. For now, it’s more reliable to just carry your data with you, on a USB flash stick or whatever. (Also, unless we discover an ultra-cheap/ultra-efficient new energy source and energy storage device, you’re just not going to see ubiquitous disconnected service in the near future either. It takes too much juice to keep little transceivers active all over the place.)

Distributed access to user configs/profiles/whatever was a solved problem back in 1996. There just wasn’t enough Internet yet to warrant it…

#18 Jonathan Lozinski on 02.23.09 at 09:57

Isn’t it more likely that our desktop gets compromised if it’s tighly integrated into the web. The web is a nasty place these days, I’d rather know that my app was speaking http, and who to, than the desktop doing so and getting owned.

#19 Daeng Bo on 02.28.09 at 10:35

I would like to see About Me become actually useful and help to integrate Gnome with online services (whether “cloud” or not). If I tell Gnome my email addresses, IM logins, and calendar location in About Me, there’s no reason this information shouldn’t be used by Evolution and Empathy.

It would be nice to use About Me as a single dialog for the easy setup of common online services like Google. I don’t know of any other comprehensive services off the top of my head, but Gnome should definitely have the option to use any service APIs just by telling Gnome the username and not having to configure individual apps. Telling About Me to use my Google (or Zoho or whatever) login should be sufficient to have whatever out-of-browser functionality the service offers.

Oh, and a pony, too.

#20 assente on 03.03.09 at 21:57

You are right. The data should be shareble while the toolkit must remain local.

#21 bluebirch on 03.04.09 at 23:30

Are you thinking of the GNOME OnlineDesktop?