Skip to content

Instantly share code, notes, and snippets.

View jasonsperske's full-sized avatar

Jason Sperske jasonsperske

View GitHub Profile
@jasonsperske
jasonsperske / so.scheme
Created August 19, 2014 20:46
Nested for loops in scheme
(define (SO x y)
(let* ((x! (car x)) (y! (car y)))
(while (< x! (car (cdr x)))
(set! y! (car y))
(while (< y! (car (cdr y)))
(print (string-append (number->string x!) "-" (number->string y!)))
(set! y! (+ y! 1))
)
(set! x! (+ x! 1))
)

Keybase proof

I hereby claim:

  • I am jasonsperske on github.
  • I am sperske (https://keybase.io/sperske) on keybase.
  • I have a public key whose fingerprint is E40C A8A8 8284 94A9 823C 951D 7865 73E7 33D8 50FA

To claim this, I am signing this object:

var page = require('webpage').create();
page.open('http://github.com/', function() {
page.render('github.png');
phantom.exit();
});
@jasonsperske
jasonsperske / CompressionFilter.java
Last active August 29, 2015 14:16
A flexible compression filter for Tomcat web apps created by http://stackoverflow.com/a/11068672/16959
public class CompressionFilter implements Filter {
public void destroy() {}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
String acceptEncoding = httpRequest.getHeader(HttpHeaders.ACCEPT_ENCODING);
if (acceptEncoding != null) {
if (acceptEncoding.indexOf("gzip") >= 0) {
GZIPHttpServletResponseWrapper gzipResponse = new GZIPHttpServletResponseWrapper(httpResponse);
@jasonsperske
jasonsperske / index.html
Last active September 3, 2015 03:54
A barcode book scanner with an export to CSV file
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="http://momentjs.com/downloads/moment.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
<script>
$(function() {
$('#books').on('click', 'button', function(e) {
e.preventDefault();
@jasonsperske
jasonsperske / wizard.html
Created April 24, 2015 18:19
A Bootstrap styled wizard
<!-- example from http://getfuelux.com/javascript.html#wizard -->
<link href="//www.fuelcdn.com/fuelux/3.6.3/css/fuelux.min.css" rel="stylesheet">
<script src="//www.fuelcdn.com/fuelux/3.6.3/js/fuelux.min.js"></script>
<div class="wizard" data-initialize="wizard" id="myWizard">
<ul class="steps">
<li data-step="1" data-name="campaign" class="active"><span class="badge">1</span>Campaign<span class="chevron"></span></li>
<li data-step="2"><span class="badge">2</span>Recipients<span class="chevron"></span></li>
<li data-step="3" data-name="template"><span class="badge">3</span>Template<span class="chevron"></span></li>
</ul>
<div class="actions">
From http://sndtst.com/Doom
You will find these meta tags:
<meta property='sndtst:title' content='Doom'/>
<meta property='sndtst:platform' content='PC'/>
<meta property='sndtst:composed_by' content='Bobby Prince' role='Composer/Arranger'/>
background: linear-gradient(223deg, #00ffbd, #7d00ff, #ef583a);
background-size: 600% 600%;
-webkit-animation: Channel 42s ease infinite;
-moz-animation: Channel 42s ease infinite;
-o-animation: Channel 42s ease infinite;
animation: Channel 42s ease infinite;
@-webkit-keyframes Channel {
    0%{background-position:81% 0%}
    50%{background-position:20% 100%}
    100%{background-position:81% 0%}
@jasonsperske
jasonsperske / trim.sh
Created April 20, 2016 21:38
Trim the first 3 characters from all filenames
for f in *; do mv "$f" "${f:3}"; done
function Parser() {
var int = function(n) {
//keep code readable
return parseInt(n, 10);
};
var def = function(field, source, defaults) {
return source[field] ? source[field] : (defaults ? defaults[field] : undefined);
};
var pad = function(number) {
if (number < 10) {