Skip to content

Instantly share code, notes, and snippets.

View glenjamin's full-sized avatar

Glen Mailer glenjamin

View GitHub Profile
@glenjamin
glenjamin / generator.sch
Created January 14, 2015 18:34
scheme tinkering
(define (f yield)
(yield 1)
(yield 2)
(yield 3))
(define gen
(letrec ((pause '())
(resume '())
(yield (lambda (x)
(call/cc (lambda (k)
@glenjamin
glenjamin / darkpeak.js
Created January 5, 2015 13:47
self-censor current page
function blacken() {
var div = document.createElement('div');
var opacity = 0;
div.style.position = 'fixed';
div.style.top = 0;
div.style.bottom = 0;
div.style.left = 0;
div.style.right = 0;
div.style.opacity = opacity;
div.style.background = 'black';
@glenjamin
glenjamin / react-raf-batching.js
Last active August 17, 2021 14:33
requestAnimationFrame batching
/*eslint-env browser*/
/**
* Cribbed from:
* github.com/facebook/react/blob/master/src/addons/ReactRAFBatchingStrategy.js
* github.com/petehunt/react-raf-batching/blob/master/ReactRAFBatching.js
*/
var ReactUpdates = require('react/lib/ReactUpdates');
var ReactRAFBatchingStrategy = {
@glenjamin
glenjamin / prank.sh
Created October 29, 2014 09:38
Prank for when someone's left their computer unlocked
function cd() {
# Aliases
alias cd=''
alias exit=''
# Variables
NONE='\033[00m'
RED='\033[01;31m'
SLEEP=`which sleep`
SEQ=`which seq`
@glenjamin
glenjamin / keybase.md
Created August 7, 2014 23:49
keybase.md

Keybase proof

I hereby claim:

  • I am glenjamin on github.
  • I am glenjamin (https://keybase.io/glenjamin) on keybase.
  • I have a public key whose fingerprint is 11CE C764 0EDC 4B60 AB04 5CE4 263A CDF5 874C 2733

To claim this, I am signing this object:

@glenjamin
glenjamin / rspec-like-test.js
Last active August 29, 2015 13:56
The most Rspec-like mocha test I've managed to write so far
// The single letter variables are designed to be invisible
// Yes, there are a few global variables: t, s and expect
// The system under test has no globals, so I can't conflict!
var h = require('../spec-helper.js');
var command = require('../../lib/command-round-init.js');
describe('Command: round-init', function() {
beforeEach(function() {
@glenjamin
glenjamin / pool-transaction.js
Last active July 15, 2024 09:39
DB transaction from a connection pool in node-mysql
var mysql = require('mysql');
var pool = mysql.createPool('mysql://localhost');
inTransaction(pool, function(db, next) {
db.query("DELETE * FROM stuff", function(err) {
if (err) return next(err);
db.query("INSERT INTO stuff VALUES (1,2,3)", function(err) {
return next(err);
@glenjamin
glenjamin / test.php
Created December 12, 2013 17:38
PHPUnit data providers can have test docs too!
<?php
public function providerGetEventId() {
return array(
'wrong way around' => array(
'Premier League',
array('id' => 5,'name' => 'Hull', 'shortname' => 'HUL'),
array('id' => 6,'name' => 'Manchester City', 'shortname' => 'MNC'),
null
),
'different event type' => array(
@glenjamin
glenjamin / objectZip.js
Created December 10, 2013 17:36
objectZip iterator for javascript
var _ = require('underscore');
/**
* functional zip() for JS objects
*
* Skips keys not present in both sides
*
* @param a left object
* @param b right object
* @param f(key, aval, bval) iterator