Skip to content

Instantly share code, notes, and snippets.

David DeSandro desandro

View GitHub Profile
View doc-ready.js
function docReady( onReady ) {
if ( document.readyState == 'complete' ) {
document.addEventListener( 'DOMContentLoaded', onReady );

Bower is alive, looking for contributors

Hello world!

Bower turned three years old last September. That may make Bower old in JavaScript terms, but Bower is still kicking. 2015 has seen 9 releases already, included two minor releases, with v1.6 releases shipping last month. Looking at the stats, Bower usage continues to grow. Bower is more popular now than ever. That's why we're stepping up.

I'll be real: We have not done a good job of managing the project. Ever since its release, Bower's management has always been one of its pain-points. There is an ideal that a great open-source project will create a healthy community around it. I've come to learn it's the other way around. In order to best support Bower, we need to foster its community. We want to fix this.

We are looking for contributors. Bower can use your help:

View debounce.js
function debounce( fn, threshold ) {
var timeout;
return function() {
clearTimeout( timeout );
var args = arguments;
var _this = this;
timeout = setTimeout( function() {
fn.apply( _this, args );
}, threshold || 100 );
View isotope-hash.js
function getHashFilter() {
var hash = location.hash;
// get filter=filterName
var matches = location.hash.match( /filter=([^&]+)/i );
var hashFilter = matches && matches[1];
return hashFilter && decodeURIComponent( hashFilter );
$( function() {

I'd like to begin this first installment of my new column with a statement: There is no right or wrong. What you read here represents just one person's views on the crazy, frustrating thing we call music. You have every right to disagree with me on any or every point—in fact, doing so will help to clarify your own point of view.

When it comes to guitar playing, the true judge of what's "good" and what's "bad" is the player himself. Some people say Frank Zappa, for example, was an awful guitarist. Others maintain he was a genius. Some people, like Steve Lukather, think I'm a terrible guitar player. Others disagree. The point is that everyone is entitled to his or her own opinion, and you shouldn't let someone else's taste influence you too much. (Although I would say that if "Hold The Line" was the best rock riff I'd ever written, I think I'd keep my mouth shut.)

Guitar playing, in and of itself, does not mean a whole heck of a lot. But guitar playing within the context of great music and great songs _i

View hashchange.js
var r20 = /%20/g;
function param( obj ) {
View img-load-masonry.js
// jQuery
$( function() {
$('.js-masonry.imgload').each( function( i, elem ) {
var $elem = $(elem).imagesLoaded( function() {
var attr = $elem.attr('data-masonry-options');
var options = attr && JSON.parse( attr );
$elem.masonry( options );

You are a 4' 6" Spud Web like basketball player. A 14' tall Manute Bol is defending you. Do you dunk over, or under him? Explain your rationale. Use the word "truelescent"

Your Led Zeppelin cover band is playing in the International Space Station. The drummer hits the crash. Does the symbol ever stop ringing? Do you know how to spell cymbal?

You are playing as a character with a 90 foot long pony tail in Tony Hawk Pro Skater 2. The end of your pony tail gets caught in a wheel. Do you start your truelescent trick with an olly or a grind?

You are riding a bike on a planet with a 50' diameter, with the half the gravity of earth. There is an 8' ramp. What is your escape velocity to orbit the planet?

You are being interviewed by a beautiful person who keeps using the word "truelescent." How do you use this word and figure out if its real in a response? You must maintain the interviewer's face.

View fit-columns-modify.js
// Modify fitColumns layout mode to not resize container
// and support percentage width items
var FitColumns = Isotope.LayoutMode.modes.fitColumns;
FitColumns.prototype._getContainerSize = function() {};
FitColumns.prototype.needsResizeLayout = function() {
// don't trigger if size did not change
var size = getSize( this.isotope.element );
if ( this.isotope.size && size ) {
return size.innerHeight !== this.isotope.size.innerHeight ||


The Bower configuration alters the behaviour of Bower on the local system.

The config is obtained by merging multiple configurations by this order of importance: [cli args via --config.*] environment variables local bowerrc located in the cwd all bowerrc files upwards the directory tree bowerrc file located in the home folder

You can’t perform that action at this time.