Opened 12 years ago

Closed 6 years ago

Last modified 6 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'}




Subtickets

Change History (15)

comment:1 Changed 12 years ago by Caleb Davis

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 Changed 11 years ago by Christopher Allan Webber

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



comment:3 Changed 11 years ago by Christopher Allan Webber

Milestone: 0.1.00.2.0

comment:4 Changed 11 years ago by Jakob Kramer

Owner: set to Jakob Kramer
Status: NewIn Progress

comment:3 Changed 11 years ago by Jakob Kramer

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 Changed 11 years ago by Christopher Allan Webber

Milestone: 0.2.00.2.1

comment:4 Changed 11 years ago by Jakob Kramer

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 Changed 11 years ago by Will Kahn-Greene

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

comment:6 Changed 11 years ago by Elrond

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 Changed 11 years ago by Christopher Allan Webber

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 Changed 10 years ago by Aleksej

Type: defectenhancement

comment:9 in reply to:  7 Changed 10 years ago by spaetz

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 Changed 9 years ago by Tumulte

(comment removed by author)

Last edited 9 years ago by Tumulte (previous) (diff)

comment:11 Changed 6 years ago by Ben Sturmfels

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 Changed 6 years ago by Ben Sturmfels

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.