I've been reading up a lot on A/B testing lately on HN. Since sequential A/B testing is not recommended due to external factors, I'm just curious as to how someone is suppose to split web traffic (say 50/50 without using hardware to balance).
The way A/Bingo handles this is to assign every user a unique ID, and for each test take the MD5 hash of their ID concatenated with the test name. That gives you some big ol' integer. Modulo the number of choices gives you the number of the choice to show them. This is extremely fast, durable, and has very little state, which are nice things to have in an A/B testing algorithm.
Which programming language do you use?<p>Maybe someone has already built a framework for you to use?<p>I personally used ABingo for Ruby on Rails (<a href="http://www.bingocardcreator.com/abingo" rel="nofollow">http://www.bingocardcreator.com/abingo</a>), Visual Website Optimizer (<a href="http://visualwebsiteoptimizer.com" rel="nofollow">http://visualwebsiteoptimizer.com</a>) and Google Website Optimizer (<a href="http://www.google.com/websiteoptimizer" rel="nofollow">http://www.google.com/websiteoptimizer</a>) for any technology.<p>The advantage of running a technology specific tool is mainly because of performance. Most technology-agnostic tools execute a javascript on your page to be able to execute the A/B testing logic where ABingo for example is executed on the server side (no additional http request)<p>What generic tools give you though is the ability to change your tests without changing your code.