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
/** | |
* Basic example of routerless store based routing. | |
* To understand what is going on check out | |
* https://svelte.dev/tutorial/writable-stores | |
* https://www.npmjs.com/package/feather-route-matcher | |
*/ | |
// stores.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
https://cdn.shopify.com/s/files/1/1338/7937/files/Bootstrap_Farmer_Ultimate_Microgreen_Cheatsheet_Printable.pdf?v=1604180053 |
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; |
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(); |
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); | |
}; |
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 |
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; | |
} |
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> |
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; | |
} |
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; | |
// } |
NewerOlder