Skip to content

Instantly share code, notes, and snippets.

Avatar
Building new teams at @Shopify

Francis Gulotta reconbot

Building new teams at @Shopify
View GitHub Profile
View project_time.txt
"You have time you can control and time you can't,
you can't devote all of the time you can control to
new features otherwise the that time shrinks to 0."
-- reconbot
┌─────────
│ ┌────
│ │
│ │ ▲
@spion
spion / 01-fractal-weird-design.md
Last active Nov 2, 2019
Node streams - a fractal of weird design
View 01-fractal-weird-design.md

Node streams - a fractal of weird design

and a potential refactor that could fix that

This is a list of issues and confusions I've encountered with node streams, and things I wish were designed and implemented differently. If promise-streams is ever going to change to a design that doesn't build on top of node streams, this would be a list of mistakes to avoid

  1. enc parameter - Why is encoding always passed together with the data? It should be a separate concern. It doesn't even make sense in objectMode
  2. eventemitter base - This encourages a lot of random events to be "attached" by other authors which doesn't work. Best to have an uniform (typed) interface so that everyone knows what to expect.
  3. relying on nextTick etc for execution order - This is very unreliable and causes all sorts of unpredictable rules for implementers which are not documented anywhere. When you attach listeners determines what will happen.
  4. no error propagation - we need the
@ajfisher
ajfisher / 0x00000.bin
Last active Jun 19, 2020
ESP8266 Transparent bridge to J5
@staltz
staltz / introrx.md
Last active Jun 20, 2021
The introduction to Reactive Programming you've been missing
View introrx.md
@domenic
domenic / event-emitter.js
Last active Mar 8, 2021
Revealing constructor pattern event-emitter
View event-emitter.js
// This event emitter emits events, but reserves the right to publish events to
// for its creator. It uses a WeakMap for true encapsulation.
const eesToEventMaps = new WeakMap();
export default class EventEmitter {
constructor(publisher) {
const eventMap = Object.create(null);
eesToEventMaps.set(this, eventMap);
@Zirak
Zirak / gist:1677020
Created Jan 25, 2012
Visibility API
View gist:1677020
//http://www.w3.org/TR/2011/WD-page-visibility-20110602/
(function () {
"use strict";
//no need to shim if it's already there
if ( 'hidden' in document && 'onvisibilitychange' in document ) {
return;
}
//fail silently if the browser sux