Skip to content

Instantly share code, notes, and snippets.

View robrighter's full-sized avatar

Rob Righter robrighter

View GitHub Profile
import pycxsimulator
from pylab import *
n = 200 # size of grid: n * n
Dh = 1. / n # spatial resolution, assuming space is [0,1] * [0,1]
Dt = 0.02 # temporal resolution
a, b = 12.0, 16.0 # parameter values
Du = 0.0001 # diffusion constant of u
/////////////////////////////////////////////////////////////////////////////////////////
// Lightning component code to listen for post message commands from
// visualforce pages. It would be very very VERY helpful if this functionality
// was provided by the core lightning ui code.
/////////////////////////////////////////////////////////////////////////////////////////
({
setupLightningConverterListener: function(){
var listener = function(event) {
if(event.data.action === 'toast'){
@robrighter
robrighter / gist:8690879
Created January 29, 2014 15:52
Redis Mock
function makeMockRedisClient(listener){
var calls = [];
return {
on: function(){
if(listener){ listener('on', arguments); }
calls.push({name: 'on', args: arguments});
},
hget: function(key, index, callback){
if(listener){ listener('hget', arguments); }
calls.push({name: 'hget', args: arguments});
@robrighter
robrighter / gist:7271319
Created November 1, 2013 20:16
Typical error handling problem in javascript
function genericXmlParser(xml, callback){
var parser = new xml2js.Parser();
var isParseError = true;
try
{
parser.parseString(xml, function(err,obj){
isParseError = false;
if(err){
callback({error: 'XML Parsing Error'});
}
@robrighter
robrighter / main.c
Created May 13, 2012 01:35
Using the C Preprocessor for easy iterating
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//A Preprocessor Macro for iterating
#define FOR_EACH(array, type, block) { \
int len = sizeof(array)/sizeof(type);\
for(int i=0; i<len; i++){ \
type this = array[i]; \
block \
@robrighter
robrighter / solve.js
Created March 31, 2012 19:04
Detect functions with the additive property for prime numbers up to a specified limit.
function isAdditive(f,x,y){
return ((f(x) + f(y)) === f(x+y));
}
function everyCombinationOfTwo(arr){
var toreturn = [];
arr.forEach(function(first){
arr.forEach(function(second){
toreturn.push([first,second]);
});
@robrighter
robrighter / test.js
Created May 6, 2011 21:19
Topological Sort in Javascript
var assert = require('assert');
var topologicalSort = require('./topologicalsort').topologicalSort;
tests = [
{
graph: [
{edges:[1,2]},
{edges:[3]},
{edges:[5]},
{edges:[4]},
@robrighter
robrighter / gist:897565
Created April 1, 2011 00:59
Walk a JSON/Javascript tree to grab all values for a given key
function traverse(obj,func, parent) {
for (i in obj){
func.apply(this,[i,obj[i],parent]);
if (obj[i] instanceof Object && !(obj[i] instanceof Array)) {
traverse(obj[i],func, i);
}
}
}
function getPropertyRecursive(obj, property){
@robrighter
robrighter / gist:872911
Created March 16, 2011 17:41
js object to xml quick and dirty
function js2xml(js, wraptag){
if(js instanceof Object){
return js2xml(Object.keys(js).map(function(key){return js2xml(js[key], key);}).join('\n'), wraptag);
}else{return ((wraptag)?'<'+ wraptag+'>' : '' ) + js + ((wraptag)?'</'+ wraptag+'>' : '' );}
}
//try it
var output = js2xml({
boosh: '1',
is: '2',
@robrighter
robrighter / gist:866644
Created March 11, 2011 21:52
Turn a javascript object into an array sorted by the object keys
function makeSortedObject(obj, casesensitive){
return Object.keys(obj).map(function(key){
return {key: key, value: obj[key]};
}).sort(function(a,b){
return (casesensitive? a.key : a.key.toLowerCase()) > (casesensitive? b.key : b.key.toLowerCase());
});
}