Skip to content

Instantly share code, notes, and snippets.

@hamiltondanielb
hamiltondanielb / gist:63f2644b199d63f00725abb37b54c7a5
Last active August 30, 2017 20:11
Javascript IsUnique String
function isUnique( s ) {
var chars = {}
var dup = true;
for (var i = 0; i < s.length; ++i) {
if ((s[i] in chars)) {
return false;
}
chars[s[i]] = 1;
}
@hamiltondanielb
hamiltondanielb / guidgen.js
Created October 3, 2016 20:35
Guid Generator
function s4(){
return Math.floor((1+ Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
module.exports ={
guidWithDash: function() {
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
@hamiltondanielb
hamiltondanielb / calc
Created August 26, 2016 20:21
Calculator
function Calculator() {
}
Calculator.prototype.calc = function(str) {
var signs = ["*", "+","/"]; // signs in the order in which they should be evaluated
var funcs = [multiply, add, divide]; // the functions associated with the signs
var tokens = str.split(" "); // split the string into "tokens" (numbers or signs)
console.log(tokens)
for (var round = 0; round < signs.length; round++) { // do this for every sign
for (var place = 0; place < tokens.length; place++) { // do this for every token
@hamiltondanielb
hamiltondanielb / routes.js
Created July 14, 2016 16:35
React Authorization
import React from 'react';
import { Route, IndexRoute } from 'react-router';
import { requireAuth } from './utils/auth';
import App from './components/App';
import Login from './containers/LoginPage';
import TeamPage from './containers/TeamPage'; // eslint-disable-line import/no-named-as-default
import NotFoundPage from './components/NotFoundPage.js';
export default (
@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 }
});
@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 / 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 / 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: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: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;
};