Skip to content

Instantly share code, notes, and snippets.

Javascript Framework Shootout Hackathon

Food and Team Up

Food from FireHouse Subs will be provided. You'll eat, get settled, and find your team. If you still need help with finding a team, we'll help you.

Setup

Some things to avoid and defer to jQuery when writing Javascript:
document.getXYZ -> $('...')
document.getElementById('abc') is okay, but some others are not. Might as well use $('#abc').
querySelector -> $('...')
querySelector is not supported in IE7 - IE8, use jQuery.
function ITEM_VIEW(){ with(BindUp) { return (
SECTION({id: 'item-view'},
H2($('name'),
IMG({
src: $('imageURL'),
alt: 'Side-view shot'
}),
LABEL('Price'), SPAN($('price')),
SECTION(
@airportyh
airportyh / hack_the_page.js
Last active December 15, 2015 04:09
What to do to get at global JS variables on the page from a Chrome extension.
var code = '(' + function(){
window.postMessage({
globals: Object.keys(window)
})
} + '())'
var script = document.createElement('script')
script.text = code
document.head.appendChild(script)
@airportyh
airportyh / jasmine.js
Created April 2, 2013 18:53
Jasmine with .only support.
var isCommonJS = typeof window == "undefined" && typeof exports == "object";
/**
* Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework.
*
* @namespace
*/
var jasmine = {};
if (isCommonJS) exports.jasmine = jasmine;
/**
@airportyh
airportyh / hack_dojo_xhr
Created April 11, 2013 19:49
How to intercept dojo's xhr method.
var oldxhr = dojo.xhr;
dojo.xhr = function(){
var args = Array.prototype.slice.call(arguments)
return oldxhr.apply(dojo, arguments).addCallback(function(error){
console.log('Ajax finished: ', args)
});
};
@airportyh
airportyh / traverse_dom.js
Last active December 16, 2015 10:59
Quickly and recursively traverse DOM elements.
function traverseDom(elm, visit){
visit(elm)
var curr = elm.firstChild
while (curr){
if (curr.nodeType === 1){
traverseDom(curr, visit)
}
curr = curr.nextSibling
}
}
@airportyh
airportyh / sourcemap.js
Created May 4, 2013 03:06
An example inlined sourcemap
//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlcyI6WyIvVXNlcnMvYWlycG9ydHloL0hvbWUvQ29kZS9yb3Zlci9jb250ZW50c2NyaXB0L2luZGV4LmpzIiwiL1VzZXJzL2FpcnBvcnR5aC9Ib21lL0NvZGUvcm92ZXIvY29udGVudHNjcmlwdC9vZmZzZXRzLmpzIiwiL1VzZXJzL2FpcnBvcnR5aC9Ib21lL0NvZGUvcm92ZXIvY29udGVudHNjcmlwdC91bmlxdWVfc2VsZWN0b3IuanMiLCIvVXNlcnMvYWlycG9ydHloL0hvbWUvQ29kZS9yb3Zlci9jb250ZW50c2NyaXB0L2Nocm9tZWV4dC5qcyIsIi91c3IvbG9jYWwvbGliL25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9pbnNlcnQtbW9kdWxlLWdsb2JhbHMvbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIi91c3IvbG9jYWwvbGliL25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXJlc29sdmUvYnVpbHRpbi9ldmVudHMuanMiLCIvVXNlcnMvYWlycG9ydHloL0hvbWUvQ29kZS9yb3Zlci9jb250ZW50c2NyaXB0L2ZyaWVuZGx5X3RhZy5qcyIsIi9Vc2Vycy9haXJwb3J0eWgvSG9tZS9Db2RlL3JvdmVyL2NvbnRlbnRzY3JpcHQvaW50ZXJhY3RpdmVfbW9kZS5qcyIsIi9Vc2Vycy9haXJwb3J0eWgvSG9tZS9Db2RlL3JvdmVyL2NvbnRlbnRzY3JpcHQvZGltZW5zaW9ucy5qcyIsIi9Vc2Vycy9haXJwb3J0eWgvSG9tZS9Db2RlL3JvdmVyL2NvbnRlbnRzY3
@airportyh
airportyh / gist:5726870
Created June 7, 2013 03:22
Async package doesn't know where main source file is.
$ bower install async
bower cloning git://github.com/caolan/async
bower cached git://github.com/caolan/async
bower fetching async
bower checking out async#v0.2.5
bower copying /Users/airportyh/.bower/cache/async/aff84254264447a88702deebb5d1aa6e
bower installing async#0.2.5
$ cat app/bower_components/async/bower.json
{
"name": "async",
@airportyh
airportyh / gist:5727156
Created June 7, 2013 04:57
Example yeoman setup with grunt-bower-install.
<!-- build:js scripts/main.js -->
<!-- bower -->
<script src="bower_components/bug/index.js"></script>
<script src="bower_components/jquery/jquery.js"></script>
<!-- endbower -->
<script src="scripts/main.js"></script>
<!-- endbuild -->