Skip to content

Instantly share code, notes, and snippets.

View bayleedev's full-sized avatar
🍿

Baylee Schmeisser bayleedev

🍿
View GitHub Profile
@bayleedev
bayleedev / color-difference.js
Created October 15, 2022 00:12
Understanding color difference in LAB vs sRGB using "@thi.ng/color"
import { distCIEDE2000 } from "@thi.ng/color";
import distance from 'euclidean-distance';
const difference = (color1, color2) => {
return distCIEDE2000()(
'#' + (color1.red).toString(16) + (color1.green).toString(16) + (color1.blue).toString(16),
'#' + (color2.red).toString(16) + (color2.green).toString(16) + (color2.blue).toString(16),
)
}

Keybase proof

I hereby claim:

  • I am bayleedev on github.
  • I am mxbaylee (https://keybase.io/mxbaylee) on keybase.
  • I have a public key ASAGshYBVX4yu_D1IR9NZXiv1ooK-Hw6W-CNntE244dR5wo

To claim this, I am signing this object:

on randomString(aLength)
set randomChars to {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
set aString to ""
repeat aLength times
set aString to aString & some item of randomChars
end repeat
return aString
end randomString

Performance Test

The goal is to determine if the overhead of multiple setTimeout is heavier than a single setInterval.

Each test has 60 iterations of a function wait that takes 30ms to run, making the program time 60*30=1800ms, so running these files should capture the overhead by subtracting 1800ms from the total run time.

Timeout

It took around 1816ms or around ~16ms of overhead.

var b = 20;
function foo () {
var a = 10;
console.log('hello $a+$b=30'.replace(/\$\w+/g, function (el) {
return eval(el.substr(1))
}))
}
foo()
@bayleedev
bayleedev / slack-emojis.js
Created June 2, 2017 06:51
A script to see who's created the most slack emojis on your team. Paste this into the console on the `customize emojis` page on slack.
class Author {
constructor (name) {
this.name = name
this.count = 0
}
increase () {
this.count++
}
}
const items = [1,2,3,4,5]
items.reduce((follower, leader) => {
console.log(follower, leader)
return leader
})
// OUTPUTS:
// 1, 2
// 2, 3
setnvm() {
if [ "$PWD" != "$MYOLDPWD" ]; then
MYOLDPWD="$PWD";
if [ -e "$PWD/.nvmrc" ]; then
nvm use
fi
fi
}
function cd () { builtin cd "$@" && setnvm; }
@bayleedev
bayleedev / MousetrapProxy.js
Last active February 27, 2017 23:07
Mousetrap will only bind a key event to one function, this makes it so you can bind it to as many as you like.
class MousetrapProxy {
constructor () {
this.events = {}
}
emit (key) {
if (!this.events[key]) return
this.events[key].forEach((cb) => cb())
}