First steps on buddycloud

66 views
Skip to first unread message

Martin Steinmann

unread,
Mar 10, 2012, 9:44:48 AM3/10/12
to buddycl...@googlegroups.com

I created an account on your beta.buddycloud.org server just to try it out and wanted to share some observations from a non-technical perspective:

 

-          After I first logged in I have no idea what to do here.  I can see my own channel and I can see a lounge and a topics channel, but what next?

o   How would I create or update my profile?

o   How would I find friends?

o   How would I invite a friend?

o   How would I find existing topic channels?

-          Since this is based on XMPP I thought I would see presence, but somehow presence does not seem integrated with this interface

-          The default avatars used seem very geeky.  How do I change this?

-          How can I find other users?  The search function does not seem to yield any results no matter what I type in

-          How would I use content search?   Would this apply to only channels I follow or all channels? 

-          Is there a ‘table of content’ that lists all channels I have access to?

 

Using XMPP as the backend for a social network seems to be a really brilliant idea, but somehow all the user facing benefits of XMPP got lost.  Isn’t there an XMPP user profile and also a social graph in the form of friends in my XMPP roster?  If I would want to use the XMPP server buddycloud runs on also for chat and group chat, is there any correlation between my roster friends and the followers of my channel?  In the buddycloud interface wouldn’t it make sense to also display real-time presence of my friends and followers or even provide chat and group chat?

 

How about security?  Can I somehow restrict followers for either my own channel or a topic channel?  If I’d like to create a topic channel for a specific activity, can I invite a given set of people and then restrict visibility and participation on that topic to this group of people?  Can I remove a follower from one of my channels?   Can I close a channel so that no new followers are allowed?  When a new user wants to follow my channel, can I set it up so that I have to first grant access like this is done with invites in XMPP?  Can I delete posts or comments made by others on my channels (such as for spam or other inappropriate content).  Can I have granular access control where only certain followers can also post or comment but not others?  Are users on my domain treated differently than users from federated domains in terms of rights?  I like the social model of buddycloud where others can post on my channels and not just comment and where channels can be around people but also around topics.  That is very powerful, but only if there is granular security so that I can decide by individual follower what rights I will grant. 

 

The main concept seems to be that a user has to find a channel and then decide to follow that channel.  How about the reverse where the owner of the channel wants to invite followers? 

 

Can users rate a channel?

 

Can I attach files or images to a post?  There are images attached to posts I can find, but how do you do it?

 

Can I replace the JID with my real name or nick in posts and channel headings?

 

When I click on the avatar of a follower I’d like to see that person’s profile.  I found out by accident that after clicking on an avatar of a follower the JID displays and if I select that JID I am taken to that person’s channel.  That’s cool but not obvious.  Is there a way to then see what topic channels this person moderates?

 

Can I create a hierarchy of topic channels so that some grouping can be applied to organize channels?  For instance channels created by a certain group of people, such as the ones in my roster or some other user group, channels around a specific umbrella topic.

 

Can I delete my topic channels in their entirety with all content?  For instance if you have time limited channels that are setup temporarily to discuss a certain activity and when the activity is over you would like to delete the channel.   Can an admin delete a user account and with that all the content gets deleted too?  Can topic channels be persistent and survive the deletion of the moderator’s user account?

 

Federation with other domains:  XMPP allows for access control when it comes to federation with other domains.  How does this work with buddycloud?  Is there some admin control around what other domains can have access or what other domains users can federate with?  Does it use the same mechanisms already provided by the XMPP server?

 

And an admin question:  Is there a possibility to run redundant buddycloud / XMPP servers for high availability?  How would backup / restore or disaster recovery work?  What is the scalability of a single buddycloud / XMPP server in terms of supported users, concurrent connected devices, channels?   Is there a statistics view for the admin to see activity by channel, connected devices over time, server load, storage requirements, etc.?   If my server load gets too high at some point, can I move certain channels to a second server?  Can I apply a policy so that content in channels gets deleted after some period of time (i.e. stuff over one year old on this list of channels gets pruned from the DB)?  Can the admin limit the amount of storage given to a user for his/her channels and if full the user has to delete some of the data (similar to a limited size inbox for email)?

 

--martin

 

 

 

Simon Tennant (buddycloud)

unread,
Mar 10, 2012, 11:09:39 AM3/10/12
to buddycl...@googlegroups.com
Thanks for this feedback Martin. Comments inline.
--
Simon Tennant
+49 17 8545 0880

On 10 Mar 2012, at 15:44, Martin Steinmann wrote:

I created an account on your beta.buddycloud.org server just to try it out and wanted to share some observations from a non-technical perspective:
 
-          After I first logged in I have no idea what to do here.  I can see my own channel and I can see a lounge and a topics channel, but what next?
o   How would I create or update my profile?
o   How would I find friends?
o   How would I invite a friend?
o   How would I find existing topic channels?

We know the on boarding process isn't usable right now. Tuesday afternoon sees the design of a new channel discovery interface: "Channels you might like", "channels based on Abmar's taste-engine", "featured channels" etc.


-          Since this is based on XMPP I thought I would see presence, but somehow presence does not seem integrated with this interface

What does presence mean in a web app or mobile app when users are bouncing online and offline? If we design buddycloud well enough (guaranteed message delivery), exposing the fluctuations of presence is unnecessary and we don't setup a false expectation of receiving a reply because someone has a green dot or red dot next to their name.

-          The default avatars used seem very geeky.  How do I change this?

Totally agree. It was the quickest way to get something basic working using Gravatar. We're working on a default avatar for personal and topic channels. Some of this will be tied into a future media server.

-          How can I find other users?  The search function does not seem to yield any results no matter what I type in

will be fixed as part of the channel discovery/onboarding work.

-          How would I use content search?   Would this apply to only channels I follow or all channels? 

It's coming - based on the work done by Abmar: https://github.com/buddycloud/channel-directory

-          Is there a ‘table of content’ that lists all channels I have access to?

We hope that soon, there will be too many channels to fit in a list. Search will help you find them based on metadata and names.

 
Using XMPP as the backend for a social network seems to be a really brilliant idea, but somehow all the user facing benefits of XMPP got lost.  Isn’t there an XMPP user profile and also a social graph in the form of friends in my XMPP roster?  If I would want to use the XMPP server buddycloud runs on also for chat and group chat, is there any correlation between my roster friends and the followers of my channel?  In the buddycloud interface wouldn’t it make sense to also display real-time presence of my friends and followers or even provide chat and group chat?


 
How about security?  Can I somehow restrict followers for either my own channel or a topic channel?  If I’d like to create a topic channel for a specific activity, can I invite a given set of people and then restrict visibility and participation on that topic to this group of people?  Can I remove a follower from one of my channels?   Can I close a channel so that no new followers are allowed?  When a new user wants to follow my channel, can I set it up so that I have to first grant access like this is done with invites in XMPP?  Can I delete posts or comments made by others on my channels (such as for spam or other inappropriate content).  Can I have granular access control where only certain followers can also post or comment but not others?  Are users on my domain treated differently than users from federated domains in terms of rights?  I like the social model of buddycloud where others can post on my channels and not just comment and where channels can be around people but also around topics.  That is very powerful, but only if there is granular security so that I can decide by individual follower what rights I will grant. 

I think it's powerful too. And we're only just starting to see the absolutely frigging awesome potential of this.

There shouldn't be any difference between j...@mydomain.com and ja...@remote-domain.com.

Personal channels will (in the next release I think) be private by default. You can then approve followers.

Posts will be deletable. Soon.

What we aren't doing is permissioning individual posts. That's a bunch of work at posting time and makes things like reshaing posts tricky. And is just the wrong way to make users feel comfortable about simple security.

 
The main concept seems to be that a user has to find a channel and then decide to follow that channel.  How about the reverse where the owner of the channel wants to invite followers? 

On an earlier version of buddycloud we had an "invite user to this channel" feature. It turned into a huge spam-fest as users tried to attract followers to their mediocre channels. I agree it's powerful but will probably have to be limited to people in your roster and delivered via a personal message (IM). But we're not quite there yet.

 
Can users rate a channel?

Not right now. Also that type of functionality can live outside the core protocol and servers. I guess like IMDB for buddycloud.

 
Can I attach files or images to a post?  There are images attached to posts I can find, but how do you do it?

Just throw a URL in. These are expanded out using embed.ly. In the future some of this functionality will come from a buddycloud media server. Again… we're not quite there yet.

 
Can I replace the JID with my real name or nick in posts and channel headings?

I'm quite keen that we show JIDs to emphasis the federated nature. But you're right, a nice name is perhaps also nice to show. We're doing a small redesign this week and will play around with some options.

 
When I click on the avatar of a follower I’d like to see that person’s profile.  I found out by accident that after clicking on an avatar of a follower the JID displays and if I select that JID I am taken to that person’s channel.  That’s cool but not obvious.  Is there a way to then see what topic channels this person moderates?

I think everyone has a different idea of what a profile is. At the moment filling out the "channel description" is your profile.

 
Can I create a hierarchy of topic channels so that some grouping can be applied to organize channels?  For instance channels created by a certain group of people, such as the ones in my roster or some other user group, channels around a specific umbrella topic.

Lets see how many channels people follow and how well the https://buddycloud.org/wiki/Buddycloud_client_design#buddycloud_bubbles work from dodo works out before adding this complexity of managing groups to the client design.

 
Can I delete my topic channels in their entirety with all content?  For instance if you have time limited channels that are setup temporarily to discuss a certain activity and when the activity is over you would like to delete the channel.   Can an admin delete a user account and with that all the content gets deleted too?  Can topic channels be persistent and survive the deletion of the moderator’s user account?

Good point. We'll add this to the new design. Only the channel owner can delete his or her channel. Moderators can remove posts and approve followers.



 
Federation with other domains:  XMPP allows for access control when it comes to federation with other domains.  How does this work with buddycloud?  Is there some admin control around what other domains can have access or what other domains users can federate with?  Does it use the same mechanisms already provided by the XMPP server?

This depends on your XMPP server. I think most have a blacklist domain function. Nevertheless if buddycloud takes off, I expect that there will be the equivalent of DNS RBLs for XMPP and that server admins can subscribe their s2s components to first do a lookup on the RBL before opening a connection.

 
And an admin question:  Is there a possibility to run redundant buddycloud / XMPP servers for high availability?  How would backup / restore or disaster recovery work?  What is the scalability of a single buddycloud / XMPP server in terms of supported users, concurrent connected devices, channels?   Is there a statistics view for the admin to see activity by channel, connected devices over time, server load, storage requirements, etc.?   If my server load gets too high at some point, can I move certain channels to a second server?  Can I apply a policy so that content in channels gets deleted after some period of time (i.e. stuff over one year old on this list of channels gets pruned from the DB)?  Can the admin limit the amount of storage given to a user for his/her channels and if full the user has to delete some of the data (similar to a limited size inbox for email)?
 

Honest answer: Nobody really knows yet. If we can keep state in a SQL or Redis-like db then I would expect that we can run servers in a round robin fashion. Again - we're working out the functional kinks first knowing that we can come back later and rewrite bottlenecks / add failover etc. 

Stats and reporting will be really important. Especially for enterprise customers. 

--martin


Thanks for the long email Martin. Really nice to get good feedback like this. For context we're trying really hard to get a proof of concept in place with all functionality working and good on boarding and a UI that you can fall in love with. Then there's a bunch of design decisions that we can revisit and code that we can optimize.

S.

Martin Steinmann

unread,
Mar 11, 2012, 12:09:16 PM3/11/12
to buddycl...@googlegroups.com

Simon

 

Thanks for getting back.  Very powerful stuff and I am looking forward to seeing buddycloud evolve.  I might have some other ideas I’d love to discuss with you at some point.  Will let you know when I am in Germany next time.

 

I think that focusing on a user profile is important and the channel description is no replacement for a real profile.  Users want to showcase themselves and therefore in addition to the usual fields of a profile there should be some flexibility to extend it.  There are some nice standards for vcards and extended vcards that give you a lot of fields.  XMPP includes a rich user profile and buddycloud should offer a nice page for a user to see and update his/her profile and for other users to see your profile.

 

The security elements are really critical.  I actually now found the way you can set roles by clicking on the moderator avatar – nicely done.  After I created a topic channel I went in and changed my role from Producer to Moderator and I think now I lost control over that channel because somehow I cannot see a way to get Producer rights back.

 

I can see why you think there shouldn’t be a difference between users from different domains.  However, this assumes that buddycloud is only used as a global completely federated system.  What if buddycloud is used more in a closed setup for a particular organization, allowing federation with certain other domains only, and wanting to restrict the rights given to users from external domains as a general policy?   I would also be looking for a way to only allow federated users to follow certain channels but not others.

 

Re: names vs. JIDs – you might be able to do both.  Show the name in large font, with the JID in small font below.  The JID alone is too geeky for most people.

 

Are you still thinking of creating a Java version of the channel server?

 

Could buddycloud use a NoSQL database backend such as e.g. MongoDB?  This might make it a lot easier to create global redundancy and scale.

 

--martin

imaginator

unread,
Mar 12, 2012, 8:25:44 AM3/12/12
to buddycl...@googlegroups.com
More comments inline.


On Sunday, 11 March 2012 17:09:16 UTC+1, Martin Steinmann wrote:

I think that focusing on a user profile is important and the channel description is no replacement for a real profile.  Users want to showcase themselves and therefore in addition to the usual fields of a profile there should be some flexibility to extend it.  There are some nice standards for vcards and extended vcards that give you a lot of fields.  XMPP includes a rich user profile and buddycloud should offer a nice page for a user to see and update his/her profile and for other users to see your profile.

The designers of the Olympic Center in Munich did something interesting (and radical at the time): they avoided creating paths between the various sports complexes. Instead they planted grass everywhere and watched where people walked. The grass pathways that people used a lot, became worn and muddy, and pathes were then built along these routes. Today these paths take you the way you want to walk and feel natural to follow. buddycloud provides the basic features right now and we're watching and learning how people use it.

The success of buddycoud is defined as much from what the product is not as much as what the product is. It is so easy to add features. It is so difficult to keey the client pure and focused by saying NO to features. So I'm really keen that we question our assumptions. We're not building a Twitter or Facebook or Google+ clone. We're building something completely new and very different. And perhaps we're completely wrong. Nevertheless I think it's important to experiment, create new standards and to never add support for something. There's enough competing products that provide addressbook-like features (Linked-in, Facebook, etc)

Specifically to vCards: The XMPP implmentation of it is a half hearted bolt-on in most XMPP servers. It sometimes works. It's somtimes enabled on servers. And there is no support for protecting the mobile client from starting a vCard download that includes a 20MB avatar.

Any standards that buddycloud adopts should be apropriate and relevent. And if not then we look at how we can improve existing standards or produce new more relevent standards that reflect a different way of sharing online.

I think you have a point about the channel description needing to be larger - let people descrive themselves with a "if you need to contact me I am reachable on 702-555-1212 and my github account is github.com/codergal". Maybe later we'll need to structure this. But first we can watch and see how people create their own paths and walk/use the service before we force them into filling out form fields.

The security elements are really critical.  I actually now found the way you can set roles by clicking on the moderator avatar – nicely done.  After I created a topic channel I went in and changed my role from Producer to Moderator and I think now I lost control over that channel because somehow I cannot see a way to get Producer rights back.

This is a known issue. It should be fixed in the next release.
 

 I can see why you think there shouldn’t be a difference between users from different domains.  However, this assumes that buddycloud is only used as a global completely federated system.  What if buddycloud is used more in a closed setup for a particular organization, allowing federation with certain other domains only, and wanting to restrict the rights given to users from external domains as a general policy?   I would also be looking for a way to only allow federated users to follow certain channels but not others.


It sounds like a security policy that security officers would want to enforce on the s2s layer or using security labels (XEP-0258). Maybe some of this gets exposed in the client. But there are a bunch of other core features to get right first.


 Re: names vs. JIDs – you might be able to do both.  Show the name in large font, with the JID in small font below.  The JID alone is too geeky for most people.

And immediatelly makes people think they are on an email network / want to email the person. Great point!
 

 Are you still thinking of creating a Java version of the channel server?

Enterprises want to deploy java servers: https://github.com/buddycloud/buddycloud-server-java (expect more action on the java side soon)
 

 Could buddycloud use a NoSQL database backend such as e.g. MongoDB?  This might make it a lot easier to create global redundancy and scale.

Dirk Duckhorn

unread,
Mar 12, 2012, 8:36:06 AM3/12/12
to buddycl...@googlegroups.com
Am 12.03.2012 13:25, schrieb imaginator:
More comments inline.

On Sunday, 11 March 2012 17:09:16 UTC+1, Martin Steinmann wrote:

I think that focusing on a user profile is important and the channel description is no replacement for a real profile.  Users want to showcase themselves and therefore in addition to the usual fields of a profile there should be some flexibility to extend it.  There are some nice standards for vcards and extended vcards that give you a lot of fields.  XMPP includes a rich user profile and buddycloud should offer a nice page for a user to see and update his/her profile and for other users to see your profile.

The designers of the Olympic Center in Munich did something interesting (and radical at the time): they avoided creating paths between the various sports complexes. Instead they planted grass everywhere and watched where people walked. The grass pathways that people used a lot, became worn and muddy, and pathes were then built along these routes. Today these paths take you the way you want to walk and feel natural to follow. buddycloud provides the basic features right now and we're watching and learning how people use it.

The success of buddycoud is defined as much from what the product is not as much as what the product is. It is so easy to add features. It is so difficult to keey the client pure and focused by saying NO to features. So I'm really keen that we question our assumptions. We're not building a Twitter or Facebook or Google+ clone. We're building something completely new and very different. And perhaps we're completely wrong. Nevertheless I think it's important to experiment, create new standards and to never add support for something. There's enough competing products that provide addressbook-like features (Linked-in, Facebook, etc)

Specifically to vCards: The XMPP implmentation of it is a half hearted bolt-on in most XMPP servers. It sometimes works. It's somtimes enabled on servers. And there is no support for protecting the mobile client from starting a vCard download that includes a 20MB avatar.

Any standards that buddycloud adopts should be apropriate and relevent. And if not then we look at how we can improve existing standards or produce new more relevent standards that reflect a different way of sharing online.

I think you have a point about the channel description needing to be larger - let people descrive themselves with a "if you need to contact me I am reachable on 702-555-1212 and my github account is github.com/codergal". Maybe later we'll need to structure this. But first we can watch and see how people create their own paths and walk/use the service before we force them into filling out form fields.
I'm not really sure there needs to be added much to use the currently available for a more complete profile
On the right side of each channel there is a description field.
If there were a few simple markup abilities (linebreaks, links including mailto, maybe bold fonts and users have a profile they can customize to suit their needs.

Dirk
-- 
Dirk Duckhorn
di...@buddycloud.com
+49 89 420 955 854
+49 163 745 10 47
Bildschirmfoto am 2012-03-12 13:29:40.png
Reply all
Reply to author
Forward
0 new messages