Skip to content

Instantly share code, notes, and snippets.

@usrlocalben
usrlocalben / gist:126121e8ef79f767132197cba5930a6b
Last active September 18, 2016 03:43 — forked from mikemilano/gist:6923819
Python's Twisted framework watching a directory and broadcasting changes to zeromq.
View gist:126121e8ef79f767132197cba5930a6b
from twisted.internet import inotify
from twisted.python import filepath
import zmq
from pprint import pprint
class FileSystemWatcher(object):
def __init__(self, path_to_watch):
self.path = path_to_watch
self.context = zmq.Context()
@usrlocalben
usrlocalben / oh_hell.py
Created May 15, 2016 04:37
"oh hell!" card game logic
View oh_hell.py
"""
"oh hell!" card game logic
(aka contract whilst)
benjamin yates & dave renne, 2016
renne house rules edition
"""
import sys
import random
from itertools import chain
View cde.py
"""
Let's scrape a few profile details from MyCDE (RIP)
For Sydney, Summer 2013 (Found on an old hdd)
Also, "new message."
"""
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
USERNAME = 'user'
View pydux.py
"""
python + redux == pydux
Benjamin Yates, 2016
Redux: http://redux.js.org
A somewhat literal translation of Redux & counter demo,
incl. apply_middleware, logging middleware, and thunks.
Tornado is used to demonstrate thunks and async actions.
@usrlocalben
usrlocalben / teddybear.py
Last active April 24, 2016 00:49
back-tracking solver for Scramble Squares puzzle
View teddybear.py
"""
back-tracking solver for Scramble Squares puzzle
benjamin yates, 2016
as seen here:
http://www.amazon.com/dp/B000BWZRAK
(the product example image is not solvable)
teddy bears:
Aa = fuzzy bear
@usrlocalben
usrlocalben / pmr.py
Created February 29, 2016 23:19
python parallel map-reduce onefiler
View pmr.py
"""
map-reduce for text-file inputs, parallel version
"""
import os
import re
import sys
import json
import hashlib
from datetime import datetime
from multiprocessing import cpu_count, Queue, Process
@usrlocalben
usrlocalben / punch.py
Last active January 1, 2016 10:09 — forked from vontrapp/punch.py
Fix blocksize argument
View punch.py
#!/usr/bin/python
import ctypes
import ctypes.util
import os
import re
null_re = re.compile('^\0*$')
c_off_t = ctypes.c_int64
@usrlocalben
usrlocalben / stackblur.cpp
Created October 1, 2012 02:24
stackblur - c++, floating-point, vectorized
View stackblur.cpp
/*
* "stackblur"
* originally, Mario Klingemann, mario@quasimondo.com
* this implementation, Benjamin Yates (benjamin@rqdq.com)
* http://incubator.quasimondo.com/processing/stackblur.pde
*
* this blur routine seems to be quite popular.
*
* unfortunately, mario didn't comment anything.
* but, it's easy to see it's just a flavor of a two-pass
@usrlocalben
usrlocalben / raymarch.php
Created September 6, 2012 23:50
raymarch in php
View raymarch.php
<?php
// oh boy, lets raymarch in php.
function LERP( $a, $b, $t ) { return (1.0-$t)*$a + $t*$b; }
function CLAMP($a,$x,$y){ return ($a<$x?$x:($a>$y?$y:$a)); }
function CLAMP01($a) { return CLAMP($a,0.0,1.0); }
@usrlocalben
usrlocalben / Stats.js
Created September 1, 2012 21:25 — forked from rygorous/Stats.js
Half-space tri rasterizers in JS
View Stats.js
// stats.js r9 - http://github.com/mrdoob/stats.js
var Stats=function(){var h,a,r=0,s=0,i=Date.now(),u=i,t=i,l=0,n=1E3,o=0,e,j,f,b=[[16,16,48],[0,255,255]],m=0,p=1E3,q=0,d,k,g,c=[[16,48,16],[0,255,0]];h=document.createElement("div");h.style.cursor="pointer";h.style.width="80px";h.style.opacity="0.9";h.style.zIndex="10001";h.addEventListener("mousedown",function(a){a.preventDefault();r=(r+1)%2;0==r?(e.style.display="block",d.style.display="none"):(e.style.display="none",d.style.display="block")},!1);e=document.createElement("div");e.style.textAlign=
"left";e.style.lineHeight="1.2em";e.style.backgroundColor="rgb("+Math.floor(b[0][0]/2)+","+Math.floor(b[0][1]/2)+","+Math.floor(b[0][2]/2)+")";e.style.padding="0 0 3px 3px";h.appendChild(e);j=document.createElement("div");j.style.fontFamily="Helvetica, Arial, sans-serif";j.style.fontSize="9px";j.style.color="rgb("+b[1][0]+","+b[1][1]+","+b[1][2]+")";j.style.fontWeight="bold";j.innerHTML="FPS";e.appendChild(j);f=document.createElement("div");f.style.position="relati