Plonesocial at paris sprint

0 views
Skip to first unread message

djay

unread,
Apr 22, 2008, 9:58:47 PM4/22/08
to Plone Social Networking
Just a note to let everyone know. Kamon is going to be at the paris
sprint this weekend and I believe he is going to be working on the
first usecases for Plone social. That being invite-to-share (is this
right Kamon?)

I'm geographically challenged but I will attempt to participate
remotely from Australia. Kind of against the idea of locking yourself
in one room together to code, but I will attempt it nether the less.

If anyone else is planning on going to the sprint and would like to
contribute please let us know.

The vision for this is roughly
- generic utility to enable inviting of outsiders into plone including
ways to register components that will import contacts from other
services like hotmail etc
- utility to extend the plone sharing tab to allow inviting outsiders
to share/collaborate on content.

and if time allows
- implementation of a generic socialgraph in plone ("my user lists")
and integration of the invite utility to allow users to invite
outsiders into their lists.

I've tried to document the usecases for this work as much as possible
on this groups "Pages" section. If you have ideas that differ from
mine, please just edit those pages or turn up to the sprint.

And of course, a sprint being a sprint, the code that gets turned out
is a product of those who contribute so it might have nothing to do
with what I've written above :)



Dylan Jay
Founder PretaWeb.com, Founder IntroVino.com
Skype:dylan_jay M:+61421477460

Kamon Ayeva

unread,
Apr 23, 2008, 5:25:30 AM4/23/08
to plone-socia...@googlegroups.com
On Wed, Apr 23, 2008 at 3:58 AM, djay <dy...@pretaweb.com> wrote:

Just a note to let everyone know. Kamon is going to be at the paris
sprint this weekend and I believe he is going to be working on the
first usecases for Plone social. That being invite-to-share (is this
right Kamon?)

Yes, it's right.
I will be remote on friday (at least part of the day) and on-site with the others the rest of the week-end.
 


I'm geographically challenged but I will attempt to participate
remotely from Australia. Kind of against the idea of locking yourself
in one room together to code, but I will attempt it nether the less.

If anyone else is planning on going to the sprint and would like to
contribute please let us know.

The vision for this is roughly
- generic utility to enable inviting of outsiders into plone including
ways to register components that will import contacts from other
services like hotmail etc
- utility to extend the plone sharing tab to allow inviting outsiders
to share/collaborate on content.

Ok. I've seen that there are things we can learn from the borg components packages in the collective too.
 


and if time allows
- implementation of a generic socialgraph in plone ("my user lists")
and integration of the invite utility to allow users to invite
outsiders into their lists.

I've tried to document the usecases for this work as much as possible
on this groups "Pages" section. If you have ideas that differ from
mine, please just edit those pages or turn up to the sprint.

And of course, a sprint being a sprint, the code that gets turned out
is a product of those who contribute so it might have nothing to do
with what I've written above :)

Thanks for starting this.


Cheers,
Kamon

Kai Lautaportti

unread,
Apr 24, 2008, 4:51:27 AM4/24/08
to plone-socia...@googlegroups.com
Hi guys!

I've been only lurking on the list so far, but I'll be at the Paris
sprint for Friday and Saturday and would like to help out with this
topic. See you there!

cheers,
Kai Lautaportti

Kamon Ayeva

unread,
Apr 24, 2008, 5:40:45 AM4/24/08
to plone-socia...@googlegroups.com
Hi,

I will not be at the sprint place on friday, and will have difficulties to be online, so Kai and myself could work together on saturday with Dylan remotely. I will continue the work we will have achieved on sunday.

To prepare the work to be done, we could use friday though, and even start today with a detailed TODO list on the plone-social-networking wiki.

-- Kamon

Kai Lautaportti

unread,
Apr 24, 2008, 6:19:41 AM4/24/08
to plone-socia...@googlegroups.com
Kamon Ayeva wrote:
> Hi,
>
> I will not be at the sprint place on friday, and will have difficulties
> to be online, so Kai and myself could work together on saturday with
> Dylan remotely. I will continue the work we will have achieved on sunday.

This sounds good to me.

> To prepare the work to be done, we could use friday though, and even
> start today with a detailed TODO list on the plone-social-networking wiki.

I won't be online much today, but I can spend some time on friday on
preparations and I'll need to re-read all the discussion on the wiki/ml
lists anyway. I was hoping to be able to participate on some other
sprint topic on Friday, but we'll see how that goes.

See you on Saturday.


cheers,
Kai


>
> -- Kamon
>
> On Thu, Apr 24, 2008 at 10:51 AM, Kai Lautaportti
> <kai.lau...@gmail.com <mailto:kai.lau...@gmail.com>> wrote:
>
>
> Hi guys!
>
> I've been only lurking on the list so far, but I'll be at the Paris
> sprint for Friday and Saturday and would like to help out with this
> topic. See you there!
>
> cheers,
> Kai Lautaportti
>
>
> Kamon Ayeva wrote:
> >
> >
> > On Wed, Apr 23, 2008 at 3:58 AM, djay <dy...@pretaweb.com
> <mailto:dy...@pretaweb.com>

Christian Scholz / Tao Takashi (SL)

unread,
Apr 24, 2008, 8:05:36 AM4/24/08
to plone-socia...@googlegroups.com
Hi!

Good to see some work being planned :-)
I was planning to be at the sprint but cannot come unfortunately. So I might also just remotely join.
I just joined/created #plonesocial on freenode.net so maybe this can be our channel.

I was checking out btw how complicated it might be to make Plone an OpenID server as we are
thinking along those lines in the DataPortability Project, see

http://mrtopf.de/blog/web20/the-first-data-portability-use-case-somewhat-technical/

Luckily there already is one by Matthew Wilkes (who might even join plonesocial with it):

http://plone.org/products/circulartriangle-openid

What I was trying to do now was to put XRDS files into Plone. An XRDS file is more or less a service catalogue
in form of an XML file which stores URL endpoints for types of services (identified by an URI). An example is this:

<xrds:XRDS
    xmlns:xrds="xri://$xrds"
    xmlns:openid="http://openid.net/xmlns/1.0"
    xmlns="xri://$xrd*($v*2.0)">
  <XRD>
    <Service priority="0">
      <Type>http://specs.openid.net/auth/2.0/server</Type>
      <Type>http://specs.openid.net/extensions/pape/1.0</Type>
      <URI>https://open.login.yahooapis.com/openid/op/auth</URI>
    </Service>
  </XRD>
</xrds:XRDS>

This defines a service with the specified types (openid) and the associated endpoint (the URI tag). This is used in e.g. OpenID to find the OpenID server. My goal was to let the use define the contents of this to e.g. let a Plone site point either to it's own openid server or to a completely different one. XRDS files are also used in DataPortability as a catalog of other services the user is a member of (e.g. retrieving profile information, friends lists etc.).

So what I have now is some view and traverser which can make something like this possible;

http://localhost:8080/plone/users/cs/xrds

"users" is more a namespace, cs is a virtual user info object and xrds is a view on that object, rendering an XRDS like the one above (and putting cs in the right places).

I will check this in later but it's more an experiment actually.

The problem I encountered were how to retrieve user information. I now created a IBasicUserInfoRetriever adapter and a IBasicUserInfo definition to retrieve at least fullname and username (email I though might be protected and thus maybe not part of this definition).

This is used as follows:

        context = aq_inner(self.context)
        portal = getToolByName(context, 'portal_url').getPortalObject()
        retriever = IBasicUserRetriever(portal)
        user = retriever.get(name)

(inside a view).

user is then an object which just knows fullname and username and is what is returned for the "cs" part of the path. The view then works on this object.

So why am I writing all this? :-) Because I think this is not ideal. My thinking now is that "cs" maybe is a virtual user object which does not really have any data except the username or some other identification for the user. A view on that can then adapt this class to retrieve the right information set (defined by an interface) it needs. XRDS might need less than e.g. a full profile page. Some information might even be changable if the user is logged in. So for all these use cases we can then define certain data definition (interfaces) and additional components might be able to define their own (and provide an adapter). I would assume though that a plonesocial base package has various already defined sets with adapters (those of common use).

Then the question is how we handle different types of user implementations. We can have normal Plone members but it might also be something based on remember/membrane or something completely different. One idea might be that the virtual user object has a marker interface saying from which source it came (because they all might implement the attributes differently). Then an adapter can be written to bridge from e.g. a custom remember type to the IBasicUserInfo set. If you have your own remember implementation you then also have to provide the adapters which convert it for the components you use.

I am not sure if this is understandable but maybe we can discuss it via IRC and come to a way to go.


BTW, in the long run, even the /author/cs path of standard Plone might be replaced by some traversable view which does something like this to retrieve profile information. Some plonesocial component could then extend that to show more information as there is right now.

(and on a separate note we might also need a way to store additional information for a user, e.g. enhancing their profile. e.g. some component might want to add a list of openids he can use to login or attach other information. This is probably solved by some annotation or some local/persistant utility but a general solution for this and a UI might be nice to have).

Ok, maybe see you later in da chat! :-)

-- Christian
--
Christian Scholz
Tao Takashi (Second Life name)
taota...@gmail.com
Blog/Podcast: http://mrtopf.de/blog
Planet: http://worldofsl.com

Company: http://comlounge.net
Tech Video Blog: http://comlounge.tv
IRC: MrTopf/Tao_T

djay

unread,
Apr 24, 2008, 12:54:58 PM4/24/08
to Plone Social Networking
I'm not sure how its going to work as paris daytime is my friday and
sat nights. so I might have to do stuff before you guys start each
day.
Reply all
Reply to author
Forward
0 new messages