Skip to content

Instantly share code, notes, and snippets.

@jnunemaker
jnunemaker / harmony.rb
Created Nov 10, 2009
simple app configuration
View harmony.rb
module Harmony
# Allows accessing config variables from harmony.yml like so:
# Harmony[:domain] => harmonyapp.com
def self.[](key)
unless @config
raw_config = File.read(RAILS_ROOT + "/config/harmony.yml")
@config = YAML.load(raw_config)[RAILS_ENV].symbolize_keys
end
@config[key]
end
@jnunemaker
jnunemaker / gist:4495290
Created Jan 9, 2013
Web And Mobile Revenue Models
View gist:4495290
@jnunemaker
jnunemaker / authentication.rb
Created Jul 15, 2009
a starting point for authentication with mongomapper and rails
View authentication.rb
# include this in application controller
module Authentication
protected
# Inclusion hook to make #current_user and #signed_in?
# available as ActionView helper methods.
def self.included(base)
base.send :helper_method, :current_user, :signed_in?, :authorized? if base.respond_to? :helper_method
end
# Returns true or false if the user is signed in.
@jnunemaker
jnunemaker / database.yml
Created Nov 12, 2009
mongo initializer to load config from database.yml, authenticate if needed and ensure indexes are created
View database.yml
development: &global_settings
database: textual_development
host: 127.0.0.1
port: 27017
test:
database: textual_test
<<: *global_settings
production:
@jnunemaker
jnunemaker / gist:468109
Created Jul 8, 2010 — forked from jseifer/gist:468075
rvm version and git branch/dirtyness in prompt
View gist:468109
function __git_dirty {
git diff --quiet HEAD &>/dev/null
[ $? == 1 ] && echo "!"
}
function __git_branch {
__git_ps1 "(%s)"
}
function __my_rvm_ruby_version {
@jnunemaker
jnunemaker / gist:87fb475129c0601fa72695afe912b02f
Created Sep 7, 2017
sha256 hexdigest to number for use in mapping a string to a partition number (not consistent hashing, but just in simple hash => partition)
View gist:87fb475129c0601fa72695afe912b02f
irb(main):001:0> require "digest"
=> true
irb(main):002:0> Digest::SHA256.hexdigest("asdf")
=> "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b"
irb(main):003:0> Digest::SHA256.hexdigest("asdf").to_i(16)
=> 108959270400061671294053818573968651411470832267186275529291850190552309358907
irb(main):004:0> Digest::SHA256.hexdigest("asdf").to_i(16).to_s(16)
=> "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b"
irb(main):005:0> Digest::SHA256.hexdigest("asdf").to_i(16) % 10
=> 7
View keybase.md

Keybase proof

I hereby claim:

  • I am jnunemaker on github.
  • I am jnunemaker (https://keybase.io/jnunemaker) on keybase.
  • I have a public key whose fingerprint is 2F06 D8EA 2B19 8EAB 40C2 7379 7BF1 39D1 EC76 CA82

To claim this, I am signing this object:

@jnunemaker
jnunemaker / mute_all_unread.js
Last active Feb 3, 2016
terrible github web notifications #protip: command + click any notifications you care about to open in new tab, then run the following in js console to mute the rest
View mute_all_unread.js
$('li.unread button.mute-note').each(function() { this.click() });
@jnunemaker
jnunemaker / blocking_with_check.rb
Created Aug 9, 2013
Kestrel blocking client with signal checks for the kestrel-client gem.
View blocking_with_check.rb
module Kestrel
class Client
class BlockingWithCheck < Blocking
attr_accessor :return_check
def get(*args)
count = 0
while count += 1
@jnunemaker
jnunemaker / Gemfile
Created Mar 11, 2013
Eventually consistent alternate indexes using cassanity.
View Gemfile
source 'https://rubygems.org'
gem 'cassanity'
You can’t perform that action at this time.