CVS edit link for sugestio

I have created a module connects a Drupal site to the Sugestio recommendation service. Five-star votes are anonymized and submitted to the service. In return, visitors get blocks containing personal recommendations based on their own voting behaviour and similar nodes based on collective voting behaviour. The potentially heavy workload from collaborative filtering is offloaded to the external service, minimizing the performance hit on the Drupal website.

Similar modules:

http://groups.drupal.org/node/12347 contains a fairly comprehensive list of existing modules that add recommendation in some shape or form, but they either run entirely on the local server or they are built specifically for some external service. The Recommender API module sounds quite generic, but it didn't seem feasible to extend it for this particular purpose.

Comments

sugestio’s picture

StatusFileSize
new22.34 KB
new9.55 KB
sugestio’s picture

Status: Postponed (maintainer needs more info) » Needs review
sugestio’s picture

Issue tags: +Module review
avpaderno’s picture

Status: Needs review » Needs work

Hello, and thank you for applying for a CVS account.

May you report the difference between the existing projects, and the proposed module?

avpaderno’s picture

A side note: Drupal.org CVS accounts, as well as Drupal.org user accounts, are though for individuals; accounts created for more than one user are not allowed.

sugestio’s picture

There are several existing modules that offer either personal recommendations or similar nodes based on user voting, Content recommendation engine and Recommender API being notable examples. However, they all do the calculation work on the local machine, which can lead to performance and scalability issues. Sugestio offers a SaaS solution, where we do the heavy lifting on our Amazon cloud-based infrastructure. So this new module is made specifically for our RESTful webservice. With regard to your other comment, I do the Drupal side of things within the company and I just put sugestio for username. I'm the only person who will be using this account.

sugestio’s picture

Status: Needs work » Needs review
brianV’s picture

Status: Needs review » Needs work

Some notes:

  1. Your hook_block() implementation doesn't specify a cache flag to use. If no cache flag is set, Drupal assumes it is per-role. This means that the block will be the same on a given page for every user with a given role. This is not the behavior I think you intend. You probably want BLOCK_NO_CACHE since you appear to be handling caching yourself in suggestion_fetch_data(). See the hook_block() API page for details: http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hoo...
  2. Why is the cache_suggestio_calls table written to via drupal_write_record() in suggestio_hooks(), and read from / deleted from in suggestio_cron instead of using cache_set() and cache_get()?
  3. Please add @file docblocks to the top of your .module and .install files. http://drupal.org/node/1354#files
sugestio’s picture

Status: Needs work » Needs review
StatusFileSize
new9.77 KB

Thank you for taking the time to review my module. I've attached a new version that takes your comments into account.

1. Yes, this was an oversight. In the latest version, I have set the cache flag to BLOCK_NO_CACHE as per your recommendation.
2. This was a poor choice of table name. The module can execute API calls in the cron process rather than doing them right away. These API calls are stored in a table originally called "cache_sugestio_calls" where sugestio_cron can retrieve them. This has nothing to do with caching, so I've renamed the table "cron_sugestio_calls" in the latest version.
3. I've added @file annotations to all code files.

zzolo’s picture

Component: Miscellaneous » miscellaneous
Status: Needs review » Postponed

Hi. Please read all the following and the links provided as this is very important information about your CVS Application:

Drupal.org has moved from CVS to Git! This is a very significant change for the Drupal community and for your application. Please read the following documentation on how this affects and benefits you and the application process:
Migrating from CVS Applications to (Git) Full Project Applications

  • The status of this application will be put to "postponed" and by following the instructions in the above link, you will be able to reopen it.
  • Or if your application has been "needs work" for more than 5 weeks, your application will be marked as "closed (won't fix)". You can still reopen it, by reading the instructions above.
avpaderno’s picture

Issue summary: View changes
Status: Postponed » Closed (won't fix)

As per previous comment, I am setting this issue to won't fix.

Since new users can now create full projects, applications have a different purpose and they are handled on a different issue queue. See Apply for permission to opt into security advisory coverage for more information.

avpaderno’s picture

Component: miscellaneous » new project application