Skip to content

Instantly share code, notes, and snippets.

David Michael Barr barrbrain

Block or report user

Report or block barrbrain

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@barrbrain
barrbrain / header.bin
Created Mar 15, 2011
Simple XML record stream processor. Uses node-binary, node-postgres and xml2js-expat.
@barrbrain
barrbrain / mergesort.hs
Created Mar 18, 2011
An attempt at an bottom-up functional representation of mergesort
View mergesort.hs
import Control.Arrow
import Data.List
import Data.Function
main = interact (show.(mergeSort (<=)).head.lines)
merge :: (a -> a -> Bool) -> [a] -> [a] -> [a]
merge _ xs [] = xs
merge _ [] ys = ys
merge p (x:xs) (y:ys) =
@barrbrain
barrbrain / packsize.sh
Created Mar 13, 2012
A script to calculate a push strategy for a ref, given a pack size limit.
View packsize.sh
#!/bin/bash
LIMIT=$1
TIP=$2
BS=$(( 64 * 1024 ))
COUNT=$(( ( $LIMIT ) / $BS ))
packsize() {
COMMITS=$1
ENDPOINT=$TOP
View .gitconfig
[url "https://github.com/"]
insteadof = git@github.com:
@barrbrain
barrbrain / commit-msg
Last active Dec 19, 2015
git hooks to CYA when using hg-git mode with git-remote-hg
View commit-msg
#!/bin/sh
test "2" = `grep -e '^--HG--$' -e '^branch : [^ ][^ ]*$' "$1"|wc -l` || {
echo >&2 Missing hg branch specification.
exit 1
}
@barrbrain
barrbrain / spider.rb
Last active Dec 19, 2015
A quick and dirt external site crawler using capybara-mechanise.
View spider.rb
require 'capybara/mechanize'
require 'sinatra/base'
Capybara.run_server = false
Capybara.current_driver = :mechanize
class TestApp < Sinatra::Base; get '/' do; end end
Capybara.app = TestApp
Capybara.app_host = "http://127.0.0.1/"
class Spider
@barrbrain
barrbrain / fmix32.c
Last active Oct 14, 2015
SSE4.2 implementation of David Barr's similarity hash
View fmix32.c
/* See https://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp
for original plain C/C++ implementation */
/* build with -msse4.2 */
#include <smmintrin.h>
#include <emmintrin.h>
FORCE_INLINE fmix32_m128i ( __m128i h )
{
@barrbrain
barrbrain / xwn2dict.py
Last active Aug 29, 2015
Generate English vocabulary guide from eXtended WordNet; requires python-igraph
View xwn2dict.py
#!/usr/bin/python
import xml.sax
from igraph import Graph
from collections import defaultdict
class XWN( xml.sax.ContentHandler ):
def __init__(self):
self.graph = Graph(directed = True)
self.synSets = []
self.currentTag = ""
@barrbrain
barrbrain / visualize_quality_curve.sh
Last active Nov 30, 2015
Script to render a video of quantization effects in daala
View visualize_quality_curve.sh
#!/bin/bash
readlinkf(){ perl -MCwd -e 'print Cwd::abs_path shift' "$1";}
DAALA_ROOT="$(readlinkf ${DAALA_ROOT:-.})"
INPUT_IMAGE="$(readlinkf $1)"
OUTPUT_VIDEO="$(readlinkf ${2:-$(basename "$INPUT_IMAGE").webm})"
cq="0 1 2 3 4 5 7 9 11 13 16 19 22 25 28 33 38 44 50 57 64 73 82 92 104 117 132 148 166 187 209 235 263 295 330 369 413 462"
P=${P:-4}
(
cd /tmp
FIFOS="`echo -n $cq|sed 's/[0-9][0-9]*/&.y4m/g'`"
@barrbrain
barrbrain / PSNR-CIE76.bash
Last active Oct 31, 2015
Calculate PSNR with CIE76 difference method
View PSNR-CIE76.bash
#!/bin/bash
# REQUIRES imagemagick compiled with HDRI feature enabled
SIZE=$(head -n1 "$1" | sed -E 's/.*W([0-9]*) H([0-9]*).*/\1x\2/')
FMT="-size $SIZE -depth 8 -sampling-factor 4:2:0 -interlace plane -set colorspace Rec709YCbCr"
convert $FMT YUV:<(tail -n+3<"$1") YUV:<(tail -n+3<"$2") \
-colorspace Lab -compose difference \
-composite -evaluate Pow 2 -separate -evaluate-sequence Add \
-filter box -resize 1x1\! -format "%[fx:-10*log(u)]\n" info:
You can’t perform that action at this time.