Skip to content

Instantly share code, notes, and snippets.

@erjiang
erjiang / .gitconfig
Last active August 29, 2015 14:03
Eric's git config
[user]
name = Eric Jiang
email = eric@doublemap.com
[core]
editor = vim
[color]
branch = auto
diff = auto
status = auto
[alias]
@erjiang
erjiang / gist:3fbba5cdf7694c06eacd
Created March 22, 2015 19:14
哈利波特角色
榮恩 罗恩 [Luo2 en1] /Ron/
赫敏 赫敏 [He4 min3] /Hermione (PRC)/
妙麗 妙丽 [Miao4 li4] /Hermione (Tw)/
格蘭傑 格兰杰 [Ge2 lan2 jie3] /Granger (character from Harry Potter)/
斯内普 斯内普 [Si1 nei4 pu3] /Snape (PRC)/
石內卜 石內卜 [Shi2 nei4 bu3] /Snape (Tw)/
葛來分多 葛来分多 [Ge3 lai2 fen1 duo1] /Gryffindor (Tw)/
鄧布利多 邓布利多 [Deng4 bu4 li3 duo1] /Dumbledore (PRC)/
鄧不利多 邓不利多 [Deng4 bu4 li3 duo1] /Dumbledore (Tw)/
麦格 麦格 [Mai4 ge2] /McGonagall (character from Harry Potter)/
@erjiang
erjiang / jsoncheck.py
Created March 13, 2012 15:56
jsoncheck
#!/usr/bin/env python
"""jsoncheck checks a list of filenames to see if they are valid json files.
Usage:
jsoncheck file1 [file2 file3 ...]
jsoncheck returns 0 if all files loaded successfully, and 1 otherwise.
"""
import json
@erjiang
erjiang / merge-building-addrs.py
Last active October 15, 2015 21:44 — forked from balrog-kun/merge-building-addrs.py
Merge two .osm files, one with building footprints, one with address nodes. Write output.osm.
#! /usr/bin/python2
# vim: fileencoding=utf-8 encoding=utf-8 et sw=4
import sys
import os
import xml.etree.cElementTree as ElementTree
import string
outroot = ElementTree.Element("osm", { "version": "0.6" })
bldgroot = ElementTree.parse(sys.argv[1]).getroot()
#!/bin/bash
# copied from https://github.com/exogen/dotfiles/blob/730fb8e2b72b2fc3aa3d90b889874bb5195e1d07/.profile#L65
# Skip DASH manifest for speed purposes. This might actually disable
# being able to specify things like 'bestaudio' as the requested format,
# but try anyway.
# Get the best audio that isn't WebM, because afplay doesn't support it.
# Use "$*" so that quoting the requested song isn't necessary.
@erjiang
erjiang / dp.py
Created April 22, 2013 03:32 — forked from xarg/dp.py
# pure-Python Douglas-Peucker line simplification/generalization
#
# this code was written by Schuyler Erle <schuyler@nocat.net> and is
# made available in the public domain.
#
# the code was ported from a freely-licensed example at
# http://www.3dsoftware.com/Cartography/Programming/PolyLineReduction/
#
# the original page is no longer available, but is mirrored at
# http://www.mappinghacks.com/code/PolyLineReduction/
@erjiang
erjiang / .hgrc
Created May 21, 2013 20:24
My .hgrc
[ui]
username = Eric Jiang <eric@doublemap.com>
editor = vim
merge = vimdiff
[extensions]
hgext.graphlog =
pager =
rebase =
color =
transplant =
@erjiang
erjiang / php_get_class.php
Created January 9, 2014 17:03
PHP inheritance and get_class
<?php
class BigClass {
function whatIsThis() {
echo __METHOD__ . ": " . get_class() . "\n";
}
function whatIsThisNow() {
echo __METHOD__ . ": " . get_class($this) . "\n";
}
#!/bin/bash
# Given image files, check the file to see if it has an embedded rating. If it
# does, write it to a RawTherapee sidecar file (.pp3), unless there already is
# a sidecar file.
for FILE in $*
do
RATING=`exiftool -p '$Rating' $FILE`
if [ "$RATING" -ne "0" -a ! -z "$RATING" ]
#!/bin/bash
# This command can fix timezone offsets for Nikon D850 RAW photos.
# Other vendors may have different date/time metadata.
# the hours offset should be the difference in hours to add to the camera's time
HOURS_OFFSET=20:00:00
# this should be the location's actual TZ offset
NEW_OFFSET=+13:00
exiftool -ModifyDate+=$HOURS_OFFSET -CreateDate+=$HOURS_OFFSET -OffsetTime=$NEW_OFFSET -OffsetTimeOriginal=$NEW_OFFSET -OffsetTimeDigitized=$NEW_OFFSET -TimeZone=$NEW_OFFSET -DateTimeOriginal+=$HOURS_OFFSET -overwrite_original *.NEF