Skip to content

Instantly share code, notes, and snippets.

@mattm
mattm / normal-dist.r
Last active August 29, 2015 14:08
Normal Distribution as Approximation to Binomial Distribution
experiments = 1000
visitors = 250
conversion_rate = 0.3
expected_conversions = visitors * conversion_rate
expected_sd = sqrt( visitors * conversion_rate * ( 1 - conversion_rate ) )
sd_for_axis_range = 4.5
axis_divisions = 5
results = vector()
def self.search(options = {})
length_criteria = (options[:length] == 'all' or options[:length].blank?) ? '' : 'and LENGTH(name) = ' + options[:length] + ' '
registered_criteria = options[:order] == 'views DESC' ? "and registered = false " : ''
viewable_criteria = "and viewable_at < '" + Time.now.utc.to_s(:db) + "' "
category_criteria = options[:category] != 'all' ? 'and category = "' + options[:category].downcase + '" ' : ''
public_criteria = options[:public_only] ? 'and public = true ' : ''
paginate :per_page => DOM_PER_PAGE, :page => options[:page],
## Favorite.rb
class Favorite < ActiveRecord::Base
belongs_to :user
attr_accessible :name
validates_presence_of :name
validates_presence_of :user
validates_format_of :name, :with => /\A[a-z]+\Z/
before_create :ensure_unique_for_this_user
## Factory
Factory.define :promo, :class => Promotion do |promo|
promo.code "cm"
promo.quantity 100
promo.remaining 100
promo.description "for chris and mike"
end
## Spec
The Javascript:
function stripeResponseHandler(status, response) {
if (response.error) {
$("#stripe_error").html(response.error.message);
$('input[type=submit]').attr('disabled', false)
} else {
$("#subscription_stripe_card_token").val(response.id);
$("#new_subscription").get(0).submit();
}
<?php
echo "Hello world!";
@mattm
mattm / lint.rake
Last active December 1, 2015 14:04
namespace :lint do
task run: :environment do
js_dir = "#{Rails.root}/app/assets/javascripts"
Dir.chdir(js_dir)
# No directories and no application.js
files = Dir.glob('*').delete_if{ |f| File.directory?(f) || f == 'application.js' }
files.each do |file|
puts file
businessPluginsNudge: {
datestamp: '20151119',
variations: {
drake: 50,
nudge: 50
},
defaultVariation: 'drake'
}
// Here, the user is assigned one of the variations for this test
// so variation will be either `drake` or `nudge`
var variation = abtest( 'businessPluginsNudge' );
// We can then vary what the user sees based on the variation
// he or she was assigned to
if ( variation === 'drake' ) {
// Do something
} else {
// Do something else
var variation = abtest( 'silverPlan' );