Skip to content

Instantly share code, notes, and snippets.


Jim Montgomery jimmont

View GitHub Profile
jimmont / LICENSE.txt
Last active Aug 29, 2015 — forked from tnightingale/LICENSE.txt
Christchurch 2010 Timeline
View LICENSE.txt
The MIT License (MIT)
Copyright (c) 2014 TODO
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
jimmont / interruptMePlease.ino
Last active Nov 9, 2015
bean bike cycling project
View interruptMePlease.ino
Bean Loader v 1.9.3 build 1219
Arduino v 1.6.5
previous problem:
when I input via D5 using a reed switch (cyclometer head+mount)
and smack the sensor with a magnet it often increments by a step of 5 or so,
so too much suggesting the interrupt occurs several times instead of the expected single hit
for that pass of the magnet by the reed switch
View rAF.js
// paulirish, emoller et al. MIT license
window.requestAnimationFrame = window.requestAnimationFrame || function(callback, element){
var fn, cfn, w = window, lastTime = 0, v, vendors = 'webkit,moz,ms,o'.split(',');
while(!fn && (v = vendors.shift())){
fn = w[v+'RequestAnimationFrame'];
cfn = w[v+'CancelAnimationFrame'] || w[v+'CancelRequestAnimationFrame'];
w.requestAnimationFrame = fn || function(callback, element){
var id, currTime = new Date().getTime(), timeToCall = Math.max(0, 16 - (currTime - lastTime));
jimmont / styleRulesForElementList.js
Created Dec 30, 2015
return the styles for elements
View styleRulesForElementList.js
function styleRulesFor(elementList){
var el, i, out = [], allRules, getMatchedCSSRules, getComputedStyle = window.getComputedStyle;
// this is very slow
allRules = function(){
// setup when needed
var rules = [], i = 0, sheet, styleSheets = el.ownerDocument.styleSheets;
while(sheet = styleSheets[i++]){
rules.push.apply(rules, sheet.rules||[]);
jimmont /
Last active Jan 28, 2016
launch cordova iOS emulator then debug in Safari with a single alias
based on
open /Applications/Utilities/Script Editor
edit and save
System Prefs > Security & Privacy > [Privacy tab] > Accessibility in left sidebar
-> add [+] this new app (NOTE must repeat this addition every time the app/script is saved/changed to avoid security errrors)
run (eg in the terminal):
% cordova run ios && open ./path/to/
View throttle.js
function unthrottle(it){
it.node.removeEventListener(it.type, it.throttle);
return it;
* @param {object} it defines what to throttle, requires 3 properties:
* @param {string} it.type event name
* @param {Node} it.node DOM element
jimmont / snippets.js
Last active Oct 2, 2016
snippet collection
View snippets.js
// work with angular since Batarang is giving me problems
function $scope($0){ $0 = angular.element(
typeof($0) === 'string' ? document.querySelectorAll($0) : $0
).scope(); $scope.$0 = $0; return $scope; }
window.$scope = $scope;
console.log('window.$scope($0) returns scope for element $0',$scope(document));
// $http for convenient http requests
jimmont / customelements.js
Last active Dec 10, 2016
create new things and stuff
View customelements.js
/* this last updated 2016 Dec 9
v1 available:
2016 Nov in WebKit, Safari Tech Preview
2016 Chrome 54
curious when this lands on ios/macos
Chrome devtools show shadow DOM by default
Safari devtools must enable it in elements by selecting the icon
View sv650s-2nd-generation-torque.tsv
We can make this file beautiful and searchable if this error is corrected: It looks like row 6 should actually have 1 column, instead of 4. in line 5.
ITEM N-m kgf-m lb-ft
Cylinder head cover bolt 14 1.40 10.0
Spark plug 11 1.10 8.0
Camshaft journal holder bolt 10 1.00 7.0
jimmont / v8-notes.txt
Last active May 21, 2017
Nodejs general notes.
View v8-notes.txt
authoritative sources:
TODO (arguably) the wiki could use more material currently spread across the internet
injection/input escaping:
TODO what are the modules/strategies necessary for managing input that moves through the application