Historisation

Raptor shouldn't weight all the clicks the same. Instead, it should weight them by monthly periods, so that current clicks are worth more than clicks of the last month. Five fields are used:

Field Description Weighting
CurM Current Month 1.0
LasM Last Month 0.8
2MB Two Months Back 0.6
3MB Three Months Back 0.4
4MB Four Months Back 0.2

Everytime the user starts his computer and KDE, raptor checks when it was last loaded. If this was not in the current month - e.g. 2 months ago - it moves the click value to the respective field, here 2MB, and sets the more current fields (here LasM and CurM) to 0. It also moves the values of the other fields back, here 2MB to 3MB, 3MB to 4MB.

Of course the developer needs to take care that he reads the column 2MB first and saves it to a variable, before overwriting it.

When the user now clicks on an element, the current value in the CurM field of the respective application is increased by one. We do NOT save every click with a date, but only the cumulated clicks per month, due to performance reasons in the XML and because we don't want to blow up the file.

Possible Problems:

  • Always having to recalculate the whole fields and sum up might be performance bottleneck. We have to check if we do want to calculate the weighting before moving the values and directly enter the weighted value.
  • The weighting is now linear. I think we shouldn't hardcode it but make it configurable, so that the user can enter manual weightings? If so, it would have to recalculate all respective fields, e.g. from 0.4 to 0.3 and save that.
  • We will see if having the field in the crowded configuration XML is clever or negative for the performance.
  • Affiliates

    Latest in svn

    Fixed typo: Service, not Sevice
    srefshauge * r825015 lib/ (7 files in 3 dirs): Fixed typo: Service, not Sevice...

    Try to bring fancy-plugin back to work, but seems
    lappelhans * r819018 (3 files in 2 dirs): Try to bring fancy-plugin back to work, but seems not to ...

    add a run time warning
    siraj * r817408 launcher/main.cpp: add a run time warning...

    add requrired data structures
    siraj * r817407 lib/pluginloader.h: add requrired data structures...

    create plugin instances
    siraj * r817406 (4 files in 3 dirs): create plugin instances...