This page is for people to put brainstorms and every idea they can think of, while OnlineDesktop/Sprints has some of the more immediate plans.
TODO list for an online desktop
New user experience
Right now, the process of logging into the Online Desktop for the first time is exploratory. You have to find the "Enable Online Desktop" link, realize that you need to create a new account, go to your mail, find the email, and then you finally get to start filling out your account details.
- You get a "login dialog" - "Log into an existing account" vs. "Create a new Account"
- If you "create a new account", you get prompted for various details, including your email address
- Your desktop starts working, and there's a "reminder" below your headshot that says "Check for the Online Desktop verification mail"
Server side extensibility and hackability
- Create a central "data model server" that handles
- Data model invalidation messages, replacing use of JMS (Can we get rid of JMS entirely? Aimbot queue, old block messages)
- Transaction timestamps for the data model
- Cluster wide locking for web service, replacing multicast locking
- Singleton management (or just hard code a "master" host as Colin did originally.)
- Consider eliminating the use of JBoss entirely ... if we can reduce the startup time to a few seconds, we'll greatly increase the productivity of hacking on the server. Challenges include: EJB session beans. Singletons. Statistics system use of MBean properties.
- Add some sort of generic data storage mechanism to allow people to write facilities on the client side without server side changes.
- Federation - allow multiple servers with different user bases to integrate more or less seamlessly; some of what would need to be done:
- Adding contacts on other servers (searching on other servers)
- Getting public data model data from other servers, sending invalidations to other servers when local data changes
- Mugshot stack with items from users on other servers
- Allow extending the data mdel with data stored not on our server... let someone write a small web service that exposes data via HTTP, and have that incorporated into the data model.
- Streamline the task of moving photos from a digital camera and uploading them to an online photo site. F-Spot would be good for this. See below for more on this.
- Modify the Instant Messaging client (Pidgin, whatever) to automatically figure out what accounts you have, and log you in
- Store IM chat logs online
- Integrate link-local XMPP (XEP-0174, Telepathy Salut) into the set of "People" exported by the online desktop
Store Tomboy notes online (and even sync with some web wiki - see Conduit)
- Integrate the keyrings between the browser and native applications so that users aren't prompted for passwords by each app
The browser side is being worked on here mozbug 309807
- Do we need shared cookies as well? Crack?
Figure out how to make the GNOME Online application database distro neutral and kept up to date. (Could we use a much simpler database that is only the WM class => ID mapping, and leave the browse/install business to distros?)
Online service integration
- Figure out how to help the user through picking a web service if they don't have one already. For example, the photo case. A random thought: base it on what their friends are using?
- Figure out if we want some sort of desktop presence for web apps .... in the Applications stock?
Consider integration with Mozilla Prism to make web apps act more like local apps
- Relationship between calendar in intlclock and online calendars (Google calendar and calendar stock, etc)
- Integration with GNOME "About Me"
- Flesh out/make more robust the GConf synchronization - sync background, gnome-terminal keybinding prefs, etc between computers
- Store your encrypted keyring on the server
- Store your bash history on the server
- Shared storage: themes, backgrounds, source tarballs?, ...
- Weather stock
- DND people merging
- Mini-view for people stock (squeeze more people into the space... one line of text per person?)
- Improved automatic sorting for the people stock? put people you IM with frequently at the top. (Is this confusing or unnecessary in conjuction with the manual wordering we have now?)
- Merge facebook friends into People stock
- Mini-view for application stock (use less space vertically ... put multiple launchers per line)
- Finish support for embedding Google gadgets (or other type of web gadgets)
- Make the calendar stock (and other Google polling) use a single session intead of re-logging in each time they poll
Ideas from Benjamin Dauvergne
Create this "desktop config" repository as a REST service, with discoverable url like "http://desktop.gnome.org/fr/Jean.Martin/" that permit third party to host such a service.
- Add OpenID as an authentication mechanism for the desktop and as a "desktop config" URL discovery mechanism --- look at OpenID registration extension, Yadis, etc..
Permit to specify White List of OpenId server/users to accept login from. Create temporary local desktop for them (with quota) that you destroy at logout (with disclaimer at login and logout time).
Keep some of the repository datas as opaque crypted blob present at the previously cited url. You can keep your chat logs or bash history at http://desktop.gnome.org/fr/Jean.Martin/chat-logs/YEAR-MONTH as encrypted XML blobs. Give your passphrase to your IM client and it will recover your logs from anywhere. Like this there is no need for https access or http authentication scheme for those datas, only for update.
- Make those data cacheable by an HTTP proxy cache. Add a local proxy cache for those configuration datas. Make the proxy cache verify connectivity, and consider himself authoritative everytime network is down. For OpenID users offer the possibility to create local credentials after a first login (What's you mother maiden name? kind or simple pass phrase) for logining in when network is down. It's not NSA proof security but ok for home users.