Skip to content

Instantly share code, notes, and snippets.

View joshnuss's full-sized avatar
🤘

Joshua Nussbaum joshnuss

🤘
View GitHub Profile
module SecureAttachment
private
def has_secure_attached_file(name, options = {})
has_attached_file name,
options.reverse_merge(
:path => "#{name}/:id/:style/:basename.:extension",
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:s3_protocol => 'https',
:s3_permissions => 'private',
@joshnuss
joshnuss / s3_copy.rb
Last active September 27, 2015 00:58
Copy S3 bucket
require 'right_aws'
old_name = "old-bucket"
new_name = "new-bucket"
s3 = RightAws::S3.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])
old_bucket = s3.bucket(old_name)
new_bucket = s3.bucket(new_name)
@joshnuss
joshnuss / gist:1965021
Created March 3, 2012 08:42
frequency blink
void blink(int frequency) {
int milliseconds = 1000/frequency;
digitalWrite(ledPin, HIGH);
delay(milliseconds);
digitalWrite(ledPin, LOW);
delay(milliseconds);
}
void loop() {
@joshnuss
joshnuss / jquery-mruby.rb
Last active December 16, 2015 18:08
jQuery over ruby in the browser. with mruby and asm.js. Paste code below into http://qiezi.me/projects/mruby-web-irb/mruby.html
# paste me into http://qiezi.me/projects/mruby-web-irb/mruby.html
MrubyJs.window.instance_eval do
if confirm("continue?")
console.log "you chose continue"
food = prompt("What's your favourite food?")
alert "Really?? #{food}?\nThat's gross."
jQuery('body').prepend("<h1>Likes #{food}</h1>")
else
console.log "you chose not to coninue"
end
require 'avalara'
Avalara.username = "user@example.com"
Avalara.password = 'pass'
Avalara.endpoint = 'https://development.avalara.net' # this is the test url, in production use https://rest.avalara.net
invoice = Avalara::Request::Invoice.new(customer_code: 'customer@example.com')
origin = Avalara::Request::Address.new(address_code: 1, line1: '1600 Amphitheatre Pkwy', city: 'Mountain View', region: 'CA', country: 'USA', postal_code: '94043')
destination = Avalara::Request::Address.new(address_code: 2, line1: '1 Infinite Loop', city: 'Cupertino', region: 'CA', country: 'USA', postal_code: '95014')
line = Avalara::Request::Line.new(line_no: 1, destination_code: 2, origin_code: 1, item_code: 'X123', description: 'T-Shirt', qty: 1, amount: 9.99)
@joshnuss
joshnuss / injector.rb
Last active December 19, 2015 03:28
Angular style dependency injector. uses block param names to resolve dependency
class ResolutionError < StandardError; end
module Injector
extend self
@dependencies = {}
def register(dependency, resolution)
@dependencies[dependency] = resolution
end
@joshnuss
joshnuss / load_balancer.exs
Last active December 24, 2015 10:39
A small load balancer. Spawns a pool of local or remote processes and then acts as a wrapper, forwarding messages to the pool either randomly or sequentially.
defmodule LoadBalancer do
def start(mod, func, args, count, strategy // :random) do
pids = spawn_many(count, mod, func, args)
run(strategy, pids)
end
def run(strategy, pids) do
receive do
message ->
@joshnuss
joshnuss / mnesia.exs
Last active March 9, 2024 00:32
Elixir example code for accessing mnesia databases
# define a record, first attribute is considered the key
defrecord User, email: "", first: "", last: ""
# encapsulates mnesia calls
defmodule Database do
def create_schema do
create_table User
end
def find(record, id) do
@joshnuss
joshnuss / prisoners_dilemma.exs
Last active December 26, 2015 22:59
WIP Prisoner's Dilemma Simulation
# Prisoner's Dilemma
defmodule Scoreboard do
use GenServer.Behaviour
def start do
:gen_server.start_link({:local, :scoreboard}, __MODULE__, [], [])
end
def init do
{:ok, []}
@joshnuss
joshnuss / sample.rb
Created November 8, 2013 03:13
Testing
# test starting web-irb with gist param
name = window.prompt("Enter name:")
window.alert("Hello #{name}!")