Hey all, Recently there's been some discussion in the irc channel about possible implementations of groups for laconica (http://laconicalogs.downlode.org/2008-09-02.html) Here is my proposal for discussion: Firstly, we need to implement two different classes of notices in laconica, public and private. Public notices are the type that show up on the public timeline, where private notices would only show on the "Home" or "Inbox" view for the sender and receiver (i.e. http://identi.ca/garretbuell/all). Public notices are the kind which are currently implemented and occur when you simply create a new notice ("Hello Everyone" or "@garretbuell hello there"). A private message would be the twitter equivalent of a direct message ("d garretbuell this is a private message")
Ok, now to explain groups I'll give an example of how it would be used. Say we have two individuals, "Mike" and "Jack". Both already have accounts on the laconica server (let's just say identi.ca) Mike creates a new account on identica called "TheAssociation " (which is the name of his totally cool and exclusive group) On the settings page for TheAssociation, Mike checks a checkbox saying "Make this a group" Now TheAssociation subscribes to Mike and Jack who, in turn, subscribe to TheAssociation. By being mutually subscribed with TheAssociation, Mike and Jack are now, for all intents and purposes, members of the group TheAssociation. Now, any notices sent to/at TheAssociation will be automatically propagated to the members. For example, Mike creates a new notice "@TheAssociation This group is so cool!" All the members of TheAssociation (right now just Mike and Jack) are notified (email, sms, whatever their settings are) of the notice, and the notice, which is public, shows up in several places: 1. the public feed (http://identi.ca/) 2. Mike's Inbox (http://identi.ca/mike/all) 3. Jack's Inbox (http://identi.ca/jack/all) 4. TheAssociation's inbox (http://identi.ca/theassociation/all) Now if Jack creates the notice "d TheAssociation Does anyone know a good doctor for my rash?" this would be a private group notice and all members of TheAssociation are notified. The notice shows up: 1. Mike's Inbox (http://identi.ca/mike/all) But only to Mike when he is logged in 2. Jack's Inbox (http://identi.ca/jack/all) But only to Jack when he is logged in 3. TheAssociation's inbox (http://identi.ca/theassociation/all) But only to members when they are logged in No one else can view this notice! Some interesting pieces of information: Groups are 1st class users. The only difference between a group and a person is the checking of the "Make this a group" checkbox which causes notices directed at the group to be propagated to mutual subscribers (members). ("Echoed" if you like) This will work automatically across laconica installations. The "Make this a group" checkbox used in conjunction with the "Automatically subscribe to whoever subscribes to me (best for non-humans)" checkbox would cause the group to automatically accept anyone that wants to become a member. Only Mutual Subscribers (members) will have their notices propagated to the other members. If user "McSpammer" creates the notice "@TheAssociation CHEAP V1AGRA!!!11!1" this notice would show up in the public feed but it would NOT be propagated because, even if he is subscribed to TheAssociation, TheAssociation is not subscribed to him and thus he is not a member. You could also send a notice to/at multiple groups: "garretbuell: @TheAssociation, @TopSecretGroup, you guys free this weekend?" or even "garretbuell: d TheAssociation, d TopSecretGroup, secret secret!" Additional Considerations: Syntax for group communications -- If there is a chance the group operator would want to send notices like a normal user on behalf of the group, then we need a different syntax to distinguish group notices from normal. Perhaps @@ and d@ ? Furthermore, notice how the direct notice syntax breaks down if you want to send a private notice to more than one user? "garretbuell: d TheAssociation, d TopSecretGroup, secret secret!" We clearly need a better syntax as "d" isn't a very good delimiter. Hopefully I've explained adequately. Let me know your thoughts. -Garret Buell _______________________________________________ Laconica-dev mailing list [email protected] http://mail.laconi.ca/mailman/listinfo/laconica-dev
