Skip to content

Instantly share code, notes, and snippets.

View kessler's full-sized avatar
:octocat:
Be well!

Yaniv Kessler kessler

:octocat:
Be well!
View GitHub Profile
@kessler
kessler / consume-browser-readable-stream-as-async-iterator.js
Last active March 23, 2021 13:18
consume browser readable stream as async iterator
async function main() {
const { body } = await fetch('https://jsonplaceholder.typicode.com/photos')
const streamIterator = new StreamChunkIterator(body.getReader())
for await (const chunk of streamIterator) {
console.log(chunk)
}
console.log('Voilà!')
}
@kessler
kessler / notify.sh
Created January 1, 2019 13:46
get notified when a command completes on osx
#!/bin/bash
# usage: cmd | osa_notify.sh
/usr/bin/osascript 3<&0 <<'APPLESCRIPT'
on run argv
set stdin to do shell script "cat 0<&3"
display notification stdin with title "osa_notify" sound name "Default"
return stdin
end run
APPLESCRIPT
@kessler
kessler / change.sh
Created December 19, 2017 00:49
change ebs delete on termination behavior
aws ec2 modify-instance-attribute --profile [profile] --region [region] --instance-id [instanceid] --block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\":{\"DeleteOnTermination\":false}}]"
@kessler
kessler / format.js
Created December 18, 2017 23:36
format javascript date to pg timestamp with timezone
moment.utc(new Date()).format('YYYY-MM-DDTHH:mm:ss.SSSSSSSSS[Z]')
@kessler
kessler / browserifyMiddleware.js
Created April 19, 2017 01:54
browserify middleware transform example
'use strict'
const express = require('express')
const browserifyMiddleware = require('browserify-middleware')
const path = require('path')
browserifyMiddleware.settings('transform', [
[{ presets: ['es2015', 'react', 'stage-2']}, 'babelify']
])
@kessler
kessler / endsWithTest.js
Created February 21, 2017 18:35
string length is broken
const loEndsWith = require('lodash.endsWith')
console.log('naive:', endsWith('asdsds😀', '?'))
console.log('naive:', endsWith('asdsds😀?', '?'))
console.log('naive:', endsWith('asdsds😀', '😀'))
console.log('mozilla polyfill:', mozEndsWith('asdsds😀', '?'))
console.log('mozilla polyfill:', mozEndsWith('asdsds😀?', '?'))
console.log('mozilla polyfill:', mozEndsWith('asdsds😀', '😀'))
@kessler
kessler / shift_vs_pop.js
Created July 9, 2016 23:00
benchmark of shift vs pop with node.js
'use strict'
const size = 130000
let arr1 = new Array(size)
let arr2 = new Array(size)
for (let i = 0; i < size; i++) {
arr1[i] = i + ''
arr2[i] = i + ''
@kessler
kessler / forward_vs_backward_for_loop.js
Last active July 9, 2016 22:59
benchmark of forward vs backward for loop with node.js
'use strict'
const size = 10000000
let arr = new Array(size)
for (let i = 0; i < size; i++) {
arr[i] = i + ''
}
@kessler
kessler / lodash_vs_simple.js
Created July 5, 2016 21:07
lodash_vs_simple.js
'use strict'
const _ = require('lodash')
function intersection(source, target) {
let result = []
for (let i = source.length - 1; i >= 0; i--) {
let value = source[i]
if (target.indexOf(value) > - 1) {
result.push(value)
function toBits(a, res) {
if (a === 0) return
let r = a % 2
if (r === 0) { res.push(0) } else { res.push(1) }
toBits(Math.floor(a / 2), res)
}
function dec2bin(dec){
return (dec >>> 0).toString(2);
}