Skip to content

Instantly share code, notes, and snippets.

Currently looking, ideally for a good cause!

David Calhoun davidcalhoun

Currently looking, ideally for a good cause!
Block or report user

Report or block davidcalhoun

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View simple-script-loader.js
function initSyntaxHighlighting() {
// code
function loadScripts() {
const scripts = [
src: '',
callback: initSyntaxHighlighting
davidcalhoun / azimElevToXY.js
Last active Nov 21, 2019
satellite azim,elev to cartesian coords
View azimElevToXY.js
const elevToHypLength = (elev, canvasSize) => {
return canvasSize - (canvasSize * elev) / 89.99999999;
const deg2rad = deg => (Math.PI * 2 * deg) / 360;
const toFixedFloat = (num = 0, digitsAfterDecimal = 0) => parseFloat(num.toFixed(digitsAfterDecimal))
const getXY = (azim, elev, canvasSize) => {
const hyp = elevToHypLength(elev, canvasSize / 2);
View image-progress.js
/* Keeps track of x/y "progress" as the user mouses over an image */
imageElement.addEventListener('mousemove', e => {
const target =;
const rect = target.getBoundingClientRect();
const xProgress = Math.floor(((e.clientX - rect.x) / rect.width) * 100);
const yProgress = Math.floor(((e.clientY - rect.y) / rect.height) * 100);
/* 0,0 = mouse over top left of image, 100/100 = mouse over bottom right of image */
console.log(xProgress, yProgress);
}, false)
davidcalhoun / find-occurrances.js
Last active Dec 16, 2017
Find the most frequent occurrences in a list with JavaScript
View find-occurrances.js
// List of items to find occurrences in.
const list = ['Tom', 'Fluffy', 'Tom', 'Bella', 'Chloe', 'Tom', 'Chloe'];
// Creates a Map (hash) of occurrence numbers.
const counts = list.reduce((accumulator, val) => {
// Initialize entry if needed.
if (!accumulator.has(val)) accumulator.set(val, 0);
// Increment value.
accumulator.set(val, accumulator.get(val) + 1);
View ES6

From Learncode YouTube: Part 1, Part 2

Transpile to ES5

  • - most mainstream
  • Traceur - competitor


Destructuring: Objects

var foo = {
davidcalhoun / pascals-triangle.js
Last active Dec 14, 2017
pascal's triangle in javascript
View pascals-triangle.js
function pt(lineLimit, lines) {
// Seed the first value.
if(!lines || lines.length === 0) return pt(lineLimit, [[1]]);
var newLine = [];
var lastLine = lines[lines.length - 1];
// Fill out inner values
for(var i=1, len=lastLine.length; i<len; i++) {
newLine.push(lastLine[i - 1] + lastLine[i]);
View gist:59d8f7d15835938baff6
// one: passes up the error from two()
function one(cb){
two(function(err, data){
if(err) return cb('one ' + err);
return cb(null, data);
// two: passes up the error from three()
function two(cb){
davidcalhoun / gist:fd2de90593c39d21c176
Created Jun 30, 2014
june 30 filtered web dev links
View gist:fd2de90593c39d21c176
'A Guide to the Why and How of Full-Stack JavaScript:',
'RT @ghostalk_: We were joined by @izs for episode 19 of Ghostalk and talked about the origin of #npm #npmjs',
'building a better, faster and more secure web... HTTPS Everywhere: - our Google I/O talk on the why and the how!',
'Progressively Enhanced Single-Page Navigation +@jmmcduffie',
'DevTools Digest for Chrome 35: CSS quick-search, editor updates, network request filters, shadow DOM editability:',
'@paul_irish Hi! You shared my article on min-content; I thought you might find my piece on content-width appealing:',
'Chrome is committed to the mobile web. Here\'s what Chrome is doing to make the mobile web more awesome:',,
'RT @Paul_Kinlan: A great talk by @jennylg: Design principles for a better mobile web -',
'ngActivityIndicator.js: Preloaders for
View gist:11388335
[ 'RT @businessinsider: Apple may launch two new MacBook Air models tomorrow',
'RT @willienelson: Willie getting his black belt',
'RT @hnycombinator Lessons learned from a cancelled project at GitHub (cmts )',
'RT @engadget: Worth repeating: If you\'re using Windows XP and Internet Explorer, you\'re at risk:',
'RT @conflitti: Just ran into @zeldman after day 1 of #aeabos Loved every minute of it. Thank you! That pic is for you @alisonpopp http://t.…',
'RT @drunk_casey: @marcoarment @siracusa Or this one?',
'RT @drunk_casey: @marcoarment @siracusa How about this one?',
'RT @irwindigital: @marcoarment John’s “relatively speaking” approval T-shirt. cc: @siracusa',
'RT @sippndipp: @dalmaer Hell yeah! @9elements has mullets deep in their DNA',
'Advanced bionic limbs could redefine disabilities
View gist:11068525
[ 'GIF of epic',
'RT @AppleVis: New Guide: Understanding and Using VoiceOver\'s Commanders -',
'An Introduction to the MEAN Stack:',
'320° Licht: A Repurposed 112-Meter High Gas Tank Converted into a Cathedral of Light',
', you had one job: display conversations in chronological order.',
'Dollyzoom.js - - for the filmmaker in you.',
'Minicron is a system to manage and monitor (distributed) cron jobs: - nice project / handy tool!',
'RT @simevidas: With ES6 Set/Map in IE11, Safari remains the only browser that doesn\'t support them.\n\nCode demo:',
'RT @razvancaliman: CSS Shapes Editor in Brackets - A lot of time and work went into building this. I hope you find i…',
'RT @letoams: first TLS 1.3 draft RT @botstandar: [RFC-DRAFT] The Transport Layer Security (TLS) Protocol Version
You can’t perform that action at this time.