Opened 13 years ago

Closed 8 years ago

Last modified 8 years ago

#183 closed enhancement (wontfix)

tag clouds

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

Description (last modified by Christopher Allan Webber)

This is another rollover from `#360 </issues/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/ <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 (15)

comment:1 by Caleb Davis, 13 years ago

I haven't gone through the code in this one yet, but the feature
set is interesting:
`http://pypi.python.org/pypi/cs.tags <http://pypi.python.org/pypi/cs.tags>`_



comment:2 by Christopher Allan Webber, 13 years ago

Milestone: 0.0.50.1.0
Rolling over to 0.1.0 but doubtful we'll get it done in that
release :)



comment:3 by Christopher Allan Webber, 13 years ago

Milestone: 0.1.00.2.0

comment:4 by Jakob Kramer, 13 years ago

Owner: set to Jakob Kramer
Status: NewIn Progress

comment:3 by Jakob Kramer, 13 years ago

I think the best approach is to use Map/Reduce, it seems to be
implementable very simple. At the beginning I had problems to
understand how Map/Reduce works, but it is clear to me now. The tag
clouds are already "finished", but I have to do some Celery task,
so the tag clouds don't slow everything up.



comment:4 by Christopher Allan Webber, 13 years ago

Milestone: 0.2.00.2.1

comment:4 by Jakob Kramer, 13 years ago

Owner: set to Jakob Kramer
Status: In ProgressNew
As you may have noticed, I am very inactive in the last time again.
I pushed my current work to my fork, so you may review it and
change it to a better. It is very slow at the moment!

[https://gitorious.org/\ :sub:`gandaro/mediagoblin/gandaros-mediagoblin/commits/tag-clouds](https://gitorious.org/`\ gandaro/mediagoblin/gandaros-mediagoblin/commits/tag-clouds)



comment:5 by Will Kahn-Greene, 13 years ago

The original url for this bug was http://bugs.foocorp.net/issues/476 .
Relations:
#212: related, #207: related, #164: blocked

comment:6 by Elrond, 13 years ago

Milestone: 0.2.1

I don't think this one is top priority for the next release.
If someone wants to take it over, that's fine of course!

comment:7 by Christopher Allan Webber, 13 years ago

Description: modified (diff)

It probably makes sense that this can wait to be a plugin, once we have plugins? I'm not sure, though.

One easy thing now that we have SQL would be to show unique tags from recent images. That wouldn't have to do anything smart about generating a cloud, and would be fast.

comment:8 by Aleksej, 12 years ago

Type: defectenhancement

in reply to:  7 comment:9 by spaetz, 12 years ago

Replying to cwebber:

It probably makes sense that this can wait to be a plugin, once we have plugins? I'm not sure, though.

While tag clouds might be plugins, a list of often-used tags on a users profile is something I'd nearly consider core functionality. Either that, or a list of a users collections :-). Otherwise the only choice you have is to go along chronologically and discover interesting tags yourself.

comment:10 by Tumulte, 11 years ago

(cancel)

Version 1, edited 11 years ago by Tumulte (previous) (next) (diff)

comment:11 by Ben Sturmfels, 8 years ago

Resolution: wontfix
Status: acceptedclosed

Thanks for Caleb for proposing this feature, and to others for comments.

Given this feature request has been sitting un-implemented for many years, I'm going to be bold and close it for now. That's not at all to say that the feature won't be added, just that it's not a priority for MediaGoblin right now (sorry the "won't fix" tag is a bit blunt, but it's all we have).

I certainly don't speak for the project, so if anyone disagrees, feel free to re-open. My thinking is just to "add clarity" by reducing the number of low priority tickets in the tracker.

Regards,
Ben

comment:12 by Ben Sturmfels, 8 years ago

Additionally, just noting the existence of #207 "Add tag list to user profile". This is a little more specific and achievable than this ticket I think.

Note: See TracTickets for help on using tickets.