Composable State Primitives for JavaScript
Wednesday, November 28, 2018
Monday, October 16, 2017
Checking if we're running with a user gesture
function isUserInteraction() {
const detectionElement = window.document.createElement('audio');
detectionElement.play();
return !detectionElement.paused;
}
Monday, September 12, 2016
Friday, July 29, 2016
flow-remove-types
Thursday, January 7, 2016
Sickle
Wednesday, November 25, 2015
source-map-explorer
Tuesday, October 20, 2015
DataLoader
Friday, July 24, 2015
Six Speed
Wednesday, July 22, 2015
Monday, May 18, 2015
jscodeshift
jscodeshift is a toolkit for running codemods over multiple JS files.
See also js-codemod, which contains a collection of codemod scripts based on jscodeshift.
Sunday, May 17, 2015
Monday, May 11, 2015
lz-string
localStorage more manageable.
Wednesday, February 11, 2015
Detecting Element Resizing
<div> and scroll events to detect resizing without polling.
Monday, February 2, 2015
NuclearMail
NuclearMail is an experiment of writing a webmail client using React and the Flux architecture. It runs completely in the browser and uses the Gmail REST API.
Monday, December 1, 2014
Wednesday, November 5, 2014
Monday, November 3, 2014
Immutable Data Collections
Immutable data cannot be changed once created, leading to much simpler application development, no defensive copying, and enabling advanced memoization techniques.
Immutable provides List, Stack, Map, OrderedMap, and Set by using persistent hash maps tries and vector tries as popularized by Clojure and Scala. They achieve efficiency on modern JavaScript VMs by using structural sharing and minimizing the need to copy or cache data.
Immutable also provides a lazy Seq, allowing efficient chaining of collection methods like map and filter without creating intermediate representations. Create some Seq with Range and Repeat.
Monday, June 2, 2014
scribe/BROWSERINCONSISTENCIES.md
contentEditable browser inconsistencies that The Guardian ran into while developing their Scribe library.
Wednesday, April 16, 2014
Lesser-Known JavaScript Debugging Techniques
debug(), monitor(), monitorEvents() and a Chrome extension to extend these to native methods and custom events.