Skip to content

Instantly share code, notes, and snippets.

Jehiah Czebotar jehiah

Block or report user

Report or block jehiah

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
@jehiah
jehiah / over.py
Created May 9, 2018
Script to filter output from `uniq -c` to only items that appear more than `--frequency=n` times.
View over.py
#!/bitly/local/bin/python
import tornado.options
import logging
import sys
if __name__ == "__main__":
tornado.options.define("frequency", type=int)
tornado.options.parse_command_line()
for line in sys.stdin:
@jehiah
jehiah / xls_to_csv.py
Created May 18, 2017
Convert xls to CSV
View xls_to_csv.py
"""
This package uses openpyxl and xlrd for the widest coverage in converting XLS to CSV
"""
import openpyxl
from openpyxl.utils.exceptions import InvalidFileException
import tornado.options
import os.path
import csv
import sys
@jehiah
jehiah / pizza.py
Last active Jan 13, 2019
Calculate the ratio of ingredients needed for the perfect quantity of pizza dough
View pizza.py
#!/usr/bin/env python
# Calculate the ratio of ingredients needed for the perfect quantity of pizza dough
#
# $ pizza.py --target-oz=49
# target: 49.00oz 1389gram
# flour: 800 grams (400 x 2)
# water: 520 grams
# salt: 16 grams
# sugar: 12 grams
@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
You can’t perform that action at this time.