Re: ThreePointOne: Contacts

2011-04-19 Thread Alexander Larsson
On Mon, 2011-04-18 at 09:29 -0700, Travis Reitter wrote:
 As Frederic pointed out, we shouldn't be brainstorming on the 3.2
 feature pages, so I thought I'd fill in some details/thoughts on the
 Contacts [1] idea here.

Cool. Matthias put me down as Owner of that feature, because I will be
spending lots of work time on it to get something good for 3.2. 

However, I'm kind of a newbie in this area, so I'd like to start
reaching out to the involved parties and take a look at the technologies
involved and their status.

It seems like we have lots of interest and momentum from the
telepathy/folks/socialweb side. Do we also have interested parties from
the evolution side? I think having this deeply integrated with evolution
is as important as the IM/social side. Ideally we should be replacing
the evolution address book UI with this.

 * Folks has a nearly-ready read-only e-d-s backend [2]
   * making this read-write should be straightforward, since we did that
 with our Tracker backend

This sounds excellent. It seems to me that we should default for this to
be the main writable store, and avoid using the keyfile backend. Its our
primary local contact store anyway, so why not also use it to link to
other personas.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander LarssonRed Hat, Inc 
   al...@redhat.comalexander.lars...@gmail.com 
He's a scrappy Jewish shaman on the edge. She's a vivacious paranoid 
magician's assistant who can talk to animals. They fight crime! 

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Alexander Larsson
On Mon, 2011-04-18 at 11:52 -0700, Travis Reitter wrote:

 On Mon, 2011-04-18 at 20:29 +0200, Johannes Schmid wrote:
 
  While using GNOME 3.0 on my desktop now for a week I wanted to share my
  thoughs on the UI. The problem in the current situation is that the
  shell provides a nice chat integration but to start a new chat you have
  to use the Contact List window of empathy which feels totally
  out-of-place. It is also one of the windows you really don't want to see
  in the overview.
 
 Agreed. I'd like my general chat process to just be:
 
 Meta, start typing person's name+Enter

By meta you mean the windows key thing?

 which is the same way I launch all my applications in Gnome Shell (and
 is one of the most compelling features of it, I think). Like launching
 programs, you would be able to pause to see the full results list and
 perform more-specific actions (such as selecting the exact account and
 contact you want to initiate the chat from and to, as Empathy lets you
 do now).

Yeah, this sounds like about the right thing. I'm thinking we could have
a new tab in addition to the windows and applications one listing
people, probably showing the online ones first, or at least making that
information prominent. Clicking on a person should let you easily send
mail, start a im conversation or send a file. Additionally these should
show up on the search results, and be possible to put in the dash.

  What Daniel and Salamon mocked-up is certainly a nice start but I think
  a dedicated window for it doesn't fit with the overall shell design
  well.
 
 I think it makes sense to have both. The shell search provider would
 focus on communicating with existing contacts (similar to launching
 programs), whereas the stand-alone program would be more focused on
 adding and managing contacts (which are much-rarer actions). And it
 still makes sense to have the communication buttons in the stand-alone
 program to make the use case of add a person, start chat/call with
 them smoother than adding them there, then going to the Activities tab
 to start the communication.

Yeah, I think this is somewhat analogous to the file management
situation. If you just want to find or open a file you can use the
shell, but if you want to do more work you'd start the file manager.

So, the gnome-shell integrated part is about day-to-day using of the
already set up stuff, whereas the contacts app is where you'd fill in
information, or do more complex stuff like link contacts or create
groups. 

There are other integration points we must think about too. Whatever we
come up with should imho replace the contacts pane in evolution, and
must allow interaction with evolution (dnd onto composer windows, etc).
Also, we should have something that corresponds to clicking on the to
button in the evo compositor to select a single email (or im if used for
elsewhere) address to add.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander LarssonRed Hat, Inc 
   al...@redhat.comalexander.lars...@gmail.com 
He's a scrappy small-town stage actor fleeing from a secret government 
programme. She's a disco-crazy hypochondriac wrestler married to the Mob. They 
fight crime! 

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Alexander Larsson
On Mon, 2011-04-18 at 09:29 -0700, Travis Reitter wrote:
 http://lists.freedesktop.org/archives/telepathy/2011-March/005369.html
 [4]

This seems to talk about querying contacts from slow social web
services. Additionally if this is to be our story in evolution too we
need to be able to efficiently handle ldap contacts, which are really
important for enterprise deployments of email. This also needs a live
search approach, because we can't rely on a local copy of all ldap data.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander LarssonRed Hat, Inc 
   al...@redhat.comalexander.lars...@gmail.com 
He's a one-legged Jewish senator whom everyone believes is mad. She's a 
warm-hearted impetuous vampire with a flame-thrower. They fight crime! 

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Philip Withnall
On Tue, 2011-04-19 at 10:01 +0200, Alexander Larsson wrote:
 On Mon, 2011-04-18 at 11:52 -0700, Travis Reitter wrote:
 
  On Mon, 2011-04-18 at 20:29 +0200, Johannes Schmid wrote:
  
   While using GNOME 3.0 on my desktop now for a week I wanted to share my
   thoughs on the UI. The problem in the current situation is that the
   shell provides a nice chat integration but to start a new chat you have
   to use the Contact List window of empathy which feels totally
   out-of-place. It is also one of the windows you really don't want to see
   in the overview.
  
  Agreed. I'd like my general chat process to just be:
  
  Meta, start typing person's name+Enter
 
 By meta you mean the windows key thing?
 
  which is the same way I launch all my applications in Gnome Shell (and
  is one of the most compelling features of it, I think). Like launching
  programs, you would be able to pause to see the full results list and
  perform more-specific actions (such as selecting the exact account and
  contact you want to initiate the chat from and to, as Empathy lets you
  do now).
 
 Yeah, this sounds like about the right thing. I'm thinking we could have
 a new tab in addition to the windows and applications one listing
 people, probably showing the online ones first, or at least making that
 information prominent. Clicking on a person should let you easily send
 mail, start a im conversation or send a file. Additionally these should
 show up on the search results, and be possible to put in the dash.
 
   What Daniel and Salamon mocked-up is certainly a nice start but I think
   a dedicated window for it doesn't fit with the overall shell design
   well.
  
  I think it makes sense to have both. The shell search provider would
  focus on communicating with existing contacts (similar to launching
  programs), whereas the stand-alone program would be more focused on
  adding and managing contacts (which are much-rarer actions). And it
  still makes sense to have the communication buttons in the stand-alone
  program to make the use case of add a person, start chat/call with
  them smoother than adding them there, then going to the Activities tab
  to start the communication.
 
 Yeah, I think this is somewhat analogous to the file management
 situation. If you just want to find or open a file you can use the
 shell, but if you want to do more work you'd start the file manager.
 
 So, the gnome-shell integrated part is about day-to-day using of the
 already set up stuff, whereas the contacts app is where you'd fill in
 information, or do more complex stuff like link contacts or create
 groups. 
 
 There are other integration points we must think about too. Whatever we
 come up with should imho replace the contacts pane in evolution, and
 must allow interaction with evolution (dnd onto composer windows, etc).
 Also, we should have something that corresponds to clicking on the to
 button in the evo compositor to select a single email (or im if used for
 elsewhere) address to add.

Empathy uses the “text/individual-id” and “text/persona-id” drag targets
for dragging and dropping folks individuals and personas.

Philip


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Alexander Larsson
On Tue, 2011-04-19 at 09:53 +0100, Philip Withnall wrote:
 On Tue, 2011-04-19 at 10:01 +0200, Alexander Larsson wrote:
  On Mon, 2011-04-18 at 11:52 -0700, Travis Reitter wrote:
  
   On Mon, 2011-04-18 at 20:29 +0200, Johannes Schmid wrote:
   
While using GNOME 3.0 on my desktop now for a week I wanted to share my
thoughs on the UI. The problem in the current situation is that the
shell provides a nice chat integration but to start a new chat you have
to use the Contact List window of empathy which feels totally
out-of-place. It is also one of the windows you really don't want to see
in the overview.
   
   Agreed. I'd like my general chat process to just be:
   
   Meta, start typing person's name+Enter
  
  By meta you mean the windows key thing?
  
   which is the same way I launch all my applications in Gnome Shell (and
   is one of the most compelling features of it, I think). Like launching
   programs, you would be able to pause to see the full results list and
   perform more-specific actions (such as selecting the exact account and
   contact you want to initiate the chat from and to, as Empathy lets you
   do now).
  
  Yeah, this sounds like about the right thing. I'm thinking we could have
  a new tab in addition to the windows and applications one listing
  people, probably showing the online ones first, or at least making that
  information prominent. Clicking on a person should let you easily send
  mail, start a im conversation or send a file. Additionally these should
  show up on the search results, and be possible to put in the dash.
  
What Daniel and Salamon mocked-up is certainly a nice start but I think
a dedicated window for it doesn't fit with the overall shell design
well.
   
   I think it makes sense to have both. The shell search provider would
   focus on communicating with existing contacts (similar to launching
   programs), whereas the stand-alone program would be more focused on
   adding and managing contacts (which are much-rarer actions). And it
   still makes sense to have the communication buttons in the stand-alone
   program to make the use case of add a person, start chat/call with
   them smoother than adding them there, then going to the Activities tab
   to start the communication.
  
  Yeah, I think this is somewhat analogous to the file management
  situation. If you just want to find or open a file you can use the
  shell, but if you want to do more work you'd start the file manager.
  
  So, the gnome-shell integrated part is about day-to-day using of the
  already set up stuff, whereas the contacts app is where you'd fill in
  information, or do more complex stuff like link contacts or create
  groups. 
  
  There are other integration points we must think about too. Whatever we
  come up with should imho replace the contacts pane in evolution, and
  must allow interaction with evolution (dnd onto composer windows, etc).
  Also, we should have something that corresponds to clicking on the to
  button in the evo compositor to select a single email (or im if used for
  elsewhere) address to add.
 
 Empathy uses the “text/individual-id” and “text/persona-id” drag targets
 for dragging and dropping folks individuals and personas.

Shouldn't you be using x-something for nonstandard types like these?
Anyway, we'd need to add corresponding support to evolution too. Also, i
think the current evolution contacts dialog dnds a vcard, which seems
like a good thing to do too.


-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander LarssonRed Hat, Inc 
   al...@redhat.comalexander.lars...@gmail.com 
He's an underprivileged umbrella-wielding boxer with a passion for fast cars. 
She's a violent cat-loving advertising executive operating on the wrong side 
of the law. They fight crime! 

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread daniel g. siegel
another very important point is synchronisation. together with salomon
sickert we thought about how to solve this problem. basically we came up
with the idea of a self-replicating backend, like couchdb. if we then
could add support to the contact apps of other computer/devices like a
n900 or android, we would get synchronisation and conflict management
for free.

then there is also the idea of having a webservice for the gnome
contacts app, where you can access your contacts over the internet.

we are very interested in your opinions about this!

daniel

On Tue, 2011-04-19 at 10:27 +0200, Alexander Larsson wrote:
 On Mon, 2011-04-18 at 09:29 -0700, Travis Reitter wrote:
  http://lists.freedesktop.org/archives/telepathy/2011-March/005369.html
  [4]
 
 This seems to talk about querying contacts from slow social web
 services. Additionally if this is to be our story in evolution too we
 need to be able to efficiently handle ldap contacts, which are really
 important for enterprise deployments of email. This also needs a live
 search approach, because we can't rely on a local copy of all ldap data.
 

-- 
this mail was sent using 100% recycled electrons

daniel g. siegel dgsie...@gnome.org
http://www.dgsiegel.net
gnupg key id: 0xDB8E409F
fingerprint: F9DD 693C 9E8B 9121 B20B 202E C7D3 3397 DB8E 409F
encrypted email preferred


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Will Thompson
On 19/04/11 10:39, Alexander Larsson wrote:
 On Tue, 2011-04-19 at 09:53 +0100, Philip Withnall wrote:
 Empathy uses the “text/individual-id” and “text/persona-id” drag targets
 for dragging and dropping folks individuals and personas.
 
 Shouldn't you be using x-something for nonstandard types like these?
 Anyway, we'd need to add corresponding support to evolution too. Also, i
 think the current evolution contacts dialog dnds a vcard, which seems
 like a good thing to do too.

Pidgin supports dragging and dropping application/x-im-contact and
text/x-vcard.

Obviously it's unlikely that anyone will ever dnd between Pidgin and
Empathy, but it would be nice if Empathy supported these MIME types for
interoperability with hypothetical other apps that speak these formats.
(Perhaps Evo already understands both? I can't think where else
x-im-contact would be used.)

Cheers,
-- 
Will
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Alexander Larsson
On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
 another very important point is synchronisation. together with salomon
 sickert we thought about how to solve this problem. basically we came up
 with the idea of a self-replicating backend, like couchdb. if we then
 could add support to the contact apps of other computer/devices like a
 n900 or android, we would get synchronisation and conflict management
 for free.
 
 then there is also the idea of having a webservice for the gnome
 contacts app, where you can access your contacts over the internet.
 
 we are very interested in your opinions about this!

I don't know really. Synchronization is a tricky subject, with complex
protocols and risk for merge problems. Its almost always a source of
weird problems. I don't think we want to have synchronization as some
core part of the design. 

On the other hand, its important that there is some level of support for
synchronizing contacts with e.g. phones. So, I guess we need to think
about where it fits in.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander LarssonRed Hat, Inc 
   al...@redhat.comalexander.lars...@gmail.com 
He's a shy day-dreaming firefighter who hides his scarred face behind a mask. 
She's a mistrustful blonde widow with the power to bend men's minds. They 
fight crime! 

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Ross Burton
On 19 April 2011 11:27, Alexander Larsson al...@redhat.com wrote:
 On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
 another very important point is synchronisation. together with salomon
 sickert we thought about how to solve this problem. basically we came up
 with the idea of a self-replicating backend, like couchdb. if we then
 could add support to the contact apps of other computer/devices like a
 n900 or android, we would get synchronisation and conflict management
 for free.

 then there is also the idea of having a webservice for the gnome
 contacts app, where you can access your contacts over the internet.

 we are very interested in your opinions about this!

 I don't know really. Synchronization is a tricky subject, with complex
 protocols and risk for merge problems. Its almost always a source of
 weird problems. I don't think we want to have synchronization as some
 core part of the design.

 On the other hand, its important that there is some level of support for
 synchronizing contacts with e.g. phones. So, I guess we need to think
 about where it fits in.

If you start to talk about synchronisation, please talk to Patrick
Ohly patrick.o...@gmx.de.  He maintains SyncEvolution that is
probably the only working PIM syncing tool that I know of, and it's
totally non-trivial.

Ross
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread daniel g. siegel
On Tue, 2011-04-19 at 11:37 +0100, Ross Burton wrote:
 On 19 April 2011 11:27, Alexander Larsson al...@redhat.com wrote:
  On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
  another very important point is synchronisation. together with salomon
  sickert we thought about how to solve this problem. basically we came up
  with the idea of a self-replicating backend, like couchdb. if we then
  could add support to the contact apps of other computer/devices like a
  n900 or android, we would get synchronisation and conflict management
  for free.
 
  then there is also the idea of having a webservice for the gnome
  contacts app, where you can access your contacts over the internet.
 
  we are very interested in your opinions about this!
 
  I don't know really. Synchronization is a tricky subject, with complex
  protocols and risk for merge problems. Its almost always a source of
  weird problems. I don't think we want to have synchronization as some
  core part of the design.
 
  On the other hand, its important that there is some level of support for
  synchronizing contacts with e.g. phones. So, I guess we need to think
  about where it fits in.
 
 If you start to talk about synchronisation, please talk to Patrick
 Ohly patrick.o...@gmx.de.  He maintains SyncEvolution that is
 probably the only working PIM syncing tool that I know of, and it's
 totally non-trivial.

you mean kinda-working? ;) indeed, synchronisation with todays devices
over syncml is extremely hard. i really don't want that in the core
design neither.

i was more thinking about a backend like couchdb, which has a
synchronisation solution already built in. ubuntu does that for example
with evolution and ubuntu one.

daniel

 
 Ross

-- 
this mail was sent using 100% recycled electrons

daniel g. siegel dgsie...@gnome.org
http://www.dgsiegel.net
gnupg key id: 0xDB8E409F
fingerprint: F9DD 693C 9E8B 9121 B20B 202E C7D3 3397 DB8E 409F
encrypted email preferred


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Tomasz Torcz
On Tue, Apr 19, 2011 at 11:37:49AM +0100, Ross Burton wrote:
 On 19 April 2011 11:27, Alexander Larsson al...@redhat.com wrote:
  On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
  another very important point is synchronisation. together with salomon
  sickert we thought about how to solve this problem. basically we came up
  with the idea of a self-replicating backend, like couchdb. if we then
  could add support to the contact apps of other computer/devices like a
  n900 or android, we would get synchronisation and conflict management
  for free.
 
  then there is also the idea of having a webservice for the gnome
  contacts app, where you can access your contacts over the internet.
 
  we are very interested in your opinions about this!
 
  I don't know really. Synchronization is a tricky subject, with complex
  protocols and risk for merge problems. Its almost always a source of
  weird problems. I don't think we want to have synchronization as some
  core part of the design.
 
  On the other hand, its important that there is some level of support for
  synchronizing contacts with e.g. phones. So, I guess we need to think
  about where it fits in.
 
 If you start to talk about synchronisation, please talk to Patrick
 Ohly patrick.o...@gmx.de.  He maintains SyncEvolution that is
 probably the only working PIM syncing tool that I know of, and it's
 totally non-trivial.

  Just recently there were some comment on sad state of sync:
http://www.happyassassin.net/2011/04/13/the-continuing-state-of-contact-calendar-synchronization-suck/
http://luther.ceplovi.cz/blog/2011/04/synchronization-sucks/

  Can we make synchronisation not suck?

-- 
Tomasz Torcz God, root, what's the difference?
xmpp: zdzich...@chrome.pl God is more forgiving.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Ross Burton
On 19 April 2011 11:56, Tomasz Torcz to...@pipebreaker.pl wrote:
  Just recently there were some comment on sad state of sync:
 http://www.happyassassin.net/2011/04/13/the-continuing-state-of-contact-calendar-synchronization-suck/
 http://luther.ceplovi.cz/blog/2011/04/synchronization-sucks/

  Can we make synchronisation not suck?

Patrick actually went to the bother of replying to those posts in blog form:

http://syncevolution.org/blogs/pohly/2011/state-syncing-open-source

A good read, I recommend it.

Ross
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Rob Taylor
On 19/04/11 11:27, Alexander Larsson wrote:
 On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
 another very important point is synchronisation. together with salomon
 sickert we thought about how to solve this problem. basically we came up
 with the idea of a self-replicating backend, like couchdb. if we then
 could add support to the contact apps of other computer/devices like a
 n900 or android, we would get synchronisation and conflict management
 for free.

 then there is also the idea of having a webservice for the gnome
 contacts app, where you can access your contacts over the internet.

 we are very interested in your opinions about this!
 
 I don't know really. Synchronization is a tricky subject, with complex
 protocols and risk for merge problems. Its almost always a source of
 weird problems. I don't think we want to have synchronization as some
 core part of the design. 
 
 On the other hand, its important that there is some level of support for
 synchronizing contacts with e.g. phones. So, I guess we need to think
 about where it fits in.
 

Hmm, its really not that tricky - the eventually consistent method used
by couch works well in most situations - all replicated endpoints
resolve to the same state without intervention, and if you want to pick
up any pieces, you can.

I would be happy to help out any team forming to look at the area - at
work we've had a few people building replicating (mobile/server) apps
with couchdb and it's a very nice system.

Also, semi-schema'd document based storage like couch works nicely for
extensibility and data mashups.

On supporting existing sync protocols, for 'traditional' sync, its
important to have one central point of resolution, and that's ideally a
server. A nice plan would be a server side component (on gnome.org of
course) that has an activesync and syncml endpoint which syncs into a
couchdb database for replication with the desktop. For activesync,
z-push [1] works well, and can be made pretty scalable with a few
changes. for SyncML, there's good open source components like funambol
[2] available.

I'd probably be able to swing some sponsorship for hosted servers if we
can put together a team looking at this.

Rob


[1] http://z-push.sourceforge.net/soswp/
[2] https://www.forge.funambol.org/DomainHome.html
-- 

Rob Taylor, CTO, Codethink Ltd. - http://codethink.co.uk
Twitter: @robtaylor78 - LinkedIn: http://www.linkedin.com/in/robtaylor78
Office: +44 161 236 5575 - Cell: +44 7891 533856
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Jens Georg

   Can we make synchronisation not suck?
 
Achieving good and non-breaking sync is really hard and sometimes next
to impossible, given that the formats used in PIM sync (vCard, I'm
looking at you) are really weird and broadly interpreted differently by
different devices out there (Like e.g. the intepretation of the FN
field)

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread daniel g. siegel
and right here i think we shouldn't base on bad formats (vcard) and
sucking protocols (syncml). using json is a much better option.

see for example the desktopcouch specification for contacts
http://www.freedesktop.org/wiki/Specifications/desktopcouch/contact

On Tue, 2011-04-19 at 14:11 +0300, Jens Georg wrote:
Can we make synchronisation not suck?
  
 Achieving good and non-breaking sync is really hard and sometimes next
 to impossible, given that the formats used in PIM sync (vCard, I'm
 looking at you) are really weird and broadly interpreted differently by
 different devices out there (Like e.g. the intepretation of the FN
 field)
 
 ___
 desktop-devel-list mailing list
 desktop-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/desktop-devel-list

-- 
this mail was sent using 100% recycled electrons

daniel g. siegel dgsie...@gnome.org
http://www.dgsiegel.net
gnupg key id: 0xDB8E409F
fingerprint: F9DD 693C 9E8B 9121 B20B 202E C7D3 3397 DB8E 409F
encrypted email preferred


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Rodrigo Moya
On Tue, 2011-04-19 at 12:41 +0200, daniel g. siegel wrote:
 On Tue, 2011-04-19 at 11:37 +0100, Ross Burton wrote:
  On 19 April 2011 11:27, Alexander Larsson al...@redhat.com wrote:
   On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
   another very important point is synchronisation. together with salomon
   sickert we thought about how to solve this problem. basically we came up
   with the idea of a self-replicating backend, like couchdb. if we then
   could add support to the contact apps of other computer/devices like a
   n900 or android, we would get synchronisation and conflict management
   for free.
  
   then there is also the idea of having a webservice for the gnome
   contacts app, where you can access your contacts over the internet.
  
   we are very interested in your opinions about this!
  
   I don't know really. Synchronization is a tricky subject, with complex
   protocols and risk for merge problems. Its almost always a source of
   weird problems. I don't think we want to have synchronization as some
   core part of the design.
  
   On the other hand, its important that there is some level of support for
   synchronizing contacts with e.g. phones. So, I guess we need to think
   about where it fits in.
  
  If you start to talk about synchronisation, please talk to Patrick
  Ohly patrick.o...@gmx.de.  He maintains SyncEvolution that is
  probably the only working PIM syncing tool that I know of, and it's
  totally non-trivial.
 
 you mean kinda-working? ;) indeed, synchronisation with todays devices
 over syncml is extremely hard. i really don't want that in the core
 design neither.
 
 i was more thinking about a backend like couchdb, which has a
 synchronisation solution already built in. ubuntu does that for example
 with evolution and ubuntu one.
 
evolution-couchdb provides that already, so if folks has an e-d-s
backend, it should already be available. Also, replication/conflict
management in couchdb is quite good indeed

The problem with this is that for couchdb to be really useful, the
best thing is to run a local instance that then syncs to a remote
instance, and while it's entirely possible (as you said, Ubuntu One does
it) some people showed their concerns when I proposed
couchdb-glib/evolution-couchdb (for 2.30 I think it was) about running a
local instance of couchdb.

But yes, should be perfectly possible. Maybe we should revisit the
discussion again?

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread daniel g. siegel
On Tue, 2011-04-19 at 13:21 +0200, Rodrigo Moya wrote:
 On Tue, 2011-04-19 at 12:41 +0200, daniel g. siegel wrote:
  On Tue, 2011-04-19 at 11:37 +0100, Ross Burton wrote:
   On 19 April 2011 11:27, Alexander Larsson al...@redhat.com wrote:
On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
another very important point is synchronisation. together with salomon
sickert we thought about how to solve this problem. basically we came 
up
with the idea of a self-replicating backend, like couchdb. if we then
could add support to the contact apps of other computer/devices like a
n900 or android, we would get synchronisation and conflict management
for free.
   
then there is also the idea of having a webservice for the gnome
contacts app, where you can access your contacts over the internet.
   
we are very interested in your opinions about this!
   
I don't know really. Synchronization is a tricky subject, with complex
protocols and risk for merge problems. Its almost always a source of
weird problems. I don't think we want to have synchronization as some
core part of the design.
   
On the other hand, its important that there is some level of support for
synchronizing contacts with e.g. phones. So, I guess we need to think
about where it fits in.
   
   If you start to talk about synchronisation, please talk to Patrick
   Ohly patrick.o...@gmx.de.  He maintains SyncEvolution that is
   probably the only working PIM syncing tool that I know of, and it's
   totally non-trivial.
  
  you mean kinda-working? ;) indeed, synchronisation with todays devices
  over syncml is extremely hard. i really don't want that in the core
  design neither.
  
  i was more thinking about a backend like couchdb, which has a
  synchronisation solution already built in. ubuntu does that for example
  with evolution and ubuntu one.
  
 evolution-couchdb provides that already, so if folks has an e-d-s
 backend, it should already be available. Also, replication/conflict
 management in couchdb is quite good indeed
 
 The problem with this is that for couchdb to be really useful, the
 best thing is to run a local instance that then syncs to a remote
 instance, and while it's entirely possible (as you said, Ubuntu One does
 it) some people showed their concerns when I proposed
 couchdb-glib/evolution-couchdb (for 2.30 I think it was) about running a
 local instance of couchdb.
 
 But yes, should be perfectly possible. Maybe we should revisit the
 discussion again?
 

imho couchdb is just one way of many, but certainyl the right direction.
you guys showed, that it is possible to have a working synchronisation
quite easily with couchdb. so yes, let's re-evaluate possible backends?


-- 
this mail was sent using 100% recycled electrons

daniel g. siegel dgsie...@gnome.org
http://www.dgsiegel.net
gnupg key id: 0xDB8E409F
fingerprint: F9DD 693C 9E8B 9121 B20B 202E C7D3 3397 DB8E 409F
encrypted email preferred


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Jens Georg
On Tue, 2011-04-19 at 13:21 +0200, daniel g. siegel wrote:
 and right here i think we shouldn't base on bad formats (vcard) and
 sucking protocols (syncml). using json is a much better option.

Well as soon as you talk about sync, someone says device. And devices
come with vCard.

 see for example the desktopcouch specification for contacts
 http://www.freedesktop.org/wiki/Specifications/desktopcouch/contact

Looking at this - do you realise how much very much that matches the
vCard spec? That's basically a vCard translated to JSON.

Personally, I'd rather have a root canal treatment than couch db
hammering my computer, but I like the auto-replication idea.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Rodrigo Moya
On Mon, 2011-04-18 at 09:29 -0700, Travis Reitter wrote:
 As Frederic pointed out, we shouldn't be brainstorming on the 3.2
 feature pages, so I thought I'd fill in some details/thoughts on the
 Contacts [1] idea here.
 
 The page suggests libfolks and/or libsocialweb for the implementation.
 The good news is that Folks 0.5.0 (released last week) added support for
 libsocialweb, so using Folks gets you both. In the process, Alban Crequy
 also added Contacts support for a few libsocialweb services in
 libsocialweb itself (Flickr, Twitter, Last.FM) and upstreamed Marco
 Barisione's Facebook support. The remaining lsw services (such as Vimeo
 and YouTube) don't have Contacts support yet, but it could certainly be
 added.
 
this makes a lot of sense, but we really need a way to send messages to
facebook/twitter contacts, or do other operations on the other services
(see photos from flickr, listen to music in last.fm, etc).

So, are there any plans for a twitter/facebook client app?

For photos and music, I guess it's easy, since we can't just start the
corresponding app/url from the 'contacts view' in the shell


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread daniel g. siegel
On Tue, 2011-04-19 at 14:38 +0300, Jens Georg wrote:
 On Tue, 2011-04-19 at 13:21 +0200, daniel g. siegel wrote:
  and right here i think we shouldn't base on bad formats (vcard) and
  sucking protocols (syncml). using json is a much better option.
 
 Well as soon as you talk about sync, someone says device. And devices
 come with vCard.

there is no problem in providing an import function for vcards

 
  see for example the desktopcouch specification for contacts
  http://www.freedesktop.org/wiki/Specifications/desktopcouch/contact
 
 Looking at this - do you realise how much very much that matches the
 vCard spec? That's basically a vCard translated to JSON.
 
 Personally, I'd rather have a root canal treatment than couch db
 hammering my computer, but I like the auto-replication idea.

you are right. but i just wanted to show this as an example. personally
i am not totally happy with the specification, as there are for example
legacy items, like pager and others. but it is a good start.

 

-- 
this mail was sent using 100% recycled electrons

daniel g. siegel dgsie...@gnome.org
http://www.dgsiegel.net
gnupg key id: 0xDB8E409F
fingerprint: F9DD 693C 9E8B 9121 B20B 202E C7D3 3397 DB8E 409F
encrypted email preferred


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Rodrigo Moya
On Tue, 2011-04-19 at 13:28 +0200, daniel g. siegel wrote:
 On Tue, 2011-04-19 at 13:21 +0200, Rodrigo Moya wrote:
  On Tue, 2011-04-19 at 12:41 +0200, daniel g. siegel wrote:
   On Tue, 2011-04-19 at 11:37 +0100, Ross Burton wrote:
On 19 April 2011 11:27, Alexander Larsson al...@redhat.com wrote:
 On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
 another very important point is synchronisation. together with 
 salomon
 sickert we thought about how to solve this problem. basically we 
 came up
 with the idea of a self-replicating backend, like couchdb. if we then
 could add support to the contact apps of other computer/devices like 
 a
 n900 or android, we would get synchronisation and conflict management
 for free.

 then there is also the idea of having a webservice for the gnome
 contacts app, where you can access your contacts over the internet.

 we are very interested in your opinions about this!

 I don't know really. Synchronization is a tricky subject, with complex
 protocols and risk for merge problems. Its almost always a source of
 weird problems. I don't think we want to have synchronization as some
 core part of the design.

 On the other hand, its important that there is some level of support 
 for
 synchronizing contacts with e.g. phones. So, I guess we need to think
 about where it fits in.

If you start to talk about synchronisation, please talk to Patrick
Ohly patrick.o...@gmx.de.  He maintains SyncEvolution that is
probably the only working PIM syncing tool that I know of, and it's
totally non-trivial.
   
   you mean kinda-working? ;) indeed, synchronisation with todays devices
   over syncml is extremely hard. i really don't want that in the core
   design neither.
   
   i was more thinking about a backend like couchdb, which has a
   synchronisation solution already built in. ubuntu does that for example
   with evolution and ubuntu one.
   
  evolution-couchdb provides that already, so if folks has an e-d-s
  backend, it should already be available. Also, replication/conflict
  management in couchdb is quite good indeed
  
  The problem with this is that for couchdb to be really useful, the
  best thing is to run a local instance that then syncs to a remote
  instance, and while it's entirely possible (as you said, Ubuntu One does
  it) some people showed their concerns when I proposed
  couchdb-glib/evolution-couchdb (for 2.30 I think it was) about running a
  local instance of couchdb.
  
  But yes, should be perfectly possible. Maybe we should revisit the
  discussion again?
  
 
 imho couchdb is just one way of many, but certainyl the right direction.
 you guys showed, that it is possible to have a working synchronisation
 quite easily with couchdb. so yes, let's re-evaluate possible backends?
 
what do you mean by 'backends'? Backends of what? As I said,
evolution-couchdb already provides an e-d-s backend for accessing
contacts in CouchDB databases, so IMO, what we need is:

* a user service that starts a local couchdb instance

* a way for evo-couchdb to know at what port that instance is listening
(if it's random, maybe we could establish a standard one). With
desktopcouch (the Ubuntu One local couchdb instance), we do a DBus call
to obtain the port, but that's quite tricky, as couchdb can crash and
thus start on a different port. Another option would be to provide a
full DBus service that allows access to that local instance, regardless
of the port, but then we'll need to write lots of new code to talk to
that service, as evolution-couchdb just talks the CouchDB protocol
(http://wiki.apache.org/couchdb/Reference) which works for any couchdb
instance, whether it's local or remote.

* a tool to configure where to replicate the local instance to

* authentication for the local and remote instances. couchdb-glib (the
API implementing the couchdb client-side protocol) already supports
OAuth and user/password authentication

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Rodrigo Moya
On Tue, 2011-04-19 at 14:38 +0300, Jens Georg wrote:
 On Tue, 2011-04-19 at 13:21 +0200, daniel g. siegel wrote:
  and right here i think we shouldn't base on bad formats (vcard) and
  sucking protocols (syncml). using json is a much better option.
 
 Well as soon as you talk about sync, someone says device. And devices
 come with vCard.
 
  see for example the desktopcouch specification for contacts
  http://www.freedesktop.org/wiki/Specifications/desktopcouch/contact
 
 Looking at this - do you realise how much very much that matches the
 vCard spec? That's basically a vCard translated to JSON.
 
well, that's because the fields used to describe a contact are quite
obvious, so it's not a vcard-json translation really, it's just a set
of fields to describe a contact, which happen to be also in vCard

 Personally, I'd rather have a root canal treatment than couch db
 hammering my computer, but I like the auto-replication idea.
 
auto-replication of several instances and, most important, conflict
management for free :-)

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread daniel g. siegel

 what do you mean by 'backends'? Backends of what? As I said,
 evolution-couchdb already provides an e-d-s backend for accessing
 contacts in CouchDB databases, so IMO, what we need is:

so my question is basically: why do we need e-d-s if we have our
contacts in couchdb?

-- 
this mail was sent using 100% recycled electrons

daniel g. siegel dgsie...@gnome.org
http://www.dgsiegel.net
gnupg key id: 0xDB8E409F
fingerprint: F9DD 693C 9E8B 9121 B20B 202E C7D3 3397 DB8E 409F
encrypted email preferred


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Philip Withnall
libfolks was explicitly designed to aggregate contact information
instead of synchronising it, entirely because synchronisation is hard.

Philip

On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
 another very important point is synchronisation. together with salomon
 sickert we thought about how to solve this problem. basically we came up
 with the idea of a self-replicating backend, like couchdb. if we then
 could add support to the contact apps of other computer/devices like a
 n900 or android, we would get synchronisation and conflict management
 for free.
 
 then there is also the idea of having a webservice for the gnome
 contacts app, where you can access your contacts over the internet.
 
 we are very interested in your opinions about this!
 
 daniel
 
 On Tue, 2011-04-19 at 10:27 +0200, Alexander Larsson wrote:
  On Mon, 2011-04-18 at 09:29 -0700, Travis Reitter wrote:
   http://lists.freedesktop.org/archives/telepathy/2011-March/005369.html
   [4]
  
  This seems to talk about querying contacts from slow social web
  services. Additionally if this is to be our story in evolution too we
  need to be able to efficiently handle ldap contacts, which are really
  important for enterprise deployments of email. This also needs a live
  search approach, because we can't rely on a local copy of all ldap data.
  
 
 ___
 desktop-devel-list mailing list
 desktop-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/desktop-devel-list



signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Olav Vitters
On Tue, Apr 19, 2011 at 02:14:41PM +0200, daniel g. siegel wrote:
 so my question is basically: why do we need e-d-s if we have our
 contacts in couchdb?

Don't forget features have to be across the whole of GNOME core. Cannot
ignore e-d-s if that results in an incomplete user experience (some
parts using one technology, some parts another).
-- 
Regards,
Olav
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Patrick Ohly
Hello!

Rob Taylor rob.taylor at codethink.co.uk writes:
 On 19/04/11 11:27, Alexander Larsson wrote:
  On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:

Ross pointed me to this discussion. Let me jump into the discussion by
replying to a more or less random post and quoting some other relevant
statements. I'm not subscribed, so please CC me.

For some background on why sync is hard, here's an article that I
wrote a while ago for LWN.net:
http://syncevolution.org/development/pim-data-synchronization-why-it-so-hard

Note that this applies to both contacts and calendar, and probably
more. If you design something new for GNOME, please don't focus
exclusively on contacts.

  another very important point is synchronisation. together with salomon
  sickert we thought about how to solve this problem. basically we came up
  with the idea of a self-replicating backend, like couchdb.

That only gives you a closed solution between peers which share that
self-replicating data. If you model it after couchdb (or just stick
with couchdb), then a unique ID is assigned to each new contact once,
when it gets created, and thus there's never any confusion whether a
peer already has some data.

  if we then
  could add support to the contact apps of other computer/devices like a
  n900 or android, we would get synchronisation and conflict management
  for free.

Nothing will be for free once you want to add interoperability :-/ All
of the challenges mentioned in the article above will still apply (no
unique ID in those peers, legacy formats, different data models).

  then there is also the idea of having a webservice for the gnome
  contacts app, where you can access your contacts over the internet.
 
  we are very interested in your opinions about this!
  
  I don't know really. Synchronization is a tricky subject, with complex
  protocols and risk for merge problems. Its almost always a source of
  weird problems. I don't think we want to have synchronization as some
  core part of the design. 
  
  On the other hand, its important that there is some level of support for
  synchronizing contacts with e.g. phones. So, I guess we need to think
  about where it fits in.

If I had one wish, then it is this one: ensure that each item gets a
unique, vendor created ID that never changes throughout the lifetime
of the item.

Currently EDS supports that for calendar (part of iCalendar 2.0
semantic), but not in the file contact backend (not required by vCard
3.0). Any UID that might have been set in a new vCard is overwritten
by a local ID.

 Hmm, its really not that tricky - the eventually consistent method used
 by couch works well in most situations - all replicated endpoints
 resolve to the same state without intervention, and if you want to pick
 up any pieces, you can.

For couchdb-couchdb sync, yes, but that's only a subset of the
problem - unless you can convince the rest of the world to use the
same system. Start by convincing the Tracker/Ontology proponents, who
also want everyone else to use their system for data replication ;-)

I'm pragmatic and don't expect that any system will ever take over
enough to use it exclusively.

Regarding couchdb: how complete is its data model? When it first
showed up, SyncEvolution had some problems with it because REV wasn't
supported, if memory serves me right.

 On supporting existing sync protocols, for 'traditional' sync, its
 important to have one central point of resolution, and that's ideally a
 server.

Then the server becomes easily the weakest link in the chain. In the
past, dumb phones had a very limited data model that could be
completely supported by a (SyncML) server. Nowadays the address book
in a client is very rich and may contain data that is not supported by
many servers - that's definitely the case with, for example, MeeGo to
Google sync.

If the client then trusts the server exclusively to resolve conflicts,
data is lost on the server.

Another conceptual problem is that the server cannot communicate well
with the user. A client might pop up rich dialogs and ask the user for
help in cases that it cannot decide automatically (but designing such
a dialog is an unsolved problem). SyncML servers (and probably other
servers, too) don't have that option and instead fall back to
heuristics which fail inevitably in some cases.

 A nice plan would be a server side component (on gnome.org of
 course) that has an activesync and syncml endpoint which syncs into a
 couchdb database for replication with the desktop. For activesync,
 z-push [1] works well, and can be made pretty scalable with a few
 changes. for SyncML, there's good open source components like funambol
 [2] available.

I personally would rather recommend the Synthesis engine instead of
Funambol.  Much more light-weight and miles ahead Funambol regarding
SyncML support and data merging (for example, supports suspend/resume
and much smarter conflict resolution). See the article above.

daniel g. siegel 

Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
Hey,

One of the things I'm looking at doing for 3.2 is the Web Accounts panel:

 http://live.gnome.org/ThreePointOne/Features/Sharing
 http://live.gnome.org/Design/SystemSettings/Profile

I sat down last week with one of the designers, Jon McCann, and we
came up with what we both think is a really nice user experience. It
is described in [1] for now - will move to the wiki soon.

Implementation-wise, I can see this as a very minimal daemon / library
that sits below libsocialweb, Telepathy, e-d-s and other APIs (e.g.
these libraries/frameworks would use this new framework) that is
dealing data online accounts. This daemon / library would

 a. have a notion of source types
   - email source
   - calendar source
   - chat source
   - photos source
   - contacts source
   - ...

 b. have a notion of providers that can be added removed by the
   end user
   - Google (for accounts at google.com and Apps For Your Domain)
   - Yahoo/Flickr
   - Exchange
   - Facebook
   - ...

 c. provide a concrete list of providers and what sources the
instance of the provider supports. For example, for my setup, I
would have the following

   - zeut...@gmail.com (an instance of the Google data provider)
 - Mail (email source)
 - Contacts (contacts source)
 - Calendar (calendar source)
 - Chat (chat source)
   - da...@fubar.dk  (an instance of the Google data provider)
 - (works because fubar.dk is using Google Apps For Your Domain)
 - Mail (email source)
   - dzeut...@yahoo.com (an instance of the Yahoo! data provider)
 - Flickr! (photos source)
 - (I specifically unchecked mail here because I don't want
the spam that is in that email account that I never use)
   - davidz25 (an instance of the Facebook data provider)
 - Messages (email source)
 - Events (calendar source)

The information in c. would map exactly to what the Web Accounts UI
would display:

 +--+
 | All Settings |
 +--+
 | +---+  Google Account|
 | | [Go] zeut...@gmail.com||
 | | [Go] da...@fubar.dk   (!) |  Username: david   |
 | | [Y!] dzeut...@yahoo.com   |  Domain:   fubar.dk_   |
 | | [Fb] davidz25 ||
 | |   |  Use this account for: |
 | |   ||
 | |   |  [ON  ] Mail   |
 | |   |  [ OFF] Chat   |
 | |   |  [ OFF] Contacts   |
 | |   |  [ OFF] Calendar   |
 | |   ||
 | +---+ (!) Authorization expired. |
 | | [+] [-]   | Please login again.|
 | +---+[Login] |
 +--+

This screenshot shows an example where the da...@fubar.dk account
needs attention (suppose that the password has been changed from
another system). In this case, I think the desktop would show the user
a notification saying The account da...@fubar.dk needs your
attention and upon clicking on it, the user is taking to the
control-center pane above.

This daemon/library thing, let's call it GOA (Gnome Online Accounts),
would _not_ be a mechanism to access any of these services. But it
would provide e.g. libsocialweb, telepathy, e-d-s and so on with
either the username/password combo or the OAuth token, whatever is
appropriate.

I would imagine Telepathy/Empathy to use GOA to get the Chat accounts
that is configured in GOA (in the above example, it would be Google
Talk from zeut...@gmail.com and Facebook Chat for davidz25). I would
use an Empathy specific preferences window (not appearing in
gnome-control-center I think) to add e.g. my ICQ account.

There are of course security / implementation considerations
(password/auth token hygiene, should we treat the desktop like it's
not a single security context when it really is?) here - all of that
comes next.

Technically, I'm proposing that we add a GOA module with

 - a daemon, goad, that implements the org.gnome.OnlineAccounts interface
   on a well-known object /org/gnome/OnlineAccounts and owns the well-known
   name org.gnome.OnlineAccounts (all this is on the session bus).

   Additionally, this daemon would notify the user if attention is
   needed (e.g. reauth) using org.freedesktop.Notificatins / libnotify.

 - a library, libgoa-1.0, that is used to speak to goad (but an app can
   also just use the D-Bus interface if it wants to). This library is what
   

Re: Online Accounts panel for 3.2

2011-04-19 Thread Bastien Nocera
On Tue, 2011-04-19 at 09:08 -0400, David Zeuthen wrote:
snip
 This daemon/library thing, let's call it GOA (Gnome Online Accounts),
 would _not_ be a mechanism to access any of these services. But it
 would provide e.g. libsocialweb, telepathy, e-d-s and so on with
 either the username/password combo or the OAuth token, whatever is
 appropriate.

The hard part here is handling application-authorisation. For example,
for Flickr, it's not enough to have a login/password combo, you also
need to allow the framework/application access to the account.

You'll also see that both libsocialweb and bisho (the config panel for
libsocialweb) have quite a lot of that code, including oauth helpers. It
would certainly make sense to split it out of libsocialweb in this case.

Cheers

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread Milan Bouchet-Valat
Le mardi 19 avril 2011 à 09:08 -0400, David Zeuthen a écrit :
  - a daemon, goad, that implements the org.gnome.OnlineAccounts
 interface
on a well-known object /org/gnome/OnlineAccounts and owns the
 well-known
name org.gnome.OnlineAccounts (all this is on the session bus).
 
Additionally, this daemon would notify the user if attention is
needed (e.g. reauth) using org.freedesktop.Notificatins /
 libnotify. 
Do you really need a daemon? Sounds like everything could be handled by
applications that use these accounts via the library. Is there a point
in connecting to these accounts if no app is using them?

If not, then notifications can be emitted by the app when it tries to
connect and finds the password has changed (which would be done
automatically by libgoa). And the library would get information about
accounts from GSettings and gnome-keyring, without the need for any
daemon.


Cheers


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Online Accounts panel for 3.2

2011-04-19 Thread Alberto Mardegan

Hi David,

On 04/19/2011 04:08 PM, David Zeuthen wrote:

Hey,

One of the things I'm looking at doing for 3.2 is the Web Accounts panel:

  http://live.gnome.org/ThreePointOne/Features/Sharing


See the Current status section in that page. We already have all of this (and 
more) in MeeGo, and I'm willing to support any efforts in bringing this to Gnome.



I sat down last week with one of the designers, Jon McCann, and we
came up with what we both think is a really nice user experience. It
is described in [1] for now - will move to the wiki soon.

Implementation-wise, I can see this as a very minimal daemon / library
that sits below libsocialweb, Telepathy, e-d-s and other APIs (e.g.
these libraries/frameworks would use this new framework) that is
dealing data online accounts.


In MeeGo we chose two split the thing into two: account framework, which simply 
consists of descriptions of providers and sources (which we call services), 
and a library wrapping a SQLite DB for accounts settings, where applications can 
read/store accounts settings (not the passwords).


The provider and services are described by XML files, which can be installed in 
predefined directories. This allows for expandability: to support a new service, 
you just need to install a package which adds a service XML file.
The service XML files not only describe the service (icon, name and provider) 
but also contain a default value for account settings; the account library uses 
these settings as fallback when a settings has not been explicitly written in 
the DB -- this is all transparent to the application.
The point of this is that you don't want to ask the user for the address of the 
IMAP server of GMail: we can write it in the service XML file.


The accounts library support change notification via D-Bus, so that when a 
setting in the GMail account has been modified, all applications interested in 
the e-mail service type are notified and can reconnect the account.



This daemon / library would

  a. have a notion of source types
- email source

[...]


  b. have a notion of providers that can be added removed by the
end user
- Google (for accounts at google.com and Apps For Your Domain)

[...]


  c. provide a concrete list of providers and what sources the
 instance of the provider supports. For example, for my setup, I
 would have the following

- zeut...@gmail.com (an instance of the Google data provider)
  - Mail (email source)
  - Contacts (contacts source)
  - Calendar (calendar source)
  - Chat (chat source)

[...]

It's similar to what we have, except that we don't hardcode the list of 
available sources in the provider file. It's the source, who tells what provider 
(and source-type) it belongs to.



This screenshot shows an example where the da...@fubar.dk account
needs attention (suppose that the password has been changed from
another system). In this case, I think the desktop would show the user
a notification saying The account da...@fubar.dk needs your
attention and upon clicking on it, the user is taking to the
control-center pane above.


Mmm... that's one option, though I'd rather like that by clicking on the 
notification you directly go to the login screen where you can enter your password.


And one thing that I heartily recommend you based on experience: do *never* let 
the user change the username once the account has been created. This saves you a 
lot of trouble.



This daemon/library thing, let's call it GOA (Gnome Online Accounts),
would _not_ be a mechanism to access any of these services. But it
would provide e.g. libsocialweb, telepathy, e-d-s and so on with
either the username/password combo or the OAuth token, whatever is
appropriate.


And for this we have the SSO framework in MeeGo. It's one daemon, that stores 
the user credentials on an encrypted partition which is mounted only when the 
user is identified (in our device we'll use the SIM card for this goal, in the 
Gnome desktop it could be the lock-screen password).


Passwords are generally not given back to applications; instead, signond (the 
SSO daemon) loads a plugin specific to the authentication method being used 
(SASL, OAuth, Google, etc.): the plugin gets the passwords, and uses it to 
compute a response to give back to the client. This response can be a response 
that the client must give back to the remote server in a SASL challenge, or a 
token that can be used to login.
In cases where the authentication plugin performs the authentication with the 
remote server, in case the password is wrong it will itself inform signond, 
which in turn will invoke a UI to prompt the user for a new password. If instead 
the plugin is simply computing responses without having knowledge if the 
password is correct, the application will get an error and it can retry the 
authentication with a flag which tells signond to ask the user for a new 
password before computing the response.



I would imagine 

Re: ThreePointOne: Contacts

2011-04-19 Thread Rodrigo Moya
On Tue, 2011-04-19 at 14:14 +0200, daniel g. siegel wrote:
  what do you mean by 'backends'? Backends of what? As I said,
  evolution-couchdb already provides an e-d-s backend for accessing
  contacts in CouchDB databases, so IMO, what we need is:
 
 so my question is basically: why do we need e-d-s if we have our
 contacts in couchdb?
 
ah ok, I see what you mean. We need e-d-s for Evolution to access the
contacts, and if libfolks already has an e-d-s backend, it will get
contacts for every addressbook configured in Evolution, right?

If not, yes, just using couchdb-glib directly in whatever 'backend' you
want works.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Rob Taylor
On 19/04/11 13:45, Patrick Ohly wrote:
 Hello!
 
 Rob Taylor rob.taylor at codethink.co.uk writes:
 On 19/04/11 11:27, Alexander Larsson wrote:
 On Tue, 2011-04-19 at 11:43 +0200, daniel g. siegel wrote:
 
 Ross pointed me to this discussion. Let me jump into the discussion by
 replying to a more or less random post and quoting some other relevant
 statements. I'm not subscribed, so please CC me.
 
 For some background on why sync is hard, here's an article that I
 wrote a while ago for LWN.net:
 http://syncevolution.org/development/pim-data-synchronization-why-it-so-hard
 
 Note that this applies to both contacts and calendar, and probably
 more. If you design something new for GNOME, please don't focus
 exclusively on contacts.
 
 another very important point is synchronisation. together with salomon
 sickert we thought about how to solve this problem. basically we came up
 with the idea of a self-replicating backend, like couchdb.
 
 That only gives you a closed solution between peers which share that
 self-replicating data. If you model it after couchdb (or just stick
 with couchdb), then a unique ID is assigned to each new contact once,
 when it gets created, and thus there's never any confusion whether a
 peer already has some data.
 
 if we then
 could add support to the contact apps of other computer/devices like a
 n900 or android, we would get synchronisation and conflict management
 for free.
 
 Nothing will be for free once you want to add interoperability :-/ All
 of the challenges mentioned in the article above will still apply (no
 unique ID in those peers, legacy formats, different data models).
 
 then there is also the idea of having a webservice for the gnome
 contacts app, where you can access your contacts over the internet.

 we are very interested in your opinions about this!

 I don't know really. Synchronization is a tricky subject, with complex
 protocols and risk for merge problems. Its almost always a source of
 weird problems. I don't think we want to have synchronization as some
 core part of the design. 

 On the other hand, its important that there is some level of support for
 synchronizing contacts with e.g. phones. So, I guess we need to think
 about where it fits in.
 
 If I had one wish, then it is this one: ensure that each item gets a
 unique, vendor created ID that never changes throughout the lifetime
 of the item.
 
 Currently EDS supports that for calendar (part of iCalendar 2.0
 semantic), but not in the file contact backend (not required by vCard
 3.0). Any UID that might have been set in a new vCard is overwritten
 by a local ID.
 
 Hmm, its really not that tricky - the eventually consistent method used
 by couch works well in most situations - all replicated endpoints
 resolve to the same state without intervention, and if you want to pick
 up any pieces, you can.
 
 For couchdb-couchdb sync, yes, but that's only a subset of the
 problem - unless you can convince the rest of the world to use the
 same system. Start by convincing the Tracker/Ontology proponents, who
 also want everyone else to use their system for data replication ;-)
 
 I'm pragmatic and don't expect that any system will ever take over
 enough to use it exclusively.
 
 Regarding couchdb: how complete is its data model? When it first
 showed up, SyncEvolution had some problems with it because REV wasn't
 supported, if memory serves me right.

Since 1.0 it's been pretty sweet, with all the functionality working
well - including live updates.

 On supporting existing sync protocols, for 'traditional' sync, its
 important to have one central point of resolution, and that's ideally a
 server.
 
 Then the server becomes easily the weakest link in the chain. In the
 past, dumb phones had a very limited data model that could be
 completely supported by a (SyncML) server. Nowadays the address book
 in a client is very rich and may contain data that is not supported by
 many servers - that's definitely the case with, for example, MeeGo to
 Google sync.
 
 If the client then trusts the server exclusively to resolve conflicts,
 data is lost on the server.

Hmm, the actual problem here is not the server - its the representation
format. I would argue that the correct approach to this is to always
represent all the data you receive from clients - and transform the
stuff you do understand in to a common representation.

 Another conceptual problem is that the server cannot communicate well
 with the user. A client might pop up rich dialogs and ask the user for
 help in cases that it cannot decide automatically (but designing such
 a dialog is an unsolved problem). SyncML servers (and probably other
 servers, too) don't have that option and instead fall back to
 heuristics which fail inevitably in some cases.

Think of couch as a bit like git - you never resolve on the server.
you effectively get a forking history, with a consistent algorithm to
choose a winning version of history. That mean on the client 

Re: Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
Hi,

On Tue, Apr 19, 2011 at 9:28 AM, Bastien Nocera had...@hadess.net wrote:
 On Tue, 2011-04-19 at 09:08 -0400, David Zeuthen wrote:
 snip
 This daemon/library thing, let's call it GOA (Gnome Online Accounts),
 would _not_ be a mechanism to access any of these services. But it
 would provide e.g. libsocialweb, telepathy, e-d-s and so on with
 either the username/password combo or the OAuth token, whatever is
 appropriate.

 The hard part here is handling application-authorisation. For example,
 for Flickr, it's not enough to have a login/password combo, you also
 need to allow the framework/application access to the account.

 You'll also see that both libsocialweb and bisho (the config panel for
 libsocialweb) have quite a lot of that code, including oauth helpers. It
 would certainly make sense to split it out of libsocialweb in this case.

Yup, I most of that out of my initial description to keep it short (I
tried to allude that both authorization (authorize app to use flickr)
and authentication (proving to flickr who you are) might need a web
browser in the footnote) - would definitely not want to rewrite all
that code if it's already written.

 David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
On Tue, Apr 19, 2011 at 10:23 AM, David Zeuthen zeut...@gmail.com wrote:
 Yup, I most of that out of my initial description to keep it short

Sorry, I obviously haven't had enough coffee yet - I meant to say that
I left authorization and authentication details out of my initial
description to keep it short.

 (I tried to allude that both authorization (authorize app to use flickr)
 and authentication (proving to flickr who you are) might need a web
 browser in the footnote) - would definitely not want to rewrite all
 that code if it's already written.

     David

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
On Tue, Apr 19, 2011 at 9:57 AM, Milan Bouchet-Valat nalimi...@club.fr wrote:
 Le mardi 19 avril 2011 à 09:08 -0400, David Zeuthen a écrit :
  - a daemon, goad, that implements the org.gnome.OnlineAccounts
 interface
    on a well-known object /org/gnome/OnlineAccounts and owns the
 well-known
    name org.gnome.OnlineAccounts (all this is on the session bus).

    Additionally, this daemon would notify the user if attention is
    needed (e.g. reauth) using org.freedesktop.Notificatins /
 libnotify.
 Do you really need a daemon? Sounds like everything could be handled by
 applications that use these accounts via the library. Is there a point
 in connecting to these accounts if no app is using them?

 If not, then notifications can be emitted by the app when it tries to
 connect and finds the password has changed (which would be done
 automatically by libgoa). And the library would get information about
 accounts from GSettings and gnome-keyring, without the need for any
 daemon.

It's not unimaginable that some online service might want to use some
3rd party library to do its thing. It's also just a lot simpler to
serialize writes etc. if you know that only one process is going to
touch the data at any one time.

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread Johannes Schmid
Hi!

 And for this we have the SSO framework in MeeGo. It's one daemon, that stores 
 the user credentials on an encrypted partition which is mounted only when the 
 user is identified (in our device we'll use the SIM card for this goal, in 
 the 
 Gnome desktop it could be the lock-screen password).

We have (most of) that already, it's gnome-keyring/seahorse. What we
need is a way to give back no the password but some kind of connection
object (if we want that).

Regards,
Johannes


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: ThreePointOne: Contacts

2011-04-19 Thread Rodrigo Moya
On Tue, 2011-04-19 at 12:45 +, Patrick Ohly wrote:
 
 Regarding couchdb: how complete is its data model? When it first
 showed up, SyncEvolution had some problems with it because REV wasn't
 supported, if memory serves me right.
 
IIRC, that was a bug you filed for evolution-couchdb, which didn't
include the REV field, which I fixed some months ago.

As for couchdb, each document has a unique, cross-database revision
number

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
Hey Alberto,

Thanks for your response!

On Tue, Apr 19, 2011 at 10:12 AM, Alberto Mardegan
ma...@users.sourceforge.net wrote:
 Hi David,

 On 04/19/2011 04:08 PM, David Zeuthen wrote:

 Hey,

 One of the things I'm looking at doing for 3.2 is the Web Accounts panel:

  http://live.gnome.org/ThreePointOne/Features/Sharing

 See the Current status section in that page. We already have all of this
 (and more) in MeeGo, and I'm willing to support any efforts in bringing this
 to Gnome.

I did briefly look at http://gitorious.org/accounts-sso/accounts-glib
but quickly got lost as that appears to be just the client-side GLib
glue. And some of the other stuff looked pretty specific to Meego.

 There are of course security / implementation considerations
 (password/auth token hygiene, should we treat the desktop like it's
 not a single security context when it really is?) here - all of that
 comes next.

 We addressed all security concerns already; feel free to ask in case you
 have some doubts.

Oh, it's not so much that I had any unresolved concerns - I was just
pointing out that I was aware that I knew that I have to be careful
there.

 I'm sure that especially for the SSO part there'll be need for work in order
 to adapt it to the desktop; but it will still be far quicker than rewriting
 everything. The accounts part should be already well working on the desktop.

Can you give a short overview of exactly what components that you've
written that GNOME would use (including their dependencies and whether
it's a per-session daemon, per-system daemon or shared library), what
GNOME would need to write itself and how it would fit together with
the UX that I've described? I mean, obviously accounts-glib would be
an external dep and obviously we'd write our own GNOME Control Center
panel ... but what else? I'm asking mostly to figure out what
additional dependencies this would add to GNOME if we were to use it!

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread Frederic Peters
David Zeuthen wrote:

 I would imagine Telepathy/Empathy to use GOA to get the Chat accounts
 that is configured in GOA (in the above example, it would be Google
 Talk from zeut...@gmail.com and Facebook Chat for davidz25). I would
 use an Empathy specific preferences window (not appearing in
 gnome-control-center I think) to add e.g. my ICQ account.

Could you elaborate on this, e.g. why would ICQ and other types of
online accounts be deported to a specific preferences window?

This is somehow related to the Contacts thread, where it is said we
could replace the empathy contact list with the shell; in this scheme
there's no place any longer for that specific preferences window, and
it makes sense (to me) to have it in the online accounts panel, along
others.



Fred
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Control Center items (Was Re: Online Accounts panel for 3.2)

2011-04-19 Thread David Zeuthen
Hi,

On Tue, Apr 19, 2011 at 10:52 AM, Frederic Peters fpet...@gnome.org wrote:
 David Zeuthen wrote:

 I would imagine Telepathy/Empathy to use GOA to get the Chat accounts
 that is configured in GOA (in the above example, it would be Google
 Talk from zeut...@gmail.com and Facebook Chat for davidz25). I would
 use an Empathy specific preferences window (not appearing in
 gnome-control-center I think) to add e.g. my ICQ account.

 Could you elaborate on this, e.g. why would ICQ and other types of
 online accounts be deported to a specific preferences window?

I was mostly just thinking out loud - and that thought came out
because it would seem weird to both Online Accounts and a Messaging
and VoIP Accounts items in the control center (that, and we have
limited space there).

I guess my view is that mainstream/branded accounts (such as Google,
Facebook etc.) would be handled by the Online Accounts panel while
something as baroque as ICQ (it was once big but isn't really anymore)
would be handled by app-specific preference windows. Or maybe Online
Accounts is used to configure not only something like GOA (e.g.
branded accounts) but also Telepathy. I don't know. I'm not the best
person to make that call - ask the GNOME designers?

 This is somehow related to the Contacts thread, where it is said we
 could replace the empathy contact list with the shell; in this scheme
 there's no place any longer for that specific preferences window, and
 it makes sense (to me) to have it in the online accounts panel, along
 others.

Sure. FWIW, I think we probably need some high-level design input that
takes all these currently moving pieces and proposals into account.
Again, I defer to the designers here.

(Sorry if this sounds like a cop out. It's not. I agree this is an
important thing.)

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Control Center items (Was Re: Online Accounts panel for 3.2)

2011-04-19 Thread Frederic Peters
David Zeuthen wrote:

  I would imagine Telepathy/Empathy to use GOA to get the Chat accounts
  that is configured in GOA (in the above example, it would be Google
  Talk from zeut...@gmail.com and Facebook Chat for davidz25). I would
  use an Empathy specific preferences window (not appearing in
  gnome-control-center I think) to add e.g. my ICQ account.
 
  Could you elaborate on this, e.g. why would ICQ and other types of
  online accounts be deported to a specific preferences window?
 
 I was mostly just thinking out loud - and that thought came out
 because it would seem weird to both Online Accounts and a Messaging
 and VoIP Accounts items in the control center (that, and we have
 limited space there).

 I guess my view is that mainstream/branded accounts (such as Google,
 Facebook etc.) would be handled by the Online Accounts panel while
 something as baroque as ICQ (it was once big but isn't really anymore)
 would be handled by app-specific preference windows. Or maybe Online
 Accounts is used to configure not only something like GOA (e.g.
 branded accounts) but also Telepathy. I don't know. I'm not the best
 person to make that call - ask the GNOME designers?

I am also of the opinion we want a single panel; but I think the
design of the online accounts panel should allow the accounts that
are currently in the messaging and voip accounts panel; nothing
really new here, I had that old mockup in mind:

  
http://gitorious.org/gnome-design/gnome-design/blobs/master/mockups/control%20center/web-services/web-services-2.png


  This is somehow related to the Contacts thread, where it is said we
  could replace the empathy contact list with the shell; in this scheme
  there's no place any longer for that specific preferences window, and
  it makes sense (to me) to have it in the online accounts panel, along
  others.
 
 Sure. FWIW, I think we probably need some high-level design input that
 takes all these currently moving pieces and proposals into account.
 Again, I defer to the designers here.
 
 (Sorry if this sounds like a cop out. It's not. I agree this is an
 important thing.)

No problem, GNOME is driven by design.


Fred
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Control Center items (Was Re: Online Accounts panel for 3.2)

2011-04-19 Thread David Zeuthen
Hi,

On Tue, Apr 19, 2011 at 11:24 AM, Frederic Peters fpet...@gnome.org wrote:
 I am also of the opinion we want a single panel; but I think the
 design of the online accounts panel should allow the accounts that
 are currently in the messaging and voip accounts panel

I agree.

 ; nothing
 really new here, I had that old mockup in mind:

  http://gitorious.org/gnome-design/gnome-design/blobs/master/mockups/control%20center/web-services/web-services-2.png

Yeah, I looked at this too.. and it's somewhat what I had in mind -
the only difference is that I think we need to support multiple
instances (e.g. multiple Google accounts - I personally have both a
gmail.com account and also a google-hosted fubar.dk account). While
this might be a 5% thing (I think it's slightly higher actually),
enough of us hackers use such a feature so not supporting it means a
lot of people won't be eating the dogfood.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Travis Reitter
On Tue, 2011-04-19 at 10:27 +0200, Alexander Larsson wrote:
 On Mon, 2011-04-18 at 09:29 -0700, Travis Reitter wrote:
  http://lists.freedesktop.org/archives/telepathy/2011-March/005369.html
  [4]
 
 This seems to talk about querying contacts from slow social web
 services. Additionally if this is to be our story in evolution too we
 need to be able to efficiently handle ldap contacts, which are really
 important for enterprise deployments of email. This also needs a live
 search approach, because we can't rely on a local copy of all ldap data.

I'm considering two different cases: shallow searching (which is
basically returning a client a filtered set of contacts) and deep
searching (actually querying remote stores for more information). I
haven't decided whether this difference will be exposed to clients or
not yet. Either way, we'll be streaming in the contacts, so the client
shouldn't need to care for most use cases.

-Travis

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread Matthew Barnes
On Tue, 2011-04-19 at 09:08 -0400, David Zeuthen wrote: 
 Implementation-wise, I can see this as a very minimal daemon / library
 that sits below libsocialweb, Telepathy, e-d-s and other APIs (e.g.
 these libraries/frameworks would use this new framework) that is
 dealing data online accounts. This daemon / library would

This is awesome.  It sounds like it will dovetail beautifully with the
work I'm doing on the E-D-S side right now to overhaul the way we manage
account info.  It's all going to be unified under a single API which is
fittingly named ESource.

My idea was that for online services like Google or accounts on a
groupware server like Zimbra or Exchange, something provides a UI for
the user to fill out the basic details.  The tool then generates a set
of specially formatted GKeyFiles and deposits them into a designated
user directory which E-D-S is monitoring.  E-D-S then sees the new key
files, parses them into ESource objects, and adds them to an internal
registry.

If a client like Evolution is running, it would also notice the new key
files and immediately present them in its source list, usually shown in
the sidebar.

What you're describing sounds like the missing piece in my project.

Matthew Barnes

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Travis Reitter
On Tue, 2011-04-19 at 13:48 +0200, Rodrigo Moya wrote:
 On Mon, 2011-04-18 at 09:29 -0700, Travis Reitter wrote:
  As Frederic pointed out, we shouldn't be brainstorming on the 3.2
  feature pages, so I thought I'd fill in some details/thoughts on the
  Contacts [1] idea here.
  
  The page suggests libfolks and/or libsocialweb for the implementation.
  The good news is that Folks 0.5.0 (released last week) added support for
  libsocialweb, so using Folks gets you both. In the process, Alban Crequy
  also added Contacts support for a few libsocialweb services in
  libsocialweb itself (Flickr, Twitter, Last.FM) and upstreamed Marco
  Barisione's Facebook support. The remaining lsw services (such as Vimeo
  and YouTube) don't have Contacts support yet, but it could certainly be
  added.
  
 this makes a lot of sense, but we really need a way to send messages to
 facebook/twitter contacts, or do other operations on the other services
 (see photos from flickr, listen to music in last.fm, etc).
 
 So, are there any plans for a twitter/facebook client app?

None that I know of. We already support Facebook's XMPP chat through
Telepathy but not its email-like messaging system. Can third party
clients use that anyhow? I thought that was completely walled off.

I'm not terribly familiar with the details of Twitter - it just supports
140-char global posts and private messages between users, right?

Handling sending these messages is probably best implemented as protocol
handlers for Evolution, since they don't quite fit in with Telepathy's
model and I think libsocialweb avoids communication to keep its scope
narrower.

There's also the question of whether we should be encouraging people to
use Facebook's or Twitter's private message systems when email is quite
a bit more open/easily-accessible/user-controlled.

-Travis

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Travis Reitter
On Tue, 2011-04-19 at 10:01 +0200, Alexander Larsson wrote:
 On Mon, 2011-04-18 at 11:52 -0700, Travis Reitter wrote:
 
  On Mon, 2011-04-18 at 20:29 +0200, Johannes Schmid wrote:
  
   While using GNOME 3.0 on my desktop now for a week I wanted to share my
   thoughs on the UI. The problem in the current situation is that the
   shell provides a nice chat integration but to start a new chat you have
   to use the Contact List window of empathy which feels totally
   out-of-place. It is also one of the windows you really don't want to see
   in the overview.
  
  Agreed. I'd like my general chat process to just be:
  
  Meta, start typing person's name+Enter
 
 By meta you mean the windows key thing?

Right.

  which is the same way I launch all my applications in Gnome Shell (and
  is one of the most compelling features of it, I think). Like launching
  programs, you would be able to pause to see the full results list and
  perform more-specific actions (such as selecting the exact account and
  contact you want to initiate the chat from and to, as Empathy lets you
  do now).
 
 Yeah, this sounds like about the right thing. I'm thinking we could have
 a new tab in addition to the windows and applications one listing
 people, probably showing the online ones first, or at least making that
 information prominent. Clicking on a person should let you easily send
 mail, start a im conversation or send a file. Additionally these should
 show up on the search results, and be possible to put in the dash.

Yeah, a people tab makes sense too.

Note that FolksIndividuals (ie, people) can be marked as favorites. If
it's feasible, it'd be nice to determine membership in the dash based on
whether contacts are favorites, though we may want to confirm that users
generally only set a few people as favorites, since the dash quickly
gets crowded even just with programs. And I'm guessing we'd want a gap
to separate programs and people.

   What Daniel and Salamon mocked-up is certainly a nice start but I think
   a dedicated window for it doesn't fit with the overall shell design
   well.
  
  I think it makes sense to have both. The shell search provider would
  focus on communicating with existing contacts (similar to launching
  programs), whereas the stand-alone program would be more focused on
  adding and managing contacts (which are much-rarer actions). And it
  still makes sense to have the communication buttons in the stand-alone
  program to make the use case of add a person, start chat/call with
  them smoother than adding them there, then going to the Activities tab
  to start the communication.
 
 Yeah, I think this is somewhat analogous to the file management
 situation. If you just want to find or open a file you can use the
 shell, but if you want to do more work you'd start the file manager.
 
 So, the gnome-shell integrated part is about day-to-day using of the
 already set up stuff, whereas the contacts app is where you'd fill in
 information, or do more complex stuff like link contacts or create
 groups. 
 
 There are other integration points we must think about too. Whatever we
 come up with should imho replace the contacts pane in evolution, and
 must allow interaction with evolution (dnd onto composer windows, etc).
 Also, we should have something that corresponds to clicking on the to
 button in the evo compositor to select a single email (or im if used for
 elsewhere) address to add.

There are vague/undefined plans to create folks-gtk at some point to
supply an Open Person... dialog, a type-ahead completer, etc, since
that would be generally-useful in a people-filled desktop.

-Travis

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: ThreePointOne: Contacts

2011-04-19 Thread Travis Reitter
On Tue, 2011-04-19 at 10:54 +0100, Will Thompson wrote:
 On 19/04/11 10:39, Alexander Larsson wrote:
  On Tue, 2011-04-19 at 09:53 +0100, Philip Withnall wrote:
  Empathy uses the “text/individual-id” and “text/persona-id” drag targets
  for dragging and dropping folks individuals and personas.
  
  Shouldn't you be using x-something for nonstandard types like these?
  Anyway, we'd need to add corresponding support to evolution too. Also, i
  think the current evolution contacts dialog dnds a vcard, which seems
  like a good thing to do too.
 
 Pidgin supports dragging and dropping application/x-im-contact and
 text/x-vcard.
 
 Obviously it's unlikely that anyone will ever dnd between Pidgin and
 Empathy, but it would be nice if Empathy supported these MIME types for
 interoperability with hypothetical other apps that speak these formats.
 (Perhaps Evo already understands both? I can't think where else
 x-im-contact would be used.)

If we're going to support dnd by vCard, we'll need to support vCard
generation in Folks. We've intentionally structured
FolksPersona/FolksIndividual to make that fairly easy, but it hasn't
been implemented yet.

-Travis

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread Danielle Madeley
On Tue, 2011-04-19 at 09:08 -0400, David Zeuthen wrote:

 This daemon/library thing, let's call it GOA (Gnome Online Accounts),
 would _not_ be a mechanism to access any of these services. But it
 would provide e.g. libsocialweb, telepathy, e-d-s and so on with
 either the username/password combo or the OAuth token, whatever is
 appropriate.
 
 I would imagine Telepathy/Empathy to use GOA to get the Chat accounts
 that is configured in GOA (in the above example, it would be Google
 Talk from zeut...@gmail.com and Facebook Chat for davidz25). I would
 use an Empathy specific preferences window (not appearing in
 gnome-control-center I think) to add e.g. my ICQ account.

This is very doable.

On Meego Netbook we wrote a Telepathy Mission Control plugin that got
the accounts from libsocialweb. Within Empathy's accounts capplet it
then showed the Facebook account name, an enable/disable toggle (which
was also shown in Web Accounts) and a button that launched the Web
Accounts editor.

There is also a different SSO plugin for Meego Handset. I mention the
former one because it was specifically designed for the desktop and to
integrate with Empathy.

~

The Web Accounts dialog on Meego is called 'bisho'. It's pluggable,
allowing the provision for extra authentication mechanisms (e.g. for
Facebook we required both the OAuth2 token AND a legacy Facebook Connect
token *).

* Tokens are stored in the keyring.

-- 
Danielle Madeley
Software Developer, Collabora Ltd.  Melbourne, Australia

www.collabora.co.uk

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list