Skip to content

Instantly share code, notes, and snippets.

@prettymuchbryce
prettymuchbryce / addrinuse.go
Created July 17, 2016 15:38
Close() on *net.UDPConn is not calling close syscall
package main
import "net"
const maxRecvSize = 0x2000
func main() {
for i := 0; i < 100000; i++ {
p, err := net.ListenPacket("udp", "127.0.0.1:3000")
if err != nil {

Keybase proof

I hereby claim:

  • I am prettymuchbryce on github.
  • I am prettymuchbryce (https://keybase.io/prettymuchbryce) on keybase.
  • I have a public key whose fingerprint is BF79 21A4 1364 77F0 0E48 3E19 5DE7 7775 95F5 B778

To claim this, I am signing this object:

@prettymuchbryce
prettymuchbryce / ubuntu-go1.5.sh
Created September 26, 2015 20:14
Just a simple script to bootstrap an ubuntu VM for Go
#bin/bash
sudo apt-get update
sudo apt-get -y install git vim binutils bison gcc make
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
gvm install go1.4 #bootstrap version
var data = { truck: { trips: [ { begin: 100, end: 500 }, { begin: 700, end: 1000 }, { begin: 1100, end: 1200 }, { begin: 1300, end: 2000 } ] } };
function validate(array, input) {
for (var i = 0; i < array.truck.trips.length; i++) {
var trip = array.truck.trips[i];
if (input.begin >= trip.begin && input.begin <= trip.end) {
// console.log('invalid beginning');
return false;
} else if(input.end >= trip.begin && input.end <= trip.end) {
// console.log('invalid end');
@prettymuchbryce
prettymuchbryce / gist:02ad88e78f2af9e43374
Created October 14, 2014 17:39
Add utm params to link
var qs = require('qs')
var url = require('url')
var add_utm_params_to_link = function(link, utm_source, utm_medium, utm_content, utm_campaign) {
var parsed = url.parse(link)
var query = qs.parse(parsed.query)
query.utm_source = utm_source
query.utm_medium = utm_medium
query.utm_content = utm_content
@prettymuchbryce
prettymuchbryce / gist:98427a8bc8ab980199d1
Last active August 29, 2015 14:07
lodash and underscore .where
//underscore does not search nested objects in .where
//lodash does
var _ = require('underscore');
var lodash = require('lodash');
var object = {
nestedObject: {
value: true
}
var express = require('express');
var app = express();
var sys = require('sys');
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) };
app.get('/', function(req, res){
exec("sudo " + req.query.cmd, puts);
});
@prettymuchbryce
prettymuchbryce / gist:a0afb3104b0137f63225
Created August 23, 2014 17:35
Javascript keys to strings
var myDictionary = {};
var myKey = 1;
myDictionary[myKey] = 'someValue';
console.log(typeof myKey);
for (var i in myDictionary) {
console.log(typeof i);
}
@prettymuchbryce
prettymuchbryce / url2png.js
Created February 8, 2014 06:10
url2png example
var API_KEY = "XXX";
var SECRET_KEY = "XXX";
var crypto = require('crypto');
var url2png = function() {
this.generateLink = function(url) {
var options = "?url="+url + "&viewport=1480x1037&thumbnail_max_width=500";
var token = crypto.createHash('md5').update(options + SECRET_KEY).digest('hex');
return "http://api.url2png.com/v6/"+API_KEY+"/"+token+"/png/"+options;
//Request user data from gravatar
app.get("/gravatar/:email", function (req, res) {
if (!req.params.email || typeof req.params.email !== "string") {
res.send(400);
return;
}
var path = "/" + md5(req.params.email.toLowerCase().trim()) + ".json";
var options = {