Switch branches/tags
Nothing to show
Commits on Jun 13, 2013
  1. Upgraded the default hash algorithm

    After extensive tests, it is clear that the simplistic hashing
    algorithm is better in most cases. The Murmur Hash 3 creates a
    better distribution with more than 2 test groups, but this new
    simplistic hash should be sufficient as a base case.
    committed Jun 13, 2013
Commits on May 5, 2013
  1. Pass the "id" to the callbacks.

    When we call the callback, we now pass it both the user's ID (key) as
    well as the group number. The key is either the "key" named parameter,
    the generated value from `getId()`, or the first non-function value
    passed into the labrats()` function.
    committed May 5, 2013
Commits on Apr 21, 2013
Commits on Apr 12, 2013
  1. Accept `hash` function as a named parameter

    A hash function can be given as a parameter in order to specify how
    key values (as strings) are converted into numbers (than can then be
    divided into the different test buckets). This overrides the global
    configuration setting.
    committed Apr 12, 2013
Commits on Apr 11, 2013
  1. Add ability to slice test pool into discreet pools.

    If you don't want users to be involved with more than one test group,
    then you can takes a pool (specified by the 'name' parameter) into a
    number of slices. Each slice can have one or more groups.
    committed Apr 11, 2013
Commits on Apr 8, 2013
  1. Merge pull request #1 from nopolabs/master

    fixed missing quotes after flashy-blue
    committed Apr 8, 2013
Commits on Apr 7, 2013
  1. Expanded on the key distribution with diagrams

    Using the "multigroup" example, I explain how the distribution is
    likely to overlap and put some people into multiple tests. While
    I think this is a "good thing", it may not be what some people
    committed Apr 7, 2013
  2. Expanded the API documentation

    The comments from the plugin source code are now more clear, and are
    written to the end of the README file to make it easier to render on
    committed Apr 7, 2013
Commits on Apr 6, 2013
  1. Created a re-distribution test example.

    What if you are running concurrent tests? How many people will
    end up being a test subject for more than one experiment?
    This example attempts to show this sort of re-distribution.
    We take 1,000 generated GUIDs and put them in two separate tests and
    visually display the results.
    committed Apr 6, 2013
  2. Add a "control group" feature

    Instead of splitting the entire population into test groups, you can
    create a testing pool of a particular size. The test groups will be
    found from user keys in this pool, and the rest may form a "control"
    This allows you to have a two 5% test groups with a 90% control.
    Each of these three groups can get a callback function.
    committed Apr 6, 2013
Commits on Apr 5, 2013
  1. Restore numGroup setting when overridden.

    While I'm not fond of a global "number of groups" setting, if it is
    set, but overridden with a specific list of callback functions, we
    reset it back to its original value.
    committed Apr 5, 2013
  2. Experiment show-casing default hashing function

    Our hashing function (that we use to split users into test buckets based
    on keys that might be similar to GUIDs) is pretty simplistic. But the
    goal of uniform distribution may or may not work well.
    In this experiment, we create thousands of GUIDs and use our hashing
    function as well as a Murmur Hash function and graphically show how they
    committed Apr 5, 2013
  3. Optimized the distribution of default user IDs

    If a "key" isn't specified for a user account, then we can just randomly
    assign the user account to a test bucket without resorting to hashing
    However, since our default hashing function is pretty simple, we
    document ways to use other routines.
    committed Apr 5, 2013
  4. Made the numGroups an optional parameter

    For the $.labrats() function, we can figure out how many possible
    groups there are based on the number of functions given, so this
    can be optional.
    Obviously, for the $.group() and $.isGroup() functions, that value
    must still be specified.
    committed Apr 5, 2013
  5. Made the user identification key optional.

    If the user 'key' value is not specified, then a key is retrieved
    from the brower's cookie jar. If it isn't there, a unique ID is
    created (and put back into the cookie jar).
    committed Apr 5, 2013
Commits on Apr 4, 2013
  1. First attempt at a plugin with fairly flexible API

    Created a $.labrats() function that can dispatch to multiple callback
    functions based on a given "key" that represents a user account.
    Exposed all of the supporting functions for fine-grain control.
    committed Apr 4, 2013