People tags

From StatusNet
(Redirected from Lists)
Jump to: navigation, search

Notes on the upcoming lists implementation. Checkout @shashi's people_tags branch for the code.

Contents

Beta testing

http://statusnetdev.net/g0 is where the latest code is running. You can sign up for a new account and start testing now! Please send any bug reports or feedback to connect2shashi@gmail.com or to identi.ca/shashi

Note: if you want to test the federation, we will be setting up sub-domains soon.

Checklist

Here is a (guess of a) list of things to implement.

  • Peopletag as list.
    • Decide & implement DB schema
    • basic caching
  • Inbox handling in Notice.php
  • UI
    • actions/*
      • edittag - description, allow deletion / renaming tag
      • style peopletag list
      • autocomplete for tags -- Branched out
      • ajax tag editing -- TODO field specific search
      • ajax subscription / unsubscription
      • OStatus subscribe / unsubscribe forms
    • cache statistics
  • OStatus & Feeds
    • Discovery
    • PuSH feed
    • use Salmon to keep track of tags from remote instances.
    • use salmon to add/remove subscriptions
    • RSS
    • Atom
  • API (see twitter api documentation scroll down to lists section)
    • List methods (create, update, index, show, destroy, statuses, memberships, subscriptions)
    • List Members Methods (index, create, destroy, show)
    • List Subscribers Methods (index, create, destroy, show)
    • remove need to authenticate where not required.

You can now test the twitter-compatible api at by using http://statusnetdev.net/g0/api as the api path in your twitter client.

Configuration options

    • enable/disable people tags
    • max tags a user can create (default 100)
    • who can a user tag?
      • local users
      • local users and remote subscriptions
      • any OStatus user
  • Plugin to allow tagging groups
    • Some super users who don't care about twitter compatibility might want this. Plus this gives an opportunity to develop and show off a pretty comprehensive set of plugin hooks.

Cache

  • local subscribers
  • global subscribers
  • tags (tag, tagger, tagged) -- how best to pack this?
  • statistics

Documentation

  • Some places use the word "peopletags" and some use "people tags" some use "profiletags". Fix this.
  • Take time to comprehensively write documentation for every function.

Manual Tests

  • Installation Passed
  • Tagging / Untagging locally Passed
  • Tagging / Untagging remotely Passed
  • No way to figure out private tags Passed
  • CacheLog checks with caching enabled Passed
  • Tagging / Untagging locally with memcache Passed
  • Tagging / Untagging remotely with memcache Passed
  • Tag Autocomplete Passed
  • @# replies Passed
  • API tests Unknown

Discussion

Things yet to be figured out:

  • How can peopletags and lists coexist?
    • lists (on twitter) have a description that go with them, peopletags don't, but peopletags are self-descriptive and cooler. They can also be used to send notices using the @# syntax.

-- let peopletags have descriptions. Send an @# notice to everyone in the peopletag who are subscribed to you as a mention. Basic idea is to keep the ease and awesomeness of peopletagging interface and also the goodness of twitter's list interface.

  • Should groups be allowed to be included in lists? (they are themselves lists of people). There are a few issues with this:
    • Twitter API compatibility
    • Showing both users and groups in the same view - maybe, a plugin.
  • Do what with FAOF?
  • Any more questions?

Feel free to discuss!

OStatus workflow

  • New activity verb - ostatus:untag being used

Discovery and Subscription process

  • Peopletag represented as a list activity object of person activity objects is the activity:subject of the atom feed.
  • Rest of it works exactly like follow/unfollow for groups.

Tags by remote servers

  • a tag/untag activity object comes with a "target" which is the peopletag and an "object" which is the remote person being tagged. "actor" is the tagger - garbageCollect user's feed.

UI Notes

The sidebar is getting too cluttered, need feedbacks and suggestions.

  • A peopletag list item widget has a (un)subscribe button, statistics: no. of members & subscribers
  • Profile list item widget will have editable tags with autocomplete.
  • Sidebar widgets peopletag mini list:
    • has a mini avatar, username & tag, statistics on mouseover!
    • each item has a height of 50px which is huge and needed to accommodate the avatar
  • List of sidebar widgets:
    • Public page:
      • List of tags with largest subscribers
    • Profile page:
      • Tag cloud by most subscribed
      • Latest subscriptions
    • Peopletagsbyuser page
      • tag cloud by most subscribed
    • Peopletagsforuser page
      • tag cloud by frequency
Personal tools
Namespaces
Variants
Actions
Navigation
Status.net
Toolbox