javascript:(function(){
allowCopyAndPaste = function(e){
e.stopImmediatePropagation();
return true;
};
document.addEventListener('copy', allowCopyAndPaste, true);
document.addEventListener('paste', allowCopyAndPaste, true);
document.addEventListener('onpaste', allowCopyAndPaste, true);
})();
- https://speedcurve.com/blog/
- https://calendar.perfplanet.com/2017/an-audit-of-boomerangs-performance/
- Time to interactive - Measuring more of the user experience - https://calendar.perfplanet.com/2017/time-to-interactive-measuring-more-of-the-user-experience/
- PERCEPTION MATTERS: MAKING RUM MORE REAL - https://blogs.akamai.com/2018/04/perception-matters-measure-perceived-performance.html
- Web performance made easy - https://developers.google.com/web/updates/2018/08/web-performance-made-easy
- Url not working - https://developer.akamai.com/blog/2017/04/12/gauge-user-experience-time-interactive/
- Github containing most suggestions around perf - https://github.com/fabkrum/web-performance-resources
- Frontend performance checklist - https://github.com/thedaviddias/Front-End-Performance-Checklist
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
// api - req/res, duration, failures+count+reqId | |
// action - user actions or general report | |
// perf - durations | |
// error - all errors, or custom (similar to capturing in sentry) | |
class Logger { | |
static type = { | |
api: { | |
name: '', | |
rules: {}, |
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 to infinitely delete pending posts from a facebook group | |
* Execute this code in console on the facebook group page > pending posts | |
*/ | |
function deletePosts () { | |
var deleteButtons = document.querySelectorAll('a[role=button][ajaxify*=delete]') | |
deleteButtons.forEach( b => { | |
b.click() | |
}) |
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
/** | |
* src/containers/Root.js | |
* App's root container | |
*/ | |
import React, { Component } from 'react'; | |
import { BrowserRouter, StaticRouter } from 'react-router-dom'; | |
import Redux from 'redux'; | |
import { Provider } from 'react-redux'; | |
import AppRoutes from '../routes/AppRoutes'; |
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
let flattenedArray = []; | |
const flattn = (arr) => { | |
for(let i in arr) { | |
if(typeof arr[i] === 'object' && arr[i].length) { | |
flattn(arr[i]); | |
} else { | |
flattenedArray.push(arr[i]); | |
} | |
} |