Re: Doubts about Online Desktop



On Tue, 2008-04-01 at 18:54 +0200, Manuel Rego Casasnovas wrote:
> Hello,
> 
> I've compiled Online Desktop in two computers and now I'm testing it.
> 
> Firstly I can start an Online Desktop session in the two computers at
> the same time, I don't know if it's right or no.

Yes, this is supposed to work fine. Eventually you might have many
devices (handhelds, phones, even), all connected to the same online
desktop account.

> Moreover I can configure my Big Board as I want, adding some widgets.
> However if a close my session an start it in other computer I don't see
> any change, I think that now anything is stored "online", I think that
> the configuration of my Big Board is stored local.

Yes, the bigboard configuration is stored locally for now, and we 
only sync a small set of GConf preferences like backgrounds and
window manager settings. It's easy to extend the GConf sync to
cover other keys, but we don't try to sync all of GConf since that
could lead to unexpected results... not everything in GConf really
is a user preference that would make sense on another computer.

Syncing the bigboard settings would be a good advertisement of the
GConf sync feature so we should do it. If we add this, we do need to
make sure that the bigboard is robust if there is a widget in GConf
but not visible.

> Really I don't know what is the exactly purpose of Online Desktop. My
> idea will be something like store information on Online Desktop server
> and independent the computer where I start a session, I will have the
> same configuration (for example, the same Big Board configuration).

The online desktop is can be hard explain because
it's a whole lot of things that don't always seem related at first
glance. They all derive from the thought experiment

 "What would the desktop look like if designed for the world when
  you are normally connected to the internet and occasionally
  disconnected."

That leads to a lot of different things:

 - We should store the user's settings, addressbook, accounts,
   passwords, bookmarks, and so forth in an online service, so that
   they have them available on any device, even ones they've never
   logged into before, and continually backed up.

 - We should integrate with the online services that the user uses
   and integrate them into the desktop.

 - Since we are connected, we can learn about things that are happening
   *without the user's interaction*. This means that we need a way
   to show the user stuff that is changing without getting in their
   way or obscuring their work: the side bar (bigboard).
 
 - Their should be platform facilities that make it easy to write 
   applications that get notifications about all sorts of continually
   changing information: the desktop data model.

 - The desktop platform should include account management, password
   management, and unified HTTP so that writing apps that talk to 
   online services is really easy and the user gets a seamless,
   consistent experience.

> On the other hand, if I would like to develop an application that stores
> something on Online Desktop server, how I can do it? Exists any API that
> provides this functionality?

This is something we're still developing and we'd love to work with
some external people to figure out the best way of doing this.

The most well developed way of storing things on the server right now
is to extend the online.gnome.org database schema to cover the new
types of data, and then use the data model to:

 - Retrieve this data  
 - Get notifications of changes
 - Make changes to the data

This is basically how all of the current data management is handled:
your contact list, your music history, your accounts, and so forth, but
it is certainly requires a strong commitment to hacking on the
online.gnome.org server (including knowledge of Java, and SQL.)
So it probably isn't going to be the only way to do things. Other
things that have been discussed:

 - Store your data in GConf, configure the online desktop to sync it. 
   Possible now, but not appropriate for everything.

 - Add some sort of key value pair mechanism. Easy to do, not clear
   if it's better than GConf.

 - Allow external web services to provide data to the data model.

 - Just write your service as a separate service and use the
   account management part of the online desktop to store a 
   reference. Possible now, though it would be easier if we allowed
   people to integrate with the online.gnome.org user database.

> For example, if I like to modify a RSS reader in order that it knows
> when an Online Desktop session is started and then gives my RSS from a
> Server and mark as read these feeds as read local and on my server. And
> later I started my Online Desktop session in other computer and I start
> my RSS reader, the feeds marked as read, keep marked as read. Is it
> possible? How can I do it?

For RSS feeds in particular, the best way of working on this might be
to enhance the "Mugshot stacker" functionality to make it a better feed
reader. There are lots things to do there:

 - Show more than the first 256 characters of feeds
 - Handle embedded images (this one is Hard to do well, but we could
   do a simple job, I think)
 - Allow subscription to feeds directly for one user account
 - Combine quipping across all copies of the same feed entry.

But that's probably missing the point of your example :-). If the 
online.gnome.org servers didn't already include a way of doing feed
reading, I think that you'd want to do it either as an external
service, or as a direct extension to the server code. Feeds don't
make sense to me as something to do in GConf or with key-value pairs.

> Finally I don't know if it's the goal of Online Desktop, or it's very
> far from it. I hope that someone can help me with some explanation.

I hope the notes above clear things up a bit. I know it's a bit
confusing to get it all sorted out, even for me sometimes... :-)

- Owen

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]