Describe your Idea/Solution
More and more of the new gnome technologies are focusing on this issue, but there is no shared vision on how it should all fit together. I'd like to think that in some ways we've been looking at the situation at the wrong angle. Right now, it seems that everyone's trying to figure out how they can harness all of these new points of data and interaction. I think that Gnome 3.0 should focus on how all of these web applications and data can benefit from our desktop environment. I think the desktop environment needs to become an aggregator of information. It needs to bridge all of the different web applications and social networking services. Let's start this design at the top by defining which desktop applications fit into the Online Desktop.
Applications
[We should also discuss the weaknesses of web applications and each specific type of application. The whole point of Gnome 3.0 is to reduce these weaknesses through desktop integration] [Each of these should probably get their own page describing the type of interaction and hooks they would need for online integration]
Email - an email client is most definitely not needed. What we should have is a email notification applet/service 1 that can tie into whatever webmail application you use. A mail reader would also be needed when you were offline (if you had your mail setup to keep backup copies locally). This should probably be done with a generic document viewer 2 however.
Calendar - there are already multiple web solutions for this. We would definitely want integration with the clock as EDS does today. We will also want the ability to view the calendar in offline mode (through the generic document viewer). This type of application could benefit from having a local desktop solution, but it is not needed enough to be in the GNOME proper.
Address Book - this should be one of the spotlights of our desktop. It does not make sense to have this as a web service. The address book would grab contacts from all of the different social services 3 4 (Messaging, Mail, Blogs, Networking sites, etc.) and bring them all to one centralized place. It is very important that there be an easy way to group contacts from multiple places into a single Person. Other applications must be able to easily access this information.
Web Browser - the second crown jewel of our desktop. If the user is spending much of their time using applications that are based online, the browser will be an integral part of their experience. There should be an "application mode" and a "browsing mode". The main difference between these two would be that in the "application mode" browser would default to not showing the main toolbar with the location box, back button, reload button, etc (there could be other differences, but I haven't thought that deeply about it yet). There's no need for "back" in an email client.
Instant Messenger - this is an application that should be part of the local desktop although it would probably not be a full application, more a messaging framework that other applications could take advantage of. There would be an embeddable contact list, a messaging window, and a chat window. Probably more pieces that I can't think of currently. The backend of this is already being worked on in Telepathy 5 with the user interface portion possibly coming in the form of Grapevine 6 (a modularization of Gossip 7).
Music Player - the music player is also an application that can stay. The amount of music stored by users now is too much to all be uploaded to the web. There is the possibility of using a web interface from a local multimedia server however. It should integrate with music stores, social music networks, and should allow you to easily tag your emails/messages with your current playing song.
Video Player - video support on the desktop is still needed. It should try to integrate with the many video sharing websites that are becoming so popular. Great support for embedding the player into the browser is a must. We're coming along on this front with the cleanup done to the Totem browser plugin. Democracy Player? 8
Office Suite - this has never been in default GNOME desktop anyway. There are applications starting to fill this role on the web (from google for example). This one still has its place on the local machine, but can be effective online also (allowing easy collaboration, and negating the worry about fileformat compatibility when transfering file from one computer to another).
Games - this has been an online market for a long time. No real reason for games in GNOME proper.
Image Organization - we don't want all of our pictures online for everyone to see. A great photo application is needed, but it should be easy to share your photos online, and should be able to interact with online photos seamlessly (like they were local).
My Status - Lots of sites and apps have an option to leave a note of your status, like Pidgin, Facebook, etc. etc. When I go on travel, I have to put that in every site, and I always forget one. There should be one place (like on the bigboard) or something where I can set my status, and it updates all my online stuff. Ryan Paul has a python app called gwibber that does this. It would be nice if the desktop accepted changes based on time and propagate to my other services, so when my plane lands and I update my facebook status on my blackberry, it posts to my twitter for me, etc.
Technologies
Related Wiki Pages External References
see also GnomeIdeas
Improved user collaboration
[ I add here a section because I couldn't find a better place, if somebody knows where this should go please move it]
If the desktop is online this means that the user is no more isolated from the other users on other machines. It should be possible to exploit this to enable a new level of collaboration between users.
Examples
- Concurrent editing of the same text: two users are correcting a report, they are talking over VoIP to discuss the changes but with the current "offline desktop" they have to spend a lot of time to understand what part of the text the other is talking about. If they share the view the other has of the document their productivity would be increased.
- Distributed editing document: often a document has to be edited by two or three people. If the versions of the document that are on the desktop of each editor are somewhat "linked", it would be possible to see what the changes the others are doing on their copy, where the last modification was etc.
- Sharing files: user should have access to shared repositories of structured/unstructured data, for instance have a shared photo collection, a shared bibliography, etc...
- Helping someone solving a problem: your grandmother can't view her photos, she calls you, you can find her online in your IM contact list and access her desktop, helping her to debug the problem.
Print directly to an Online Printing Service
Types of interaction
- Document oriented:
- one copy of document - many users (concurrent editing, sharing files)
- many copies of documents each with one user (distributed editing)
- View oriented:
- one window many users
Related technologies
- User to user data connection (e.g. XMMP XEP-0065)
- Distributed / centralized data store (lot of service on the web, lot of protocols available, e.g. WebDAV)
- Sharing screen / windows (Xorg 7.3 multipointer extensions, MPX, VNC, x11vnc, vino)
- Distributed/Centralized version control (git, bzr, subversion, cvs)
Some applications that implements real time collaborative editing can be found here http://en.wikipedia.org/wiki/Collaborative_editor
Why this should be implemented in GNOME?
The kind of features proposed should be integrated at toolkit/platform level because it should be easy for an application developer to add support them. Moreover the online desktop is the place where different providers for data storage and version control could be integrated giving an uniform view to the user (what the gnome-vfs already does for file management).
Other
Integrate online.gnome.org support in gdm such that a user may enter her online.gnome.org username/password at GNOME login and have a minimal access guest account set up on the system, with settings loaded from her online.gnome.org account space.
Not sure if this is the best space for this idea but here goes. We're working with UK housing associations with a view to putting effective internet access onto Set Top Box (STB) platforms with an IPTV backend. The idea is that poorer disadvantaged families who can't currently afford digital access could get online for a very low outlay. An OnlineDesktop would be a FANTASTIC feature for these people. The problem is that the STB hardware is very low spec indeed. Typical platforms have 300-400 Mhz MIPS processors with 64MByte ROM and 256MByte RAM if your lucky! There are higher spec devices but these are too expensive in this market. The question is, will the Online Desktop be lightweight enough for this sort of platform?
Mail Notification http://www.nongnu.org/mailnotify (1)
Evince http://www.gnome.org/projects/evince/ (2)
Soylent (seems to be inactive) http://live.gnome.org/Soylent (3)
People Project (seems to be inactive) https://launchpad.net/people-project/ (4)
Telepathy http://telepathy.freedesktop.org/wiki/ (5)
Grapevine http://projects.collabora.co.uk/~xclaesse/grapevine/ (6)
Democracy Player http://www.getdemocracy.com/ (8)