Tuesday, March 27, 2007

Re-visioning GNOME

Recently Murray called for "more visions" for GNOME (in addition to "GNOME is People"). Well, I've got one.

GNOME is the GNU Network Object Model Environment. We have some really good network object features (e.g. the ability to browse remote directories using ssh:// URIs in Nautilus) but none that really set it apart from the other desktop environments. (As far as I know.)

What about making the GNOME environment more fully a network object? By this I mean that, no matter what physical machine you are running your GNOME session on, you have access to all your settings and configuration data?

Of course, this is trivial in the case of a managed/corporate environment where you mount your home directory over the network. But this relies on each GNOME-machine having access to an always-available server.

What about a user that has GNOME installed on several machines, but can never guarantee that any given machine will be powered up or network-visible at any given time? And what about bandwidth-constrained situations where exporting huge amounts of data over the network is impractical?

I suppose what I have in mind is something like this: All GNOME applications get their configuration and state data from a central source and cache it locally. The GNOME foundation supplies a network resource for people who do not have access to an always-on location for that data. Then when you get your shiny new hardware and install GNOME on it, all you need to do is type a URI for your configuration data and Evolution, Epiphany etc. are all set up automatically.

Obviously storage and synchronisation of actual application data (e.g. mail messages) is problematic, but we may have some application domain-specific solutions to this (e.g. IMAP for email).

I suppose I am kinda brainstorming here, but I'm so impressed by the available-anywhere-on-any-platform service that Google offers (mail, calendaring, word processing, spreadsheet, photo storage and management, general file storage, ...) that I can't help but think that we can do more in this regard.

Thoughts?

14 comments:

Anonymous said...

I don't think it makes sense to say "GNOME is the GNU Network Object Model Environment." and then proceed to misunderstand what that meant -- methods for enabling applications inside GNOME to talk to each other -- in order to propose something unrelated about being able to access settings from anywhere.

Being able to access settings from anywhere might be a good idea, but it doesn't have anything to do with the (very old!) ideas that originally inspired GNOME, and they shouldn't be used as its justification.

Anonymous said...

I would go in a somewhat different direction. One problem with Gnome in a corporate environment is that you can only be logged in once; Bad Things Happen if your desktop is logged in in the office, and you try to log in again with your laptop in a meeting in a different building (where your home directory is NFS-mounted). Gnome has no concept that there are two distinct sessions involved.

As for your other idea, it sounds like you want to compete with Google and supply desktop-over-the-net. There is a huge legal can of worms, which gets opened with everyone starts subpeonaing you for users' data, or you get FBI "national security letters" requiring you to narc out your users.

Now, if you want to provide ways of helping users provide similar "always-on" support without giving up control of their data, that's another matter (e.g. provide elegant ways of syncing between the different machines they use, perhaps on top of rsync or a revision control system).

Anonymous said...

Absolutely. I would very much like my laptop to just be a selectively cut down version of my desktop. I manually keep them similar at the moment, but it's a pain and can be confusing.

Eugenia Loli said...

This is what Google supposedly works on too using Ubuntu as their basis and Gnome.

Anonymous said...

How about more ubiquitous integration with network based resource utilization - NMM, Poly Audio, Gobby, Avahi, Desktop level X tunneling funtionality, Synergy2-like behaviour (System -> Preferences -> Display Options : "Would you like to share control with other-nearby-system"), Blah program can be run on this system as well as on Foo system do you want to execute it there instead/as well?... a truely network oriented desktop experience.

Tom McMahon said...

This sounds like a really great idea, I would love to be able to log on to a mates Ubuntu machine, just type my user name and password into gdm select some "retrieve settings from online blah blah" and log in to my gnome desktop.

It was also be really nice to be able to do a reinstall of Gnome, and not have to fiddle around for so long to have my desktop just the way I like it!

Unknown said...

It would be nicer (in my opinion) to build this data service on a P2P system. This would could scale without bottlenecking and also it would be more in the spirit of Free Software.

The system could work by encrypting the user's local data, then inserting it into a DHT which all Gnome desktops would run. Then you could log into any Gnome desktop running the DHT service and retrieve your settings.

This is certainly more experimental, but also potentially more revolutionary and less tied to any single service offered by a single organization.

Anonymous said...

This is a really, really, stunningly bad idea.

Actually, no, it's fine (although not original). The stunningly bad part is suggesting that GNOME do it.

What you are proposing is not software. It is a service. If there's one thing I think every GNOME person could agree on about what GNOME is (and that's quite an achievement!), it's that GNOME is fundamentally about the provision of software - not services.

And if there's one thing that working at Mandriva for a couple of years has taught me, it's that retrofitting a software outfit with the mindset and ability to provide services is a really, really hard thing to do and should not be attempted without really copper-bottomed reasoning (i.e. we will die if we don't do this). GNOME is not a service provider. I am 99.9% confident in saying GNOME does not have a bleeding clue how to _be_ a service provider.

www.gnome.org has not been up for 150 continuous days since June 2002. That's fine for a website. Imagine what uptime like that would mean to this service. Every half a year, X hundred, thousand or tens of thousand people would be calling someone to complain that the server was down.

Whose job is going to be online about this server staying up and running and bug-free? Who is going to do the tech support for the people behind transparent proxies, the people who manage to break stuff (because they ALWAYS damn well manage to break stuff)? Have you ever seen a hacker trying to do customer service? It's like me trying to write code - not pretty and not going to get anyone anywhere in a hurry.

The Unix philosophy is single tools for single jobs. GNOME is a tool for writing software, and it's very good at that job. It is not a tool for providing large scale services to end users, and I have a feeling that if it tried to do that, it would be a disaster.

Keep writing software and leave the service provision to organisations that do it for a living.

-adam w., Mandriva

Anonymous said...

How about a simple "wizard" you can run which imports your setting from one computer to another? Say you have a menu option called "Migrate my settings here", it gives you a dialog where you can type in the address of your computer or perhaps it even can use avahi, you type in username and your password on that machine and it will copy all settings to your current machine and restart your session. As long as you know your own address, this could be as simple as a scp.

Anonymous said...

Online storage (for us geeks) is a must have (a web server for our domain, email, blog etc)... someone with the appropriate skills might be able to write a simple sql/php/xml-rpc based solution that lets people remotely store the information described, then someone with other skills could patch gdm, gnome-session etc to permit retrieving that info from a friendly url, installed on the user's webspace; for e.g. www.mysite.com/myinfo.

There would be no legal/backup/data retention problems as only a product is being provided; people will continue to use and bug report on it as any other application.

Anonymous said...

The idea of syncing desktop is a must have.
I have two laptops, a desktop and an account at my university.
I which that adding a tomboy note on my laptop added it to my univ account and my server/desktop
it could be easy as having a dialogue to input the location of the different connected machines.
and a button to make them sync
(data in .gnome .firefox (not the cache) .evo...)
when they are "online", eventually with the possibility to specify a machine that would be always online (many people have a high speed internet with the computer always on and can register to free dynamic name services)

People can also always register to diskspace on server and pay for these kind of services if they want
and what about google fs, or the ability to save data on gmail account?

Anyhow this idea is a must have!

Anonymous said...

"GNOME is the GNU Network Object Model Environment. We have some really good network object features (e.g. the ability to browse remote directories using ssh:// URIs in Nautilus) but none that really set it apart from the other desktop environments. (As far as I know.)"

I'd say it's more limited with network than Windows is. You can't just double click a file in a ssh:// folder as you can in Windows with a \\network_share folder.

Michael R. Head said...

Absolutely. This is totally key. OS/X has .MAC, and we definitely need .GNOME.

I understand that the mugshot is heading in that direction a bit (there's a mechanism to replicate your desktop background across your machines, which his a start in that direction).

Anonymous said...

Thanks