Skip to content

Instantly share code, notes, and snippets.


Jason Sperske jasonsperske

View GitHub Profile
@REM SET BLASTER=A220 I5 D1 H5 P330 T6
jasonsperske /
Last active Dec 23, 2018
An Amazon Technical interview question I received this year. Write a function that when given a map (a 2-dimensional grid where 1 is a walk-able square, 0 is an impassable square and 9 is the destination) and starting at the top left (x:0, y:0) finds the shortest path to the destination
import java.util.Arrays;
public class Examples {
public static void main(String ... args) {
Solution s = new Solution();
System.out.print("Example problem: ");
System.out.println(s.shortest(3, 3,
Arrays.asList(1, 0, 0),
View hue.js
//An example of this can be seen at
function HueSegments(steps) {
var segments = []
var step
var increment = 200/steps
for(step = 0; step < steps; step++) {
segments.push("hsla("+(Math.floor(increment*step))+", 100%, "+(step % 2 == 0 ? "75" : "50")+"%, 1)")
return segments
jasonsperske / deepSet.js
Last active Mar 17, 2021
Setting a deep JSON property with one call, a answer to a question on StackOverflow that was deleted before I could post it
View deepSet.js
function deepSet(keys, value) {
return keys.split('.')
.reduce((acc, current) => {
return {[current]: acc};
}, value);
//You can use it like this:
console.log(JSON.stringify(deepSet('', 100)))
jasonsperske /
Created Sep 28, 2017 Posted at 22:28 Oct 09, 2006 by Andreas Sterbenz
* Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.

Keybase proof

I hereby claim:

  • I am jasonsperske on github.
  • I am sperske ( on keybase.
  • I have a public key ASDulU5JtSD8n6FbUOUc-Ew2aEepk77hUZO8-pUPKWGyJAo

To claim this, I am signing this object:

jasonsperske / index.html
Created Jun 21, 2017
Get Location Information
View index.html
<!DOCTYPE html>
<meta http-equiv=content-type content="text/html;charset=UTF-8">
<title>GeoLocation Diagnostics</title>
<meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1">
<meta name=format-detection content="telephone=no">
<link href="" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script src="" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
jasonsperske / SendVictory.js
Created Mar 24, 2017
Fetches a RandomVictory and sends it to a IFTTT Maker WebHook (defiend in envrionment varibles)
View SendVictory.js
'use strict';
var https = require('https');
function fetchVictory(then, context, callback) {
var options = {
hostname: "",
port: 443,
path: "/random.json",
method: "GET"
jasonsperske / index.js
Created Mar 20, 2017
Indexing to Algolia
View index.js
'use strict';
const algoliasearch = require('algoliasearch'),
path = require('path'),
striptags = require('striptags'),
settings = require('nconf').argv().env().file({file: '../settings.json'}).defaults(),
localizations = require('../content/localizations.json'),
base_path = path.join(__dirname, '..'),
utils = require('../fileCMS-utils')(base_path),
algolia_settings = settings.get('algolia'),
client = algoliasearch(, algolia_settings.key, function(err, message) {
jasonsperske / README.MD
Last active Mar 1, 2017
AWS Status Page with fewer requests.

While waiting for the Amazon AWS Status page to report on the actual status of S3 (US-EAST-1) I saw this tweet (

The dashboard not changing color is related to S3 issue. See the banner at the top of the dashboard for updates.

After seeing this I started working out a way to generate the page from Gulp with as few HTTP requests as possible and thus as few depeancies as possible. This is that attempt (with some guessees as to their schema for status information). I also took the opporunity to fix some invalid HTML on thier site while retianing as close as possible the look and feel of their original site (though with this approach