Skip to content

Instantly share code, notes, and snippets.

View jrallison's full-sized avatar

John Allison jrallison

View GitHub Profile
@jrallison
jrallison / gist:1264762
Created October 5, 2011 15:40
Mixpanel server events
# In controllers
mixpanel("event name")
# Anywhere else
Mixpanel.new(:event => "event name", :id => some_user.id, :ip => ???).track!
# ApplicationController
def mixpanel(event, opts = {})
unless current_user.admin? || masquerading?
opts = {:event => event, :id => current_user.id, :ip => request.remote_ip}.merge(opts)
@jrallison
jrallison / gist:977391
Created May 17, 2011 21:02
Everything you need to know about rollout

1) Rollout configuration is in models

/web/models/lib/models/config/rollout.rb

$rollout = Rollout.new(REDIS)

$rollout.define_group(:admin) do |user|
  user.admin?
end
# Model
class Model < ActiveRecord::Base
default_scope where(:hidden => false)
def hide!
update_attributes!(:hidden => true)
end
end
@jrallison
jrallison / parameterized_cache.html.erb
Created January 20, 2011 19:22
Easily mix dynamic content with fragment caching
<% @somethings.each do |something| %>
<%= cache("somethings:#{something.id}", :time => something.created_at) do %>
<div class="something">
<%= render "somethings/expensive_calculation" %>
<!-- time.strftime(...) calculated dynamically every time -->
<p class="timestamp"><%= time.strftime("%B %d, %Y") %></p>
</div>
<% end %>
<% end %>
var image = new Image();
image.src = url;
image.onload = function() {
// Display image
};
Nameserver trace for challenge.gov:
Looking for who is responsible for root zone and followed d.root-servers.net.
Looking for who is responsible for gov and followed f.usadotgov.net.
Looking for who is responsible for challenge.gov and followed a.ns.zerigo.net.
Nameservers for challenge.gov:
c.ns.zerigo.net returned (SERVFAIL)
a.ns.zerigo.net returned (SERVFAIL)
def first_n_primes(n)
return [] if n <= 0
@primes ||= [2]
x = @primes.last + 1
until @primes.length >= n
prime = true
@primes.each do |p|
jQuery("#pages ul li").hover(function(){
jQuery(this).stop(true).animate({
marginTop: "10px"
}, 250);
}, function(){
jQuery(this).stop(true).animate({
marginTop: "0px"
}, 250);
});