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 / 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);
@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 / 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;
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 / 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
@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 / 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 / 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 / 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 / gist:aee809fdd547a4521b2eefae6770744d
Last active September 30, 2021 09:31
use curl to ping (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET or TFTP)
watch -n 0.5 curl --head --silent --write-out %{time_connect} google.com
watch -n 0.5 curl --head --silent --write-out %{time_connect} --output /dev/null google.com