Skip to content

Instantly share code, notes, and snippets.

Kelvin Nicholson kelvinn

Block or report user

Report or block kelvinn

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
@kelvinn
kelvinn / InstallPythonGDAL.md
Last active Nov 29, 2018
Installing GDAL (Python 3.6) on Mac OS X
View InstallPythonGDAL.md

How-To: Install GDAL Python Bindings

I've found two ways to install the GDAL Python bindings on Mac.

Via GDAL Framework / QGIS

First, you can install the GDAL Framework via QGIS (or get it directly), and then do...

@kelvinn
kelvinn / MyEndpointAfter.java
Created Mar 30, 2015
Resolving Android authenticated calls to Google Cloud Endpoint
View MyEndpointAfter.java
@ApiMethod(name = "sayHi", clientIds = {
Constants.WEB_CLIENT_ID,
Constants.ANDROID_CLIENT_ID},
audiences = { Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID },
scopes = {
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile" })
@kelvinn
kelvinn / cmd.sh
Created Jul 24, 2014
Example of using Apache Bench (ab) to POST JSON to an API
View cmd.sh
# post_loc.txt contains the json you want to post
# -p means to POST it
# -H adds an Auth header (could be Basic or Token)
# -T sets the Content-Type
# -c is concurrent clients
# -n is the number of requests to run in the test
ab -p post_loc.txt -T application/json -H 'Authorization: Token abcd1234' -c 10 -n 2000 http://example.com/api/v1/locations/
@kelvinn
kelvinn / new-do-db.yml
Last active Aug 29, 2015
Creating Digital Ocean Droplets with unique names using Ansible
View new-do-db.yml
---
- name: Prepare New Digital Ocean Droplet
hosts: you.example.com
user: ansible
tasks:
- action: shell date +%s | sha256sum | base64 | head -c 6
register: rand_var
- digital_ocean: >
state=present
command=droplet
@kelvinn
kelvinn / gist:701325f936af15fec982
Created Jun 27, 2014
Ansible Tower - setting SSH port numbers for hosts
View gist:701325f936af15fec982
# Add this to the YAML section:
ansible_ssh_port: 1234
@kelvinn
kelvinn / create_dev_superuser.py
Created Jun 10, 2014
Example of creating Django superuser (with password) in dev environment using SaltStack
View create_dev_superuser.py
import os
import sys
# First, add the project to PATH. Adjust as needed.
PWD = os.path.dirname(os.path.abspath(__file__))
PROJECT_PATH = os.path.abspath(os.path.join(PWD, '../../../../'))
sys.path.append(PROJECT_PATH)
# Second, configure this script to use Django
import django
@kelvinn
kelvinn / StationList.csv
Created Jun 6, 2014
An example usage of the googlemaps package to lookup origin / destination information using Google Maps API.
View StationList.csv
Sydenham Station Marrickville Station
Dulwich Hill Station
Hurlstone Park Station
Canterbury Station
Campsie Station
Bankstown Station
Berala Station
Sefton Station
Leightonfield Station
Ashfield Station
@kelvinn
kelvinn / splunk_loader.py
Created Jun 6, 2014
This is a sample snippet test for loading events from CouchDB (using _changes) into Splunk.
View splunk_loader.py
import os
import sys
import json
import time
import pytz
import couchdb
import dateutil.parser
from email import utils
from datetime import datetime
import splunklib.client as client
@kelvinn
kelvinn / gist:512f72bf1015047af945
Created Jun 6, 2014
Recursively Change Line Endings (Windows)
View gist:512f72bf1015047af945
REM On Unix you would do this: find ./ -type f -exec dos2unix {} \;
REM After installing dos2unix.exe in Windows, you can create a small bat script with the below in it to
REM recursively change the line endings. Careful if you have any hidden directories (e.g. .git)
for /f "tokens=* delims=" %%a in ('dir "C:\Users\username\path\to\directory" /s /b') do (
"C:\Program Files\unix2dos.exe" %%a
)
@kelvinn
kelvinn / twitter_convert.py
Created Nov 21, 2013
This gist shows how to take the timeline backup from Twitter and transform it into a dictionary using the headers as keys. For example, if the CSV file looked had two columns, col1 and col2, it would result in list that looked like: [{'col1': 'hello', 'col2': 'world'}, {'col1': 'bye', 'col2': 'world'}] It also converts the format used by Twitter…
View twitter_convert.py
import csv
from dateutil import parser
qs_list = []
with open('C:\\Users\\username\\Desktop\\tweets.csv', 'rb') as csvfile:
qsreader = csv.reader(csvfile, delimiter=',', quotechar='"')
header = qsreader.next()
for row in qsreader:
d = parser.parse(row[6])
row[6] = d.isoformat()
You can’t perform that action at this time.