Skip to content

Instantly share code, notes, and snippets.

View craigpatten's full-sized avatar

Craig Patten craigpatten

View GitHub Profile
@craigpatten
craigpatten / auth0-slack.js
Created September 6, 2016 02:16
Post Auth0 events to Slack
// https://auth0.com/docs/rules
function (user, context, callback) {
var request = require("request");
var event = (context.stats.loginsCount > 1) ? "Login" : "Signup";
var options = {
url: "https://hooks.slack.com/...",
json: true,
@craigpatten
craigpatten / github-people.py
Last active July 11, 2016 13:24
Enumerate GitHub org membership
#!/usr/bin/env python
import os
import requests
headers = { "authorization": "token %s" % os.environ["GITHUB_TOKEN"] }
teams = requests.get("https://api.github.com/orgs/%s/teams" % os.environ["GITHUB_ORG"], headers=headers).json()
everyone = set()
@craigpatten
craigpatten / hashwalk.js
Created April 13, 2016 02:53
Hashing a filesystem hierarchy.
#!/usr/bin/env node
const fs = require("fs");
const crypto = require("crypto");
const walk = require("walk");
const concat = require("concat-stream");
const walker = walk.walk("/usr/share/man");
const hashes = {};
@craigpatten
craigpatten / inhale.py
Last active September 10, 2015 03:15
Yank data from Swift and do [something] with it.
#!/usr/bin/env python3
"""
Yank data from Swift and do [something] with it.
"""
import json
import lzma
import os
import sys
@craigpatten
craigpatten / swift-report.py
Last active August 29, 2015 14:26
swift-report.py
#!/usr/bin/env python
import json
import logging
import os
import random
from multiprocessing.pool import ThreadPool
import requests

Keybase proof

I hereby claim:

  • I am craigpatten on github.
  • I am craigpatten (https://keybase.io/craigpatten) on keybase.
  • I have a public key whose fingerprint is 1BBB 9DBC B113 37E9 06E5 4D4B 283E BC1A A897 9C84

To claim this, I am signing this object:

@craigpatten
craigpatten / prettify-qstat.py
Created March 31, 2015 01:58
prettify(qstat)
#!/usr/bin/env python
"""
Prettify qstat scheduler allocations.
Example:
$ echo foo/1+foo/2+foo/15+foo/16+blah/20+blah/21+blah/30+blah/31+blah/40 | prettify-qstat.py
blah: 20-21, 30-31, 40, foo: 1-2, 15-16
"""
@craigpatten
craigpatten / hcp-4gb.py
Last active August 29, 2015 14:17
Hitachi Content Platform (HCP) - invalid HTTP responses for objects that are a multiple of 4GB in size.
#!/usr/bin/env python
import boto, base64, hashlib
from boto.s3.connection import S3Connection
server = "your-hcp-endpoint.acme.com"
hs3_id = base64.b64encode("your-hcp-username")
hs3_secret = hashlib.md5("your-hcp-password").hexdigest()
hs3 = S3Connection(aws_access_key_id = hs3_id, aws_secret_access_key = hs3_secret, host = server, debug = 2)
@craigpatten
craigpatten / aws-region-domains.md
Last active November 9, 2022 13:01
AWS region domains

Note that this isn't a *.amazonaws.com wildcard. They're just somewhat enthusiastic delegations!

The current live regions (not including China) are:

> grep production output.md | awk '{print $2}'
ap-northeast-1.amazonaws.com
ap-southeast-1.amazonaws.com
ap-southeast-2.amazonaws.com
eu-central-1.amazonaws.com
@craigpatten
craigpatten / dig.txt
Created January 21, 2015 01:01
us-central-1?
> dig @u1.amazonaws.com +norecurse us-central-1.amazonaws.com ns
; <<>> DiG 9.8.3-P1 <<>> @u1.amazonaws.com +norecurse us-central-1.amazonaws.com ns
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52516
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION: