Skip to content

Instantly share code, notes, and snippets.

View quantizor's full-sized avatar
🦾
👁️👄👁️

Evan Jacobs quantizor

🦾
👁️👄👁️
View GitHub Profile
@quantizor
quantizor / form.html
Created July 28, 2016 04:58
"Backward" selector example
<style>
form {
display: flex;
}
label {
order: 1;
}
input {
@quantizor
quantizor / parallelize.sh
Created September 26, 2016 03:03
parallelize commands
#!/bin/bash
# adapted from http://stackoverflow.com/questions/10909685/run-parallel-multiple-commands-at-once-in-the-same-terminal
# but this version works in Ubuntu + Windows Subsystem for Linux
PID_LIST=""
for cmd in "$@"; do {
echo "Process \"$cmd\" started";
eval $cmd & pid=$!
@quantizor
quantizor / react-redux.js
Last active October 17, 2016 16:33
react-redux connect() mock for Jest
/*
place this somewhere above where your test files are in a directory called __mocks__, e.g.
__mocks__/
react-redux.js
src/
myTestFile.spec.js
Requires an updated version of node with ES6 Proxy support.
*/
@quantizor
quantizor / keybase.md
Created December 12, 2016 17:03
Keybase Proof

Keybase proof

I hereby claim:

  • I am yaycmyk on github.
  • I am glitterbyte (https://keybase.io/glitterbyte) on keybase.
  • I have a public key ASCA4vHIMvP3KeypJPEbAUcO1nFRCFuOwAbSBvSdK5OUBwo

To claim this, I am signing this object:

@quantizor
quantizor / elasticsearch-bulk-ingestion.md
Last active December 27, 2016 17:57
ElasticSearch Bulk Ingestion Tips

ElasticSearch Bulk Ingestion Tips

Change the IPs to the cluster's master node (has a star next to the name in kibana.) Most of the suggestions below come from the official Elastic ingestion performance guidelines.

Before starting

Disables throttling of segment merges in Lucene.

If you are doing a bulk import and don’t care about search at all, you can disable merge throttling entirely. This will allow indexing to run as fast as your disks will allow.

@quantizor
quantizor / elastic_cheat_sheet.md
Last active January 6, 2017 00:42
Elastic Cheat Sheet
@quantizor
quantizor / blah.js
Created January 10, 2017 21:27
JS to get the slack emoji contributors by handle
/* Execute this on https://{your-team}.slack.com/customize */
Array.from(document.querySelectorAll('.emoji_row a[href^="/team"]')).reduce((counts, node) => {const name = node.getAttribute('href').slice(6);return (counts[name] = (counts[name] || 0) + 1), counts}, {});

Notes

A loop isn't needed here at all. Just tail call parseDeclarationFlags as needed to replay the logic.

function parseDeclarationFlags(): StatementFlags {
    switch (token) {
        case SyntaxKind.VarKeyword:
@quantizor
quantizor / events.json
Created January 28, 2018 02:16
example profiling plugin gist
This file has been truncated, but you can view the full file.
[{"ts":210342517955,"pid":84888,"tid":84888,"ph":"I","name":"TracingStartedInPage","id":1,"cat":"disabled-by-default-devtools.timeline","args":{"data":{"sessionId":"-1","page":"0xfff","frames":[{"frame":"0xfff","url":"webpack","name":""}]}}},
{"ts":210342518021,"pid":84888,"tid":84888,"ph":"I","name":"TracingStartedInBrowser","id":2,"cat":"disabled-by-default-devtools.timeline","args":{"data":{"sessionId":"-1"}}},
{"ts":210342596877,"pid":84888,"tid":84888,"ph":"b","name":"EntryOptionPlugin","id":3,"cat":"blink.user_timing"},
{"ts":210342597223,"pid":84888,"tid":84888,"ph":"e","name":"EntryOptionPlugin","id":3,"cat":"blink.user_timing"},
{"ts":210342786095,"pid":84888,"tid":84888,"ph":"b","name":"NodeSourcePlugin","id":4,"cat":"blink.user_timing"},
{"ts":210342786350,"pid":84888,"tid":84888,"ph":"e","name":"NodeSourcePlugin","id":4,"cat":"blink.user_timing"},
{"ts":210342786357,"pid":84888,"tid":84888,"ph":"b","name":"AMDPlugin","id":5,"cat":"blink.user_timing"},
{"ts":210342786418,"pid":84888,"tid":84888,"ph
@quantizor
quantizor / events.json
Last active February 14, 2018 04:19
example profiling plugin gist
This file has been truncated, but you can view the full file.
[{"ts":369004336107,"pid":49314,"tid":49314,"ph":"I","name":"TracingStartedInPage","id":1,"cat":"disabled-by-default-devtools.timeline","args":{"data":{"sessionId":"-1","page":"0xfff","frames":[{"frame":"0xfff","url":"webpack","name":""}]}}},
{"ts":369004336197,"pid":49314,"tid":49314,"ph":"I","name":"TracingStartedInBrowser","id":2,"cat":"disabled-by-default-devtools.timeline","args":{"data":{"sessionId":"-1"}}},
{"ts":369004405590,"pid":49314,"tid":49314,"ph":"b","name":"EntryOptionPlugin","id":3,"cat":"blink.user_timing"},
{"ts":369004405891,"pid":49314,"tid":49314,"ph":"e","name":"EntryOptionPlugin","id":3,"cat":"blink.user_timing"},
{"ts":369004606717,"pid":49314,"tid":49314,"ph":"b","name":"NodeSourcePlugin","id":4,"cat":"blink.user_timing"},
{"ts":369004606945,"pid":49314,"tid":49314,"ph":"e","name":"NodeSourcePlugin","id":4,"cat":"blink.user_timing"},
{"ts":369004606963,"pid":49314,"tid":49314,"ph":"b","name":"AMDPlugin","id":5,"cat":"blink.user_timing"},
{"ts":369004607020,"pid":49314,"tid":49314,"ph