Skip to content

Instantly share code, notes, and snippets.

Avatar

Nick Williams nilliams

  • Leicestershire, UK
View GitHub Profile
@nilliams
nilliams / onClick.js
Last active Dec 27, 2015
A relatively sane onClick helper (Webkit only), for e.g. Node-Webkit work. Add additional prefixed versions of `matchesSelector` for further browser compat.
View onClick.js
function onClick(selector, fn) {
document.addEventListener('click', function(e) {
if ( _matchesSelector(e.target, selector) ) fn(e);
}, false);
}
function _matchesSelector(el, selector) {
var doc = document.documentElement;
var fn = doc.matchesSelector || doc.webkitMatchesSelector;
@nilliams
nilliams / particles.c
Last active Dec 29, 2015
Simple particles example using the OpenVG Testbed
View particles.c
// particles.c - Simple particles example using the OpenVG Testbed
// Installing & Running:
// 1. Download the OpenVG Testbed (https://github.com/ajstarks/openvg)
//
// $ git clone https://github.com/ajstarks/openvg.git
// $ cd openvg/client
//
// 2. Place a copy of this file (particles.c) in that directory
// 3. Add the following to the Makefile:
@nilliams
nilliams / node-openvg-particles.js
Created Oct 29, 2013
Simple particles example on the Raspberry Pi using node-openvg-canvas. Original demo code from thecodeplayer.com.
View node-openvg-particles.js
// Original Source
// http://thecodeplayer.com/walkthrough/make-a-particle-system-in-html5-canvas
//
// Modified to work with `node-openvg-canvas` on the Raspberry Pi
// - use RequestAnimationFrame instead of setInterval
// - correct the number of arguments in call to `ctx.arc()`
//
// Usage:
// - install Node.JS
// (refer to Installing Node section here: http://blog.rueedlinger.ch/2013/03/raspberry-pi-and-nodejs-basic-setup/)
@nilliams
nilliams / index.js
Last active Oct 18, 2016
requirebin sketch
View index.js
// http://requirebin.com/?gist=8f13d5147c1c252ab1691115bfa8b7c5
var Promise = require('es6-promise').Promise;
new Promise(function() {
console.log("We're running...");
// nothing happens, this error is silently swallowed. and yes this could just as
// well be a typo. issue: https://github.com/stefanpenner/es6-promise/issues/70
throw 'err';
@nilliams
nilliams / index.js
Last active Oct 19, 2016
requirebin sketch
View index.js
var Promise = require('bluebird');
new Promise(function() {
console.log("We're running...");
// A crazy error is thrown here, but you will see this in your Chrome console.
// Seems like Bluebird has the right default here!
throw 'Nice job Bluebird';
console.log("We'll never get here.");
@nilliams
nilliams / index.js
Last active Oct 21, 2016
requirebin sketch
View index.js
var Promise = require('es6-promise').Promise;
function foo() {
return new Promise(function(resolve, reject) {
console.log("We're running...");
// We totally resolve and all is good ...
resolve();
});
}
@nilliams
nilliams / index.js
Created Oct 21, 2016
requirebin sketch
View index.js
var Promise = require('yaku');
function MyCoolErr() {}
function foo() {
return new Promise(function(resolve, reject) {
console.log("We're running...");
// Resolve and all is good ...
resolve();
@nilliams
nilliams / index.js
Created Oct 21, 2016
requirebin sketch
View index.js
var Promise = require('es6-promise').Promise;
function MyCoolErr() {}
function foo() {
return new Promise(function(resolve, reject) {
console.log("We're running...");
// Resolve and all is good ...
resolve();
@nilliams
nilliams / index.js
Created Oct 21, 2016
requirebin sketch
View index.js
var Promise = require('rsvp').Promise;
function MyCoolErr() {}
function foo() {
return new Promise(function(resolve, reject) {
console.log("We're running...");
// Resolve and all is good ...
resolve();
@nilliams
nilliams / index.js
Created Oct 21, 2016
requirebin sketch
View index.js
var Promise = require('rsvp').Promise;
new Promise(function() {
console.log("We're running...");
// nothing happens, this error is silently swallowed. and yes this could just as
// well be a typo. issue: https://github.com/stefanpenner/es6-promise/issues/70
throw 'err';
console.log("We'll never get here.");