[Pidgin] #301: Make number of saved popular statuses configurable
Pidgin
trac at pidgin.im
Thu Apr 26 03:30:16 EDT 2007
#301: Make number of saved popular statuses configurable
---------------------------+------------------------------------------------
Reporter: gagern | Owner: seanegan
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: pidgin (gtk) | Version: 2.0
Resolution: | Keywords:
---------------------------+------------------------------------------------
Comment (by gagern):
To keep information about the last hundred changes, counts simply won't
do. You have to keep track of the order in which counts expire, which
means that you have to keep a log of those hundred changes. Whether you
remove nonsurvivers doesn't really make much of a difference imo, and
would further comlicate matters. Therefore sliding windows require quite a
few lines of storage, and I don't know how this would interact with
backwards compatibility. The same goes for moving average.
An alternative would be some form of decaying usage count, like at every
change, multiply all counters by 0.98, then increment the one you changed
to by 1. This can be done with only a single real-valued additional
attribute per saved status. After 35 changes of status, your usage count
would have lost half its weight if it was not used any more.
The only way to avoid problems with hysteresis would be to remember past
decisions. Otherwise, no matter how quick or slow your comparison function
responds to changed user behaviour, you can always get users circling
around the critical cutoff.
I had a look at {{{saved_statuses_sort_func}}} in
[source:libpurple/savedstatuses.c]. I fear it is also a cause of the
cyclic use problem I described initially, as the limit of 10 is easily
reached, and after that only timestamps count. So while this function is
not bad, there is some space for improvement.
To extend my own idea of frequency estimations, you could use the inverse
of the time since last use as another estimate. This would by itself lead
to the same order as the simple comparison of last usage times, but as a
kind of frequency it would be on the same scale as the frequency estimate
suggested above. You could then clip those if needed and weight them
against one another, to balance overall against recent behaviour. Of
course you could do all this in the inverse as well, i.e.
time_since_created / use_count gives you the mean time between uses, which
can be combined with the time since last use. This is nearer to what is
there right now, and yields exactly the same results as the dual frequency
approach.
Talking of the product we don't have, if you mean Pidgin 2.0.0, I agree
this should have precedence. If you however mean a change to the fixed
choice of six, then I believe this modification to be closely related to a
good choice function, so those two should perhaps be implemented together.
I guess I'll have to get myself a monotone tree of pidgin, to experiment a
bit, although the size of the bootstrap database worries me already.
--
Ticket URL: <http://developer.pidgin.im/ticket/301#comment:9>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list