Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am bregenspan on github.
  • I am benregenspan (https://keybase.io/benregenspan) on keybase.
  • I have a public key ASBLpQ0uaOXi-hamZxrh7-wK1nxOTmxl1tZ-seoYYtZ4Rwo

To claim this, I am signing this object:

@bregenspan
bregenspan / diveTo.js
Last active December 17, 2020 02:17
Recursively dive() to deeply-wrapped components via Enzyme
import merge from 'lodash/merge';
/**
* Given an Enzyme ShallowWrapper and component identifier, dives() down until the
* specified component is the root component.
*
* @param { Enzyme.ShallowWrapper } shallowWrapper - wrapper to dive into
* @param { string } name of component to dive for (should match constructor name).
* @param { object= } options to pass to dive()
*/
# Install NPM dependencies:
npm install babel-generator@6.26.0 babel-traverse@6.26.0 babylon@6.18.0
# Download Facebook's unminified SDK
wget https://connect.facebook.net/en_US/sdk/debug.js
# Run
node split-facebook-debug-js.js
@bregenspan
bregenspan / gist:33f7791a78f6e4115af5
Created September 29, 2015 13:41
Sort Webpack analyze tool chunk list (e.g. http://webpack.github.io/analyse/#chunk/31) by size
var table = document.querySelectorAll('tbody')[1];
Array.prototype.slice.apply(table.querySelectorAll('tr')).forEach(function (el) {
var size = el.querySelector('td:nth-of-type(3)').innerHTML;
var num = parseInt(size,0);
if (size.indexOf('KiB') > -1) {
num = num * 1024;
}
el.setAttribute('data-size', num);
})
@bregenspan
bregenspan / AMDRequireDependency.js.patch
Created July 8, 2015 18:00
AMDRequireDependency.patch
diff --git a/lib/dependencies/AMDRequireDependency.js b/lib/dependencies/AMDRequireDependency.js
index 1f183e1..526531b 100644
--- a/lib/dependencies/AMDRequireDependency.js
+++ b/lib/dependencies/AMDRequireDependency.js
@@ -47,14 +47,14 @@ AMDRequireDependency.Template.prototype.apply = function(dep, source, outputOpti
source.insert(depBlock.arrayRange[0] + 0.9, "var __WEBPACK_AMD_REQUIRE_ARRAY__ = ");
source.replace(depBlock.arrayRange[1], depBlock.functionRange[0] - 1, "; (");
source.insert(depBlock.functionRange[1], ".apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));");
- source.replace(depBlock.functionRange[1], depBlock.outerRange[1] - 1, "}" + wrapper[1]);
+ source.replace(depBlock.functionRange[1], depBlock.outerRange[1] - 1, "}.bind(this)" + wrapper[1]);
@bregenspan
bregenspan / gist:e874f413bdcb62933a80
Created November 23, 2014 18:09
WD.js JS condition asserter that retries on-error.
/* Version of wd.asserters.jsCondition that retries on-error.
This is useful for cases where you need to assert a condition at a time when the page might
be reloading -- in such a case, the assertion could reach the browser at a time when the document
is not yet ready, triggering an error. This catches the error and retries.
Usage:
> browser.waitFor(jsConditionWithRetries('window.FOOBAR'), 5000, 500);
(Requires Selenium Server >= 2.44.0)
@bregenspan
bregenspan / circle.yml
Created May 8, 2014 22:23
Testing a Circle CI build with Sauce Labs
## Customize the test machine
machine:
environment:
SAUCEUSER: [USERNAME HERE]
SAUCEKEY: [KEY HERE]
dependencies:
post:
- wget https://d2nkw87yt5k0to.cloudfront.net/downloads/sc-latest-linux.tar.gz && tar -xvf sc-latest-linux.tar.gz
@bregenspan
bregenspan / PanopticonSimulator.js
Last active December 20, 2015 14:29
Go to http://360gigapixels.com/tokyo-tower-panorama-photo/ , open a Javascript console (Ctrl + Shift + J in Chrome), and run this, to simulate the terrifying surveillance panopticon that looms over us all.
/* Panopticon Simulator v0.1
Scripts http://360gigapixels.com/tokyo-tower-panorama-photo/ to convey a
deep, Enemy Of The State starring Will Smith-reminescent message regarding
the surveillance state and the voyeurism of gigapixel photos.
*/
var people = [
[-7.510113307350065,14.652493577797886,0.5],
[56.83548684296012,16.498978246091596,0.5],
@bregenspan
bregenspan / .gitconfig
Created May 25, 2013 00:53
Git merge config to use Meld as merge tool (with the middle pane representing the merge target, unlike the crappy default where middle pane is BASE)
[merge]
tool = mymeld
conflictstyle = diff3
[mergetool "mymeld"]
cmd = meld --diff $LOCAL $MERGED $REMOTE
@bregenspan
bregenspan / gist:5637609
Created May 23, 2013 16:59
Android Studio Logcat Filter to exclude spammy messages
^((?!wpa_supplicant|NetStatUtil).*)$