View bubbleSort.js
function bubbleSort (arr) {
var left,
right,
swapped;
do {
swapped = false;
for (var i = 0; i < arr.length - 1; i++) {
left = arr[i];
right = arr[i + 1];
View doif.js
//
// raw whitepaper for functional interface/subset of JS that eliminates logical operations
// similar to IFTTT. Based off of this image/site: https://ifttt.com/products
//
function doIf(cond, cb){
if(cond instanceof Array){
doIfEach(cond, cb);
} else if(cond === true && typeof cb === 'function'){
cb();
View .eslintrc.js
{
// http://eslint.org/docs/rules/
"env": {
"browser": true, // browser global variables.
"node": false, // Node.js global variables and Node.js-specific rules.
"worker": false, // web workers global variables.
"amd": false, // defines require() and define() as global variables as per the amd spec.
"mocha": false, // adds all of the Mocha testing global variables.
"jasmine": false, // adds all of the Jasmine testing global variables for version 1.3 and 2.0.
View gnuplot-requests-per-ms
#!/bin/sh
# RESOURCES:
# Blog - http://www.gnuplotting.org/
# Blog - http://gnuplot-surprising.blogspot.com/
# Colors, Line Types - http://kunak.phsx.ku.edu/~sergei/Gnuplot/line_point_types.html
# Linespoints - http://www.gnuplotting.org/tag/linespoints/
# Gnuplot and ab - http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/
gnuplot << EOF
reset
View gist:1a0a6652fa6c22b76951
➜ Desktop node test2.js
==================================
Empty Node Module Memory Usage
==================================
RSS: 16.273 MB and Heap: 3.466 MB of 6.191 MB total
RSS: 16.316 MB and Heap: 3.505 MB of 6.191 MB total
RSS: 16.316 MB and Heap: 3.512 MB of 6.191 MB total
RSS: 16.316 MB and Heap: 3.516 MB of 6.191 MB total
RSS: 16.316 MB and Heap: 3.520 MB of 6.191 MB total
RSS: 16.316 MB and Heap: 3.524 MB of 6.191 MB total
View gist:4d16382c3cfbf6db0f58
➜ Desktop node test2.js
==================================
Empty Node Module Memory Usage
==================================
RSS: 11.828 MB and Heap: 2.116 MB of 3.894 MB total
RSS: 11.867 MB and Heap: 2.141 MB of 3.894 MB total
RSS: 11.875 MB and Heap: 2.147 MB of 3.894 MB total
RSS: 11.879 MB and Heap: 2.151 MB of 3.894 MB total
RSS: 11.883 MB and Heap: 2.155 MB of 3.894 MB total
RSS: 11.887 MB and Heap: 2.158 MB of 3.894 MB total
View Switch Case is Not the JS Way
// Setup
function onGet(){ /* .. */ }
function onDelete(){ /* .. */ }
function onPost(){ /* .. */ }
var onPut = onPost; // Sharing functionality.
// Bad
function processRequest(method){
var requestMethod = method.toLowerCase();
View propDeepExists
// Note: this function is evil, and probably should never be used.
// It may be useful for when you are working in the console/debugger
// and need to analyze some large object. Not for production.
// http://jsperf.com/check-if-deep-property-exists-with-willnotthrow
function propDeepExists(target, propPath){
try {
var result = eval("target." + propPath);
} catch(e){
return false;
}
View decoupling-dependencies
document.addEventListener("DOMContentLoaded", function(event) {
/*
Later you can easily change this to any other PubSub library you like.
var _pubSub = PubSub;
or you can even wrap it to define your own API. This way, later on
you can still continue to use _ps.sub and _ps.pub even if you change
out the library defining that behaviour. Let's go with the latter.
View SupplementToRedemptionFromCallbackHell
// An Example of Why Promises and Generators are Important
// Based on this awesome video: https://www.youtube.com/watch?v=hf1T_AONQJU
// You can just copy and paste this code into your console to see it in action
var App = function App(){
// Named anonymous functions for clear picture
// of the call stack in the error stack trace
this.asyncError = function myAsynchronousError(){
throw new Error('Asynchronous error');