Skip to content

Instantly share code, notes, and snippets.

@hamiltondanielb
hamiltondanielb / gist:5aad59711ebc6dd1c39f
Created June 18, 2014 17:11
Self Describing numbers
filename = ARGV[0]
file = File.new(filename, "r")
while (line = file.gets)
array = line.scan(/./)
new_array = Array.new
array.length.times do |var|
new_array << array.count(var.to_s).to_s
end
if new_array.eql? array
//Knapsack algorithm
//==================
// wikipedia: [Knapsack (0/1)](http://en.wikipedia.org/wiki/Knapsack_problem#0.2F1_Knapsack_Problem)
// Given a set `[{weight:Number, benefit:Number}]` and a capacity,
// find the maximum value possible while keeping the weight below
// or equal to the capacity
// **params**:
// `capacity` : Number,
// `items` : [{w:Number, b:Number}]
// **returns**:
<!DOCTYPE html>
<html>
<head>
<title>Decoding Morse Code With JavaScript</title>
<style type="text/css">
div.output {}
div.output p.message {
@hamiltondanielb
hamiltondanielb / dev_setup.sh
Last active August 29, 2015 14:06
Dev Setup
#!/bin/bash
echo 'Running Dev setup'
if [ "$(uname)" == "Darwin" ]; then
# Do something under Mac OS X platform
textMessage="--- OSX setup Summary ---\n"
if which xcode-select >/dev/null; then
textMessage=$textMessage"--not installing xcode-select, already installed \n"
else
textMessage=$textMessage"--installing xcode-select\n"
sudo xcode-select --install
@hamiltondanielb
hamiltondanielb / gist:756520dbebfb9d0d335f
Created May 13, 2015 18:24
ES6 array.find transpiled to ES5
Array.prototype.find = Array.prototype.find || function(predicate, thisArg) {
for (var i = 0; i < this.length; ++i) {
if (predicate.call(thisArg, this[i], i, this) === true) {
return this[i];
}
}
return undefined;
};
@hamiltondanielb
hamiltondanielb / gist:a174bc415fdd71966de1
Last active December 5, 2022 12:52
ES6 String contains, starts with, ends with to ES5
String.prototype.contains = String.prototype.contains || function(str) {
return this.indexOf(str) >= 0;
};
String.prototype.startsWith = String.prototype.startsWith || function(prefix) {
return this.indexOf(prefix) === 0;
};
String.prototype.endsWith = String.prototype.endsWith || function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) >= 0;
@hamiltondanielb
hamiltondanielb / gist:0ed7e0f6d6a93afb5143
Created May 13, 2015 19:10
ES6 Date isEqual to ES5
Date.prototype.isEqual = Date.prototype.isEqual || function(other) {
if (other && typeof other.getTime === 'function') {
return this.getTime() === other.getTime();
} else {
return false;
}
};
@hamiltondanielb
hamiltondanielb / gist:0a9352879c4ed2ebb399
Created May 13, 2015 19:12
ES6 array Flatten to ES5 (reduce)
Array.prototype.flatten = Array.prototype.flatten || function() {
var flattened = [];
for (var i = 0; i < this.length; ++i) {
if (Array.isArray(this[i])) {
flattened = flattened.concat(this[i].flatten());
} else {
flattened.push(this[i]);
}
}
@hamiltondanielb
hamiltondanielb / docker
Created August 17, 2015 16:49
Docker Information
#### Run within Docker
For now we have to build the docker image locally. Late I will get it hosted
###### Building your image
Go to the directory that has your Dockerfile and run the following command to build a Docker image. The -t flag lets you tag your image so it’s easier to find later using the docker images command:
`docker build -t hamiltondanielb/record-web-react .`
Your image will now be listed by Docker:
`docker images`
@hamiltondanielb
hamiltondanielb / auth.js
Created July 14, 2016 16:34
React Authorization
function isLoggedIn() {
return localStorage.getItem('id_token');
}
export function requireAuth(nextState, replace) {
if (!isLoggedIn()) {
replace({
pathname: '/login',
state: { nextPathname: nextState.location.pathname }
});