Skip to content

Instantly share code, notes, and snippets.

View nickpresta's full-sized avatar

Nick Presta nickpresta

View GitHub Profile
@joshduck
joshduck / gist:0c35f70cdd3abf88770c
Created February 24, 2016 21:58
ReactPerf to Web Tracing Framework
const ReactPerf = require('ReactPerf');
const TRACE_DOM = false;
function reactPerfTrace(objName: string, fnName: string, func: any): any {
return function(component) {
let label;
if (objName === 'ReactCompositeComponent') {
var instName = this.getName() || 'Unknown';
label = fnName === 'mountComponent' || fnName === 'updateComponent' ? instName : `${instName}.${fnName}`;
var falafel = require('falafel');
var fs = require('fs');
var filePaths = process.argv.slice(2);
console.log('Processing files');
console.log(filePaths.join('\n'));
filePaths.forEach(function(filepath) {
rewrite(filepath);
@SamCyanide
SamCyanide / helloworld.java
Last active May 27, 2017 07:46
Made by https://github.com/cory2067 | /u/Cory2067 on Reddit
import java.util.ArrayList;
public class HelloWorld {
public static final Integer a = 104;
private volatile static Object ob = "o";
public static void good() {
class NiceInnerClass { public NiceInnerClass(){System.out.print('e'); abstract class xx {}}}
Object object = new NiceInnerClass();
}
@joshq00
joshq00 / .babelrc
Created October 29, 2015 23:39
Babel 6 : React / stage 0
{
"presets": [ "react", "es2015" ],
"plugins": [
"transform-es2015-modules-commonjs",
"transform-react-constant-elements",
]
}
@kentcdodds
kentcdodds / eslint-changed.sh
Last active April 15, 2021 03:36
Shell script to lint only changed files to be used as a githook (specific to my project)
#!/usr/bin/env bash
set -e
# allow being run from somewhere other than the git rootdir
gitroot=$(git rev-parse --show-cdup)
# default gitroot to . if we're already at the rootdir
gitroot=${gitroot:-.};
nm_bin=$gitroot/node_modules/.bin
@jsdf
jsdf / immutableJSFormatter.js
Last active May 19, 2022 10:51
Chrome devtools formatter for Immutable-js
const immutableJSFormatter = {
header(x) {
if (x && x.toJS) return ['span', {}, x.toString()];
return null;
},
hasBody(x) {
return x && x.toJS;
},
body(x) {
return ['span', {}, JSON.stringify(x.toJS(), null, 2)];
@teropa
teropa / reactive2015_gol.md
Created September 24, 2015 15:56
ClojureScript Game of Life - Reactive 2015 Lightning Talk Proposal

In my proposed lightning talk for the Reactive Conference, I'll create Conway's Game of Life in ClojureScript, and I'll do it in five minutes. I'll use an interactive programming workflow enabled by Figwheel. Each piece will be added into the running application without reloading the page.

If you want to see a little cellular lifeform spawn out of nothing into an running web browser window, I'd appreciate it if you starred this Gist!

Cheers,

(@teropa)

@paulirish
paulirish / what-forces-layout.md
Last active July 18, 2026 01:45
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.

Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.

Element APIs

Getting box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
@jonrouleau
jonrouleau / routes.js
Created September 15, 2015 02:48
Split Index with react-router 1.0.0
import auth from "../utils/auth";
function logout(nextState, replaceState) {
auth.logout();
replaceState(null, "/");
}
function redirectToLogin(nextState, replaceState) {
if (!auth.isLoggedIn()) {
replaceState({
@tlrobinson
tlrobinson / redux-devtools-separate-window.js
Last active August 20, 2019 23:54
Put the awesome redux-devtools in it's own window so it doesn't obscure or be obscured by your application
// give it a name so it reuses the same window
var win = window.open(null, "redux-devtools", "menubar=no,location=no,resizable=yes,scrollbars=no,status=no");
// reload in case it's reusing the same window with the old content
win.location.reload();
// wait a little bit for it to reload, then render
setTimeout(function() {
React.render(
<DebugPanel top right bottom left >