Skip to content

Instantly share code, notes, and snippets.

View delapuente's full-sized avatar

Salvador de la Puente González delapuente

View GitHub Profile
@delapuente
delapuente / logKeyCode.js
Last active December 22, 2015 06:48
Log the keycode of the pressed key
window.onkeypress = function(event) {
console.log(event.which || event.keyCode);
};
@delapuente
delapuente / hello.js
Created September 4, 2013 05:57
Say hello!
alert('Hello!');
@delapuente
delapuente / canvasRelativeCoords.js
Created September 7, 2013 10:13
Useful function to obtain canvas relative mouse coordinates
var canvasX, canvasY;
theCanvas.onmousemove = transformIntoCanvasRelative;
function transformIntoCanvasRelative(evt) {
var canvas = evt.target;
var rect = canvas.getBoundingClientRect();
canvasX = evt.clientX - rect.left;
canvasY = evt.clientY - rect.top;
}
@delapuente
delapuente / worker.js
Last active December 24, 2015 22:49
A simple web worker
/*
Used to include another JS file.
*/
FIB_URL = 'https://gist.githubusercontent.com/lodr/6879872/raw/1dd7315fbac1194abf40406331cf825f74b71ccb/fib.js';
importScripts(FIB_URL);
/*
This is used to receive data from the parent.
*/
onmessage = function(evt) {
@delapuente
delapuente / fib.js
Created October 8, 2013 05:25
A basic, non-optimized fibonacci function.
function fib(x) {
if (x <= 2) return 1;
return fib(x-1) + fib(x-2);
}
load([
{"task":"HTML I","done":true},
{"task":"CSS","done":true},
{"task":"Responsive design","done":true},
{"task":"Git","done":true},
{"task":"JavaScript I","done":true},
{"task":"JavaScript II","done":false}
]);
@delapuente
delapuente / mock-promise-interface.js
Last active August 29, 2015 13:56
Mock promise supported interface to produce delayed values
function fPromise(timeout, result, error) {
return new Promise(function(fulfill, reject) {
setTimeout(function () {
if (!error) fulfill(result);
else if (error instanceof Error) throw error;
else reject(error);
}, timeout);
});
}
@delapuente
delapuente / promise-retry.js
Created February 17, 2014 18:40
Promise retry function with thenable interface
function retry(target, keepTrying) {
var retryCount = 1;
var fulfill, reject;
var promise = new Promise(function (f, r) {
fulfill = f;
reject = r;
});
realRetry();
@delapuente
delapuente / function-promise-retry.js
Created February 17, 2014 19:00
Promise retry method for functions returning a thenable interface
Function.prototype.retryWhile = function(keepTrying) {
var target = this;
var retryCount = 1;
var fulfill, reject;
var promise = new Promise(function (f, r) {
fulfill = f;
reject = r;
});
@delapuente
delapuente / promise-chain.js
Last active August 29, 2015 14:02
The PromiseChain class allow to build chains of promises where new tasks returning promises can be added and will be executed once all thre previous tasks are done..
function PromiseChain() { this._current = null; }
PromiseChain.prototype.add = function (task) {
if (this._current === null) {
this._current = task();
}
else {
var next = function () { return task(); };
this._current = this._current.then(next, next);
}