Skip to content

Instantly share code, notes, and snippets.

@paddycarver
paddycarver / upload.go
Created April 27, 2012 00:30
Upload a file to IronWorker from Go
package main
import (
"fmt"
"net/http"
"mime/multipart"
"bytes"
"os"
"io"
"io/ioutil"
@paddycarver
paddycarver / test.sh
Last active January 25, 2021 00:00
Testing a Go package with subpackages and getting good coverage reports.
#! /bin/bash
go get -u github.com/golang/lint/golint
go get -u github.com/paddyforan/combinedcoverage
go get -u github.com/wadey/gocovmerge
cd $GOPATH/src/path/to/your/package
go vet $(go list ./... | grep -v '/vendor/')
go list ./... | grep -v /vendor/ | xargs -L1 golint
mkdir -p coverage
@paddycarver
paddycarver / crx-build.sh
Created February 10, 2011 11:26
A bash script that compiles Google Chrome extension folders into .crx files
#!/bin/bash -e
#
# Purpose: Pack a Chromium extension directory into crx format
if test $# -ne 2; then
echo "Usage: crxmake.sh <extension dir> <pem path>"
exit 1
fi
dir=$1

Keybase proof

I hereby claim:

  • I am paddycarver on github.
  • I am paddycarver (https://keybase.io/paddycarver) on keybase.
  • I have a public key ASD5wBuaVIpLpcjb7XF-30QZy-QAMdIMSjzFMpIq65X_1Qo

To claim this, I am signing this object:

@paddycarver
paddycarver / gist:4008599
Created November 3, 2012 20:21
Concurrency-safe averages calculation and storage for Redis using a script
local avg = tonumber(redis.call("get", "avg")) if avg == nil then return { err = "avg not found" } end local datapoints = tonumber(redis.call("get", "datapoints")) if datapoints == nil then return { err = "datapoints not found" } end local raw = avg * datapoints datapoints = datapoints + 1 raw = raw + ARGV[1] local newavg = raw / datapoints redis.call("set", "avg", newavg) redis.call("set", "datapoints", datapoints) return tostring(newavg)
function prompt_char {
git branch >/dev/null 2>/dev/null && echo '%' && return
echo '$'
}
function get_directory {
DIR=${PWD/#$HOME/\~}
if [[ ! -f ~/.specialdirs || ! -r ~/.specialdirs ]]; then
echo $DIR && return
fi
@paddycarver
paddycarver / nsq-Dockerfile
Created July 11, 2014 10:20
Dockerfiles for NSQ images.
FROM google/golang
RUN go get github.com/tools/godep
RUN go get github.com/bmizerany/assert
ADD . /gopath/src/github.com/bitly/nsq
RUN godep get github.com/bitly/nsq/...
RUN cd /gopath/src/github.com/bitly/nsq && godep restore
@paddycarver
paddycarver / cafe.go
Created January 29, 2016 08:28
Whippersnapper.com concurrency exercises
package main
import (
"fmt"
"math/rand"
"sync"
"time"
)
func useComputer(tourists chan int, done chan struct{}) {
@paddycarver
paddycarver / callmemaybe.go
Last active December 15, 2015 02:39
Hey, I just met you, and this is crazy, but here's a random number, it may ask you to call me.
package main
import (
"crypto/rand"
"fmt"
"math/big"
)
type action func(bool)
@paddycarver
paddycarver / retweeted_by.go
Created March 1, 2013 03:42
Find out who retweeted your tweet, sorted by how many followers they have.
package main
import (
"encoding/json"
"flag"
"fmt"
"io/ioutil"
"net/http"
"sort"
"strconv"