CPAN module recommendation system
A little confession/reasoning/backstory: I love CPAN surfing. You know, watching the latest releases, browsing module dependencies and other modules by the same authors... And favoriting the interesting stuff. Stats show that I'm not supposed to be the only one. If so, wouldn't it be nice to provide a crowdsourced recommendation for CPAN modules? Think: "People who favorite Mojolicious often favorite: AnyEvent, Data::Printer, Devel::NYTProf, Dist::Zilla...". Plus, given the user's favorites, own releases & own release dependencies, a custom-tailored module suggestion list could be build for any PAUSE ID subscribed to the MetaCPAN. Enter the CPAN::U experiment.
tl;dr: a poor man's Cinematch.
Not a big deal, but it addresses, at least partially, an issue raised in the recent Categorizing CPAN modules post (which was an actual inspiration for wrapping up a public release for some quick & dirty code written one day prior to that post publication). And it is fun to explore, after all!
The next logical step is to tweak my fork of metacpan-web to incorporate the recommendation API. But first, the API needs to be tested. That's the main purpose for the CPAN::U experiment: to be a crash test dummy for the further "return to the source". And this is why I'm kindly asking for your help. There are too many questions unanswered (which can be replied directly on the project's landing page):
- Query your PAUSE ID and/or a few not-so-ubiquitous modules you know. Rate the results, from 0 for "complete nonsense" to 5 for "the module I was long searching for".
- Is it slow? Does it crashes? Does it work at all, in your browser? (I suck at frontend, sorry 'bout Bootstrap thingie)
- Are you aware of any collaborative filtering algorithms more appropriate for this task?
- Could it be implemented as a part of the MetaCPAN API, at all? (currently, there is a Perl fetch/process script which populates a CouchDB database which is queried via Ajax)
As always, pull requests are welcome!