Opened 15 years ago

Last modified 10 years ago

#183 closed enhancement

tag clouds — at Initial Version

Reported by: Caleb Davis Owned by:
Priority: minor Milestone:
Component: programming Keywords:
Cc: Parent Tickets:

Description

This is another rollover from #360, but it got left behind somehow. A tag cloud is a dict-like object containing {'tag-name':frequency-of-use,...}. It's fun to have them to see all the tags that people are using publicly on an instance.

Where would we display these?

  • instance home page - all users, processed media

  • user's profile - user's processed media

  • [BONUS] - arbitrary collection (/tags/bunnies) Open questions:

  • Should we use MapReduce? http://cookbook.mongodb.org/patterns/count_tags/ The alternative would be to write tags to a text file and do

    sort tags_text_file | uniq -c

or do it completely within python * Should we use celery? Generating tag clouds shouldn't slow page renders. Thoughts:

do it with python if you're using MapReduce since, if MapReduce gets too slow, you just add more processors!

if it 'takes too long', then use celery

  • How often do we update the clouds? Thoughts included:

    not during a bulk upload

  • How do we store these tag cloud objects? If we're not rendering them on the fly, then they should be in some kind of cache. Thoughts:

    user['tag_cloud'] = dict

    associate the cloud with the route. something like - {'/':'instance_cloud.txt','/u/user1':'user1_cloud.txt','/tags/bunnies':'tags_bunnies.txt'}

Change History (0)

Note: See TracTickets for help on using tickets.