Skip to content

Instantly share code, notes, and snippets.

@jehiah
jehiah / semver.py
Created Apr 10, 2017
Semver 2.0.0 compatible version comparison w/o regexes
View semver.py
def compare(a, b):
"""
Compare two version strings.
:return -1, 0, 1
:rtype: int
"""
a = map(_cast_int, a.split('+', 2)[0].split('.'))
b = map(_cast_int, b.split('+', 2)[0].split('.'))
@jehiah
jehiah / bitly_datastream.py
Created Feb 3, 2017
pynsq example for connecting to Bitly Datastream
View bitly_datastream.py
import json
import logging
import nsq
import sys
import tornado
import tornado.options
def handle_message(message):
print json.loads(message.body)['u']
message.finish()
@jehiah
jehiah / cyclists_with_cameras_stats_20161123.txt
Created Nov 23, 2016
Cyclists With Cameras stats for my first 339 TLC reports from 2015/10/27 through 2016/11/23
View cyclists_with_cameras_stats_20161123.txt
A follow up to stats for the first 200 at https://on.jehiah.cz/29J6lIX
Violations Cited
# each ∎ represents a count of 4. total 365
no passing zone - NY VTL 1126 [ 1] (0.27%)
(fhv) use/threat physical force - 54-12(g) [ 1] (0.27%)
no tint below 70% - VTL 375(12-a)(b)(2) [ 1] (0.27%)
(fhv) yield sign violation - 54-13(a)(3)(ix) [ 1] (0.27%)
(taxi) improper passing - 55-13(a)(3)(xi) [ 1] (0.27%)
(fhv) threats - 54-12(f) [ 1] (0.27%)
View pivot_csv.py
#!/usr/bin/env python
"""
Pivot a CSV file
$ cat <<EOF | python pivot_csv.py --numeric --headers
> row,column,value
> r1,c1,1
> r1,c2,1
> r1,c1,5
@jehiah
jehiah / cyclists_with_cameras_stats_20160715.txt
Created Jul 16, 2016
Cyclists With Cameras stats for my first 200 TLC reports from 2015/10/27 through 2016/7/15
View cyclists_with_cameras_stats_20160715.txt
A follow up to stats for the first 100 at https://bit.ly/1Se07j7
Violations Cited
# each ∎ represents a count of 3. total 221
no tint below 70 % - VTL 375(12-a)(b) [ 1] (0.45%)
use/threat of physical force - 54-12(g) [ 1] (0.45%)
no passing zone - NY VTL 1126 [ 1] (0.45%)
(fhv) unsafe lane change - 55-13(a)(3)(xii) [ 1] (0.45%)
obstructed license plate - NY VTL 402(b) [ 1] (0.45%)
(taxi) yield sign violation - 54-13(a)(3)(ix) [ 1] (0.45%)
@jehiah
jehiah / check_https_everywhere_duplicate_rulesets.go
Created Jul 6, 2016
check ruleset files in HTTPS-Everywhere for duplicate target definitions
View check_https_everywhere_duplicate_rulesets.go
package main
// This script is designed to check ruleset files in HTTPS-Everywhere for duplicate target definitions
import (
"encoding/xml"
"flag"
"path/filepath"
"io/ioutil"
"log"
@jehiah
jehiah / nsq_testing.go
Created Jun 13, 2016
Interface for testing nsq producers.
View nsq_testing.go
package nsqutils
import (
"sync"
"time"
"github.com/nsqio/go-nsq"
)
// Producer is an interface that nsq.Producer fulfills
View fetchtest.go
package main
import (
"bufio"
"errors"
"flag"
"fmt"
"net/http"
"os"
"sync"
@jehiah
jehiah / pivot_csv.py
Created Nov 30, 2015
Pivot a CSV table.
View pivot_csv.py
#!/usr/bin/env python
import sys
import csv
import tornado.options
from collections import defaultdict
def run():
data = defaultdict(dict)
columns = set()