Skip to content

Instantly share code, notes, and snippets.

@netpoetica
netpoetica / machine.js
Created November 29, 2020 18:10
Generated by XState Viz: https://xstate.js.org/viz
const fetchMachine = Machine({
id: 'game',
initial: 'initialize',
context: {
currentActor: undefined,
enemy: undefined,
player: undefined
},
states: {
initialize: {
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 December 9, 2015 19:51
doif (pronounced "doof") JavaScript subset
//
// 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 February 22, 2017 00:52 — forked from dmnsgn/.eslintrc.js
.eslintrc Google JavaScript Style Guide (eslint v0.24.1)
{
// 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 August 29, 2015 14:12
gnuplot script for web requests / time
#!/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 December 26, 2014 01:21
Node v0.11.14 Memory Usage
➜ 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
@netpoetica
netpoetica / gist:4d16382c3cfbf6db0f58
Created December 26, 2014 01:00
Node Memory Growing
➜ 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 January 13, 2018 08:26
Use functions + dictionary instead of Switch/Case (illustrative purposes)
// 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 August 29, 2015 14:10
Check if a property exists - for use in debugger only. Very slow operation
// 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 October 16, 2014 18:53
Even more decoupled than the original - pass dependencies in as args so that they can be easily changed later
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.