Skip to content

Instantly share code, notes, and snippets.


Christoph Champ christophchamp

View GitHub Profile
christophchamp /
Created Mar 26, 2014
Remove a Rackspace Cloud Network from a Cloud Server
# SEE:
USERNAME=<REDACTED> # This is your Rackspace account's username
API_KEY=<REDACTED> # This is your Rackspace account's API Key
ACCOUNT=<REDACTED> # This is your Rackspace account number
REGION=dfw # Or, "iad", "ord", "lon", "syd", "hkg"
# Authenticate to obtain your 24-hour valid token:
TOKEN=`curl -s -XPOST -d'{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"'$USERNAME'","apiKey":"'$API_KEY'"}}}' -H"Content-type:application/json" | python -c 'import sys,json;data=json.loads(;print data["access"]["token"]["id"]'`

Keybase proof

I hereby claim:

  • I am christophchamp on github.
  • I am xtof ( on keybase.
  • I have a public key whose fingerprint is 8D0A 5408 3B16 7656 6B65 EBAC 26D5 622E 8B70 5E64

To claim this, I am signing this object:

View cors-nginx.conf
# Wide-open CORS config for nginx
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
christophchamp / trove.bash_completion
Created Jun 18, 2015
Bash completion for `trove` (OpenStack DBaaS API)
View trove.bash_completion
COMPREPLY=( $(compgen -W "--configuration --marker database-list metadata-show secgroup-delete-rule cluster-delete user-revoke-access root-show --users database-delete --limit datastore-show configuration-detach backup-list user-grant-access help configuration-list delete --region --replica_of metadata-update create show -h cluster-show user-create --include-clustered configuration-create restart configuration-default metadata-list --backup --detach-replica-source user-update-attributes --new_password metadata-edit configuration-parameter-show backup-show --new_host flavor-show datastore-list configuration-instances --databases list --description root-enable secgroup-list-rules configuration-patch metadata-create resize-flavor --help cluster-list --remove_configuration --collate user-list datastore-version-list --instance cluster-instances cluster-create database-create secgroup-add-rule --datastore configuration-update configuration-parameter-list secgro
View gist:8e086f73c148510c0fc6
# Steganography trick:
$ cat >> bar.gif # "hides" '' inside 'bar.gif'
$ qiv bar.gif # views just fine (note: you can use any image viewer you like here)
$ unzip bar.gif # extracts ''
# Example:
$ echo "HELLO WORLD" > file.txt
$ zip -r file.txt
$ cat >> bar.gif
$ hexdump -C bar.gif |tail -12
# Rename:
# FROM: "Introduction___Networking_tutorial_(1_of_13)-qHzZUmP1vvON.mp4"
# TO: "nettut-01_of_13_-_Introduction-qHzZUmP1vvON.mp4"
for f in *.mp4; do \
[[ $f =~ ^(.*)___Networking_tutorial_\(([0-9]+)_of_13\)-(.*)$ ]]
mv "$f" "nettut-$(printf "%02d" ${BASH_REMATCH[2]})_of_13_-_${BASH_REMATCH[1]}-${BASH_REMATCH[3]}"
christophchamp /
Created Apr 22, 2012
Vet a given E-mail address
def vet_email(email_address):
"""Vet email addresses. The local part (the part before the '@') must not
exceed 64 characters and the domain part (after the '@') must not
exceed 255 characters. The entire email address length must not exceed
320 characters.
local_part = re.sub(r'^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$', '\\1', email_address)
domain_part = re.sub(r'^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$', '\\2', email_address)
if len(local_part) > 64:
return False
christophchamp /
Created Jul 29, 2012
Calculates amino acid codon frequency
# Calculate amino acid codon frequency
from collections import defaultdict
#the first 600 nucleotides from GenBank: AAHX01097212.1
rna = ("tcccccgcagcttcgggaacgtgcgggctcgggagggaggggcctggcgccgggcgcgcg"
View gist:6419896
import hmac
from hashlib import sha1
from sys import argv
from time import time
if len(argv) != 5:
print 'Syntax: <method> <url> <seconds> <key>'
print 'Example: GET' \
christophchamp /
Created Oct 2, 2013
This simple script will change/update the Content-Type for all objects in our Rackspace Cloud Files container.
import os
import pyrax
YOUR_REGION="" # E.g., "ORD", "DFW", etc.
#pyrax.set_setting('identity_type', 'rackspace')