Skip to content

Instantly share code, notes, and snippets.

View christopherhill's full-sized avatar

Christopher Hill christopherhill

View GitHub Profile
@christopherhill
christopherhill / fibonacci.js
Created December 16, 2013 04:29
Fibonacci Generator
var fibonacci = function(arrLength) {
var offset = 1;
var result = [0, 1];
for (var i = offset; i < arrLength + offset; i++) {
result.push(result[i] + result[i-1]);
}
return result;
}
@christopherhill
christopherhill / gist:7836660
Created December 7, 2013 02:44
Javascript Classic Inheritance
var Automobile = function() {
this.automobile = true;
}
var Car = function() {
this.car = true;
}
var Bus = function() {
@christopherhill
christopherhill / URLPatternParser
Last active December 30, 2015 08:09
URL Pattern Parser
// We need to write a function in JavaScript that parses all the variable parts of a
// url, and any url parameters, into a hash. The function should take two arguments:
// 1. A "url format" string, which describes the format of a url that can contain
// constant parts and variable parts (where "parts" of a url are separated with "/").
// All variable parts begin with a colon. Here is an example "url format" string:
// "/v6/:collecton/:id"
// 2. The second argument is a particular url that is guaranteed to have the format
// specified by the first argument. It may also contain url parameters. For instance,
// given the example url format string above, the second argument might be:
// "/v6/photos/3?size=large&res=high
@christopherhill
christopherhill / Sudoku Validation Class
Last active December 29, 2015 21:19
Sudoku Validation Class
var testCases = new Array();
testCases[0] = "751843926893625174642179583425316798176982345938754612364297851289531467517468239";
testCases[1] = "751843927893625174642179583425316798176982345938754612364297851289531467517468239";
testCases[2] = "571843926893625174642179583425316798176982345938754612364297851289531467517468239";
testCases[3] = "851743926693825174142679583425316798976182345738954612364297851289531467517468239";
testCases[4] = "223275461161885667779964198782134691447868986543883499854252274298641511551153988";
testCases[5] = "398126745471293685394287156874539162173982456973681245163759248927864531498612375";
var SudokuValidator = function() {
@christopherhill
christopherhill / Value Watcher
Created October 19, 2013 04:59
Value Watcher class for JS
function ValueWatcher(value, callback, prequel) {
var that = this;
this.value = value;
this.onBeforeSet = prequel || function(){};
this.onAfterSet = callback || function(){};
this.setValue = function(newVal) {
that.onBeforeSet(that.value, newVal);
that.value = newVal;
that.onAfterSet(newVal);
}
@christopherhill
christopherhill / Find Longest String in Array
Created October 6, 2013 16:25
Find the longest string in a given array.
function longestString(i) {
// i will be an array.
// return the longest string in the array
var longestIndex = -1;
for (var j = 0; j < i.length; j++) {
var curStr = i[j];
@christopherhill
christopherhill / Array Sum of All Elements
Last active December 24, 2015 20:09
This was derived from a little game on-line; it uses recursion to sum a nested array of dynamic elements.
function arraySum(i) {
// i will be an array, containing integers, strings and/or arrays like itself.
// Sum all the integers you find, anywhere in the nest of arrays.
var intTotal = 0;
for (var j = 0; j < i.length; j++)
{
if (typeof(i[j]) === 'number') {
@christopherhill
christopherhill / gist:5979154
Created July 11, 2013 20:54
Wistia work in progress. Eventually will take the rel attribute of a link and display a fancybox popup.
/* wistiaJQuery(document).bind("wistia-popover", function(event, iframe) {
iframe.wistiaApi.time(30).play();
iframe.wistiaApi.bind("end", function() {
alert("The video ended!");
});
}); */
$(document).ready(function() {
$("a.fancybox").fancybox();
@christopherhill
christopherhill / gist:5979082
Created July 11, 2013 20:45
Marketo Key Hash, for a site with staging and production values.
<?php
// Marketo Web Service
// define the API key
$apikey = '';
$staging = 'secretkey';
$production = 'secretkey';
if (isset($_GET["s"])) {
@christopherhill
christopherhill / PHP Web Service
Last active December 19, 2015 15:49
Marketo Web Proxy
<?php
$staging = "http://marketostaging.domain.com/index.php/leadCapture/save";
$production = "http://marketoproduction.domain.com/index.php/leadCapture/save";
$url = '';
if (isset($_GET["s"])) {
$stagingFlag = $_GET["s"];