Skip to content

Instantly share code, notes, and snippets.

import * as d3 from "d3";
@jehiah
jehiah / pivot_csv.py
Created November 30, 2015 15:06
Pivot a CSV table.
#!/usr/bin/env python
import sys
import csv
import tornado.options
from collections import defaultdict
def run():
data = defaultdict(dict)
columns = set()
@jehiah
jehiah / nsq.spec
Created August 20, 2015 15:58
example RPM specfile for nsq - http://nsq.io/
%define name nsq
%define version 0.3.6.alpha
%define release 1
%define path usr/local
%define __os_install_post %{nil}
%define github_account bitly
%define github_project nsq
%define clone_account bitly
%define commit 925f82a0fa7d6abe3652bb31c4834699a8b1c318
@jehiah
jehiah / disabled_nsq_reader.py
Created June 12, 2015 01:03
A pynsq Reader that polls for a file to transparently enable/disable
import os.path
import logging
import tornado.ioloop
from nsq import Reader as BaseReader
from nsq import run
class Reader(BaseReader):
def __init__(self, *args, **kwargs):
max_in_flight = kwargs['max_in_flight']
@jehiah
jehiah / nsq_testing.go
Last active June 30, 2020 08:13
NSQ Producer testing abstraction
package nsqutils
import (
"sync"
"time"
nsq "github.com/nsqio/go-nsq"
)
// Producer is an interface that nsq.Producer fulfills
@jehiah
jehiah / check_recent_ts.sh
Created March 31, 2015 01:18
Monitor files for recent timestamps
#!/bin/bash
WARN="180"
CRITICAL="300"
USE_MODIFY_TIME=false # default to use the contents of the file
while [ "$1" != "" ]; do
param=${1%%=*}
value=${1#*=}
case $param in
@jehiah
jehiah / gist:237577c9a5843861a668
Created February 25, 2015 14:49
clear_nsqd_topics_and_channels.py
#!/bin/env python2.7
"""
A script to clear out nsq topics and channels. This is particularly useful in dev for when
topics naturally backup, or when launching a producer with some time before a consumer exists
"""
import tornado.options
import tornado.httpclient
import logging
import json
import urllib
@jehiah
jehiah / libevent-1.4.14b-bitly2.patch
Created January 28, 2015 18:28
Bitly patches for libevent-1.4.14b
diff -urp libevent-1.4.14b-stable/configure libevent-1.4.14b-stable-fix/configure
--- libevent-1.4.14b-stable/configure 2010-06-20 09:06:18.000000000 -0400
+++ libevent-1.4.14b-stable-fix/configure 2012-05-09 15:14:09.000000000 -0400
@@ -2988,7 +2988,7 @@ fi
# Define the identity of the package.
PACKAGE=libevent
- VERSION=1.4.14b-stable
+ VERSION=1.4.14b-bitly2
@jehiah
jehiah / run_test.sh
Created January 27, 2015 06:20
A set of scripts to compare hashing between Go (gomemcache with ketama) and libmemcached (with ketama consistent) from @davemarchevsky
#!/bin/bash
set -e
# Run C test
gcc -g -std=c99 -L/bitly/local/lib -I/bitly/local/include -lmemcached -o test_consistent_hashing test_consistent_hashing.c
./test_consistent_hashing < testdata.txt > c_hash_results
rm -f test_consistent_hashing
# Run go test
go run test_consistent_hashing.go > go_hash_results
@jehiah
jehiah / reader.py
Created August 23, 2014 14:07
Example NSQ Reader
"""
Usage:
./reader.py --nsqd-tcp-address=address:port --topic=topic --channel=channel
"""
import nsq
import tornado.options
def handler(message):