Skip to content

Instantly share code, notes, and snippets.

Keith Rosenberg netpoetica

Block or report user

Report or block netpoetica

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 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];
@netpoetica
netpoetica / doif.js
Last active Dec 9, 2015
doif (pronounced "doof") JavaScript subset
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();
@netpoetica
netpoetica / .eslintrc.js
Last active Feb 22, 2017 — forked from dmnsgn/.eslintrc.js
.eslintrc Google JavaScript Style Guide (eslint v0.24.1)
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.
@netpoetica
netpoetica / gnuplot-requests-per-ms
Last active Aug 29, 2015
gnuplot script for web requests / time
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
@netpoetica
netpoetica / gist:1a0a6652fa6c22b76951
Created Dec 26, 2014
Node v0.11.14 Memory Usage
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
@netpoetica
netpoetica / Switch Case is Not the JS Way
Last active Jan 13, 2018
Use functions + dictionary instead of Switch/Case (illustrative purposes)
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();
@netpoetica
netpoetica / propDeepExists
Last active Aug 29, 2015
Check if a property exists - for use in debugger only. Very slow operation
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;
}
@netpoetica
netpoetica / decoupling-dependencies
Created Oct 16, 2014
Even more decoupled than the original - pass dependencies in as args so that they can be easily changed later
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.
@netpoetica
netpoetica / SupplementToRedemptionFromCallbackHell
Created Jul 15, 2014
An Example of Why Promises and Generators are Important
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');
You can’t perform that action at this time.