View gist:1c61ac71221e26860d27b9a10f782064
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
https://cdn.shopify.com/s/files/1/1338/7937/files/Bootstrap_Farmer_Ultimate_Microgreen_Cheatsheet_Printable.pdf?v=1604180053 |
View RingBuffer.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export class RingBuffer { | |
constructor(capacity, data = []) { | |
this._capacity = capacity; | |
this._buffer = new Array(this._capacity); | |
this._writeIndex = 0; | |
this._readIndex = 0; | |
this._msgsReceived = 0; | |
this._lastMeasurement = performance.now(); | |
this._msgsSinceLast = 0; |
View fps.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const fps = { | |
sampleSize : 60, | |
value : 0, | |
_sample_ : [], | |
_index_ : 0, | |
_lastTick_: false, | |
tick : function(){ | |
// if is first tick, just set tick timestamp and return | |
if( !this._lastTick_ ){ | |
this._lastTick_ = performance.now(); |
View ponyfills.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// we augment the window.history instance so that it will dispatch an event when using push/replace | |
// this allows us to create event stream and listen to all history state changes | |
export const patchHistory = history => { | |
const wrap = m => (state, title, url) => { | |
m.call(history, state, title, url); | |
let e = new Event(m.name.toLowerCase()); | |
e.state = state; | |
dispatchEvent(e); | |
}; |
View virtual-list.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* VirtualList: a universal windowed list for large datasets | |
* | |
* @param {Array} data - array of rows to render | |
* @param {string} rowHeight - height of row container in pixels | |
* @param {function} renderRow - function to render a single homogenous row | |
* @param {number} overscanCount - number of extra rows to pre-render ahead/behind the window | |
* @param {Object} rest - additional props | |
* | |
* @example |
View scheduler.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Wait at most one frame before processing events. | |
const BUDGET = 16.7; | |
let isRequestIdleCallbackScheduled = false; | |
const scheduleWork = () => { | |
// Only schedule the rIC if one has not already been set. | |
if (isRequestIdleCallbackScheduled) { | |
return; | |
} |
View index.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<meta http-equiv="X-UA-Compatible" content="ie=edge"> | |
<title>Memory Leak</title> | |
</head> | |
<body> | |
<h1>Memory Leak</h1> |
View relativeize.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function relativize(url, to) { | |
let [,base,origin] = to.match(/^(([a-z]+:\/\/[^\/]+)(\/.*?)?)(\/[^\/]*)?$/i) | |
url = String(url).replace(/^\/([^\/])/g, `${origin}/$1`); | |
if (!url.match(/^([a-z]+\:)\/\//i)) url = `${base}/${url}`; | |
return url; | |
} |
View pool.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// function removeObject (object, pool) { | |
// var tempObj; | |
// for (var i = 0; i < pool.length; i++) { | |
// if ( pool[i] === object ) { | |
// pool.activeLength --; | |
// canvas.scene.remove( pool[i] ); | |
// tempObj = pool[i]; | |
// pool[pool[i]] = pool[pool.length - 1]; | |
// return; | |
// } |
View Loop.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { EventDispatcher } from "three"; | |
export default class Loop extends EventDispatcher { | |
constructor(fps = 60, speed = 1) { | |
super(); | |
this._timeStep = (1000 / fps) * speed; | |
this._prevTime = null; | |
this._lagTime = 0; |
NewerOlder