Skip to content

Instantly share code, notes, and snippets.

View brandon-lockaby's full-sized avatar

Brandon Lockaby brandon-lockaby

View GitHub Profile
@brandon-lockaby
brandon-lockaby / Color.js
Last active March 1, 2022 21:55
Color.js
if(typeof module !== "undefined") {
module.exports = Color;
} else {
this.Color = Color;
}
function Color() {
var r,g,b;
if(arguments.length === 1) {
var hexa = arguments[0].toLowerCase();
@brandon-lockaby
brandon-lockaby / EventEmitter.js
Created November 18, 2013 21:27
Let's make a new EventEmitter
var EventEmitter = function() {
this._events = {};
};
EventEmitter.prototype.on = function(evtn, fn) {
if(!this._events.hasOwnProperty(evtn)) this._events[evtn] = [];
this._events[evtn].push(fn);
};
EventEmitter.prototype.off = function(evtn, fn) {
if(!this._events.hasOwnProperty(evtn)) return;
var idx = this._events[evtn].indexOf(fn);
@brandon-lockaby
brandon-lockaby / RateLimit.js
Last active March 1, 2022 21:55
RateLimit.js
var RateLimit = function(interval_ms) {
this._interval_ms = interval_ms || 0; // (0 means no limit)
this._after = 0;
};
RateLimit.prototype.attempt = function(time) {
var time = time || Date.now();
if(time < this._after) return false;
this._after = time + this._interval_ms;
@brandon-lockaby
brandon-lockaby / miner.js
Created May 12, 2013 08:41
educational node bitcoin getwork pool cpu mining
// educational node bitcoin getwork pool cpu mining
var request = require('request');
var crypto = require('crypto');
var json_rpc_id = 1;
function sha256(buf) {
var sha = crypto.createHash('sha256');
sha.update(buf);
@brandon-lockaby
brandon-lockaby / pulseconfiguration
Created February 18, 2013 05:34
pulseaudio configuration for recording stuff
pactl load-module module-null-sink sink_name=from_apps sink_properties=device.description="from_apps"
pactl load-module module-null-sink sink_name=to_rec sink_properties=device.description="to_rec"
pactl load-module module-loopback source=alsa_output.pci-0000_00_10.1.analog-stereo.monitor sink=to_rec
pactl load-module module-loopback source=from_apps.monitor sink=to_rec
var Bufferer = function() {
this.buffer = new Buffer(0);
this.expects = [];
return this;
};
Bufferer.prototype.receive = function(buffer) {
var new_buffer = new Buffer(this.buffer.length + buffer.length);
this.buffer.copy(new_buffer);
buffer.copy(new_buffer, this.buffer.length);
@brandon-lockaby
brandon-lockaby / proxy.js
Last active March 1, 2022 21:55
node.js tcp proxy
var net = require("net");
var Proxy = function() {
};
Proxy.to = function(dst_host, dst_port) {
var proxy = new Proxy();
proxy.dstHost = dst_host;
proxy.dstPort = dst_port;
proxy.mid = [];
return proxy;
@brandon-lockaby
brandon-lockaby / compile.bat
Created January 24, 2012 20:57
java: compiling and jarring
rem dir *.java /s /B > sources_list.txt
javac -classpath "${CLASSPATH}" @sources_list.txt
pause
jar cmf META-INF/MANIFEST.MF test.jar *
pause
@brandon-lockaby
brandon-lockaby / downloadImages.js
Created January 10, 2012 08:56
q&d js downloadImage & downloadImages
window.downloadImage = function(url, cb) {
var img = new Image();
img.onerror = function() {
cb("onerror", img);
};
img.onabort = function() {
cb("onabort", img);
};
img.onload = function() {
cb(false, img);