Skip to content

Instantly share code, notes, and snippets.

@badsyntax
badsyntax / open-url.sh
Created July 7, 2015 18:42
Open or reload a URL in Google Chrome with AppleScript
#!/usr/bin/env bash
osascript -e "
tell application \"Google Chrome\"
activate
set theUrl to \"$1\"
set found to false
set windowList to every window
repeat with aWindow in windowList
set tabList to every tab of aWindow
@badsyntax
badsyntax / angular-1.2.17.js
Created June 22, 2015 19:37
angular with benchmarking
var debugExpression = false;
/**
* @license AngularJS v1.2.17
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
(function(window, document, undefined) {'use strict';
/**
@badsyntax
badsyntax / test-benchmark.js
Created June 22, 2015 19:35
benchmark $rootScope.$digest
var scopePrototype = Object.getPrototypeOf($rootScope);
var oldDigest = scopePrototype.$digest;
scopePrototype.$digest = function() {
var start = window.performance.now();
oldDigest.apply(this, arguments);
var end = window.performance.now();
var totalTime = end - start;
if (totalTime > 400) {
window.console.warn('Long running digest cycle detected! %dms', totalTime);
@badsyntax
badsyntax / gource.sh
Created May 13, 2015 09:42
gource.sh
#!/usr/bin/env bash
git log --pretty=format:user:%aN%n%ct --reverse --raw --encoding=UTF-8 --no-renames --no-merges > gource-git.log
gource \
-800x600 \
--seconds-per-day 1.5 \
--auto-skip-seconds 0.5 \
--multi-sampling \
--stop-at-end \
@badsyntax
badsyntax / react-benchmark.js
Created April 25, 2015 17:36
A basic example of how to benchmark react component render times.
'use strict';
import _ from 'lodash';
import React from 'react';
import AppActions from '../../actions/AppActions';
import NewsStore from '../../stores/NewsStore';
import { NewsList } from '../';
let { Perf } = React.addons;
@badsyntax
badsyntax / mixin.js
Created April 25, 2015 07:45
es6 mixin
export default (Parent, ...mixins) => {
class Mixed extends Parent {}
Object.assign(Mixed.prototype, ...mixins);
return Mixed;
}
@badsyntax
badsyntax / eachSeries.broken.js
Created February 19, 2015 09:18
A reminder about how to use async.js series functions
// This will exit with the following error message: "RangeError: Maximum call stack size exceeded"
var async = require('async');
var c = 0;
async.eachSeries(new Array(5000),
function process(item, next) {
console.log(++c);
next();
<span aria-hidden="true" style="font: 700 300px/normal museo-sans,serif; margin: 0px; padding: 0px; left: 0px; top: 0px; width: auto; height: auto; display: block; white-space: nowrap; visibility: hidden; position: absolute;">BESbswy</span>
var viewportUnitExpression = /\b([+-]?[0-9.]+)(vh|vw|vmin|vmax)\b/g;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0NDQzI1QUU4RERGMTFFNDgwQTVBODE4MUQzN0FBRTEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0NDQzI1QUY4RERGMTFFNDgwQTVBODE4MUQzN0FBRTEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3Q0NDMjV