A generic voting API based on voting.module.
Completely rewritten version of the votingapi with new hooks for other modules and a streamlined system for casting, changing, and retrieving votes. More to come.
Fixed goofy typo that resulted in a bad raw_votes array. (http://drupal.org/node/39324) Thanks, Budda!
39333 and 39334. Thanks again, Budda!
Major revisions. Votingapi now supports:
Single or multi-criteria voting on arbitrary content
Multiple types of votes (percentage votes, up-or-down voting, etc)
Automatic calculation and caching of voting results data for efficient node sorting/filtering
Hooks for other modules to implement additional voting types, or add new calculated data based on raw voting scores (adjusted_averages based on user karma, etc)
Added warning about API changes from pre-1.5 versions.
Show-stopping bug that broke simple vote scenerios
http://drupal.org/node/41433 -- fixes incorrect defaults for value_type and tag if a vote object is submitted, but the  properties are never set.
Whoops. (double-set a property. Fixed.)
Added the singular votingapi_get_voting_result(), allowing a single aggregate value to be retrieved rather than an array of aggregate functions.
http://drupal.org/node/43395 -- allow _get_raw_votes() to use an array of uids. Thanks, klimbermann!
Fixes for <a href="http://drupal.org/node/44426">#44426</a> and <a href="http://drupal.org/node/44424">#44424</a>. Thanks, Xteven!
Fixed a silly typo that kept fully-qualified recalculation requests from completing.
Added a convenience function to retrieve a single user's vote by type/nid/tag/etc. Someday, these helper bits should probably be consolidated into a streamlined set of functions, but for now it works.
Cleaned up an incorrect comment, added two utility functions.
Added an addition $op -- 'post calculate' -- for responses to vote calculations.
Also added additional params ($content_type and $content_id) on the end of the 'calculate' op for cleaner filtering of incoming calculations.
Fun with utf8.
A first pass at explaining VotingAPI's inner workings. More to come soon -- this explains the basic flow, though it doesn't delve into complex issues like multicriteria voting or different value_types.
Incorrect data was being left in the cache array for post calculate ops. Fixed.
Made IP logging more robust for proxied visitors, added additional function to retrieve all votes for a piece of content, keyed by uid:

votingapi_get_content_votes('node', 1);

Thanks to Budda for the requests