Skip to content

Instantly share code, notes, and snippets.

Grant Trebbin GrantTrebbin

Block or report user

Report or block GrantTrebbin

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
@GrantTrebbin
GrantTrebbin / si470x_log_processor.py
Created May 10, 2015
Create a series of images to demonstrate weather related events using python and matplotlib
View si470x_log_processor.py
#!/usr/bin/python
import csv
import sys
from datetime import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.image as image
import matplotlib.lines as mlines
import os.path
@GrantTrebbin
GrantTrebbin / imCompress.py
Created May 21, 2015
Compressing Similar PNG Images
View imCompress.py
#!/usr/bin/python
from PIL import Image
import numpy
import argparse
import os
import sys
#Configure argument parser to take input arguments
@GrantTrebbin
GrantTrebbin / QRBackup.sh
Last active Aug 7, 2019
How to encode and decode a file backed up as a series of printed QR codes
View QRBackup.sh
# How to encode and decode a file backed up as a series of printed QR codes
# Install the required tools
sudo apt-get update
sudo apt-get install zbar-tools imagemagick qrencode
################################################################################
# Convert the file to a base 64 encoded format. Probably not needed as QR codes
@GrantTrebbin
GrantTrebbin / MailStat.py
Created Oct 19, 2015
Crudely analyse the emails in an mbox file to generate statistics
View MailStat.py
import mailbox
from email.header import decode_header
import re
import itertools
regex = re.compile('[^a-zA-Z0-9]')
words = []
for message in mailbox.mbox('Inbox.mbox'):
subject, encoding = decode_header(message['subject'])[0]
@GrantTrebbin
GrantTrebbin / MagField.py
Created Nov 3, 2015
A quick demonstration of the magnetic field of a circular current loop
View MagField.py
import numpy as np
import matplotlib.pyplot as plt
import scipy.special as sp
a = 1.55
current = 1
mu = 4 * np.pi / 10000000
# equal to sqrt(4ra(z^2 + (a+r)^2)^(-1))
def k_val (R, Z):
@GrantTrebbin
GrantTrebbin / MagField2.py
Created Nov 28, 2015
In plane magnetic field of a current loop of radius a, distance r from the loop axis. Field will be perpendicular to the plane.
View MagField2.py
import numpy as np
import matplotlib.pyplot as plt
import scipy.special as sp
a = 1.55
current = 1
mu = 4 * np.pi / 10000000
# equal to sqrt(4ra(z^2 + (a+r)^2)^(-1))
def k_val (R, Z):
@GrantTrebbin
GrantTrebbin / orderGraph.py
Created Feb 28, 2016
Visualizing Periodic Order Schedules
View orderGraph.py
import random
import math
import sqlite3
import numpy
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
def order_trajectory(base, colours, trajectory):
scale = 500
day_trajectory = trajectory / 24
View GenerateCards.py
import itertools as itt
from collections import deque
# Each element of a sequence can have these values
possible_elements = [0, 1, 2, 3, 4, 5, 6, 7]
element_count = len(possible_elements)
# A sequence contains this many elements
sequence_length = 4
@GrantTrebbin
GrantTrebbin / DirHash.ps1
Created Oct 15, 2016
Create fingerprints of directories and files that incorporate name and directory structure
View DirHash.ps1
function Hex_To_Bytes($hex){
# Takes a string with an even number of hexadecimal characters and
# converts it two characters at a time to an array of bytes half as long
# Initialize ouput byte array
$hexLength = $hex.Length
$byteLength = $hexLength / 2
$bytes = ,0 * ($byteLength)
# generate bytes by taking 2 hexadecimal characters at a time
@GrantTrebbin
GrantTrebbin / Backup.ps1
Last active Oct 30, 2016
Create encrypted and compressed backups only when warranted
View Backup.ps1
<#
.SYNOPSIS
Backs up and encrypts a directory or file
.DESCRIPTION
Backs up files or directories by adding it them a tar file and then
encrypting it with a public key. Becuase public key encryption is used
there are no passwords stored anywhere.
gpg must be installed and the public key you want to use must be imported.
You can’t perform that action at this time.