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

Reply via email to