Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@barrbrain
barrbrain / header.bin
Created March 15, 2011 13:46
Simple XML record stream processor. Uses node-binary, node-postgres and xml2js-expat.
@barrbrain
barrbrain / mergesort.hs
Created March 18, 2011 12:49
An attempt at an bottom-up functional representation of mergesort
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 March 13, 2012 00:24
A script to calculate a push strategy for a ref, given a pack size limit.
#!/bin/bash
LIMIT=$1
TIP=$2
BS=$(( 64 * 1024 ))
COUNT=$(( ( $LIMIT ) / $BS ))
packsize() {
COMMITS=$1
ENDPOINT=$TOP
@barrbrain
barrbrain / .gitconfig
Last active December 15, 2015 11:09 — forked from dropwhile/.netrc
[url "https://github.com/"]
insteadof = git@github.com:
@barrbrain
barrbrain / commit-msg
Last active December 19, 2015 09:18
git hooks to CYA when using hg-git mode with git-remote-hg
#!/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 December 19, 2015 09:39
A quick and dirt external site crawler using capybara-mechanise.
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 October 14, 2015 15:03
SSE4.2 implementation of David Barr's similarity hash
/* 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 August 29, 2015 14:08
Generate English vocabulary guide from eXtended WordNet; requires python-igraph
#!/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 November 30, 2015 07:00
Script to render a video of quantization effects in daala
#!/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 October 31, 2015 02:56
Calculate PSNR with CIE76 difference method
#!/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: