Task:Karma for applications
This is an ongoing task, planned to be completed during the current maemo.org development sprint. Any help is appreciated! Please see the talk page for discussion. |
Application karma seeks to provide plausible "score number" for each application in the Maemo application catalog.
The application karma will follow a pattern familiar from Maemo's user karma (see http://maemo.org/profile/list/ and http://maemo.org/profile/view/bergie/), utilizing various sources of information about the application to calculate its activity and importance.
Goals
- Provide a simple, unified way for users and developers to judge an application's quality.
- Provide a distributed quality assurance system for handling package promotion.
Metrics for judging "quality"
These are calculated using information inside maemo.org Midgard database:
- Number of downloads
- Number of ratings
- Average rating
- Frequency of updates
- Number of releases available
- Number of OS versions supported
As well as from outside it:
- Bug activity (in Bugzilla)
- Freshmeat.net stats (when the new Freshmeat reimplements their APIs)
- Blog mentions (via Technorati, using "unixname" as tag)
- Screenshots uploaded (via Flickr, using "unixname" as tag)
- Number of contributors in Garage
All karma items are counted once per day, and stored so that the development of application karma can be followed on a graph. The total karma of an application will be available in the application's metadata.score.
Counting currently "hot" applications
To make a dynamic listing of applications that are "hot right now", we need to store some additional download statistics per application:
- Total amount of downloads
- Average downloads per day during last week
- Yesterday's downloads
These can then be used to calculate whether an application is getting more downloads on a given day than usual, meaning that it is "currently hot".
This should be possible to count via:
current karma = (yesterday's karma - age modifier) + (total download count - yesterdays downloadcount - lastweeks daily average)