Skip to content

Instantly share code, notes, and snippets.

Matthew Simpson msimpson

Block or report user

Report or block msimpson

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
@msimpson
msimpson / miller_rabin
Created Jul 23, 2011
An implementation of the Miller Rabin Primality Test
View miller_rabin
#!/usr/bin/env python
import random
def MillerRabinPT(n,k=100):
n = int(n)
if n<2: return False
if n==2 or n==3: return True
if not n%2: return False
@msimpson
msimpson / numconv
Created Jul 23, 2011
Convert an integer into a spoken number.
View numconv
#!/usr/bin/env python
# Number to name convertion.
import sys
n = (sys.argv[1] if sys.argv[1].isdigit() else 0) if len(sys.argv)>1 else 0
if len(n)>30:
print("Error: Number too large.")
sys.exit(1)
@msimpson
msimpson / raid5
Created Jul 23, 2011
A simple script to demonstrate how Raid 5 uses parity to recover data.
View raid5
#!/usr/bin/env ruby
$drives = {
:a => 'Example 1.',
:b => 'abcdefghijklmnopqrstuvwxyz',
:c => '0123456789',
:d => '3.14159265',
:parity => ''
}
@msimpson
msimpson / matrix
Created Jul 21, 2011
Send the Matrix message to someone's terminal (great for scaring ssh users).
View matrix
#!/bin/bash
[ ! "$1" ] && {
echo "Usage: matrix <pts-number>"
echo "Grabs control of a terminal and sends the Matrix message."
echo
echo "Choose a pts number:"
echo -e "Number\tUser\tName"
ps aux | awk '/pts\// && /bash/ {print $7":\t("$1")\t"$11}'
exit
}
@msimpson
msimpson / define
Created Jul 21, 2011
Google definition (this method is frowned upon by Google, use for educational purposes only).
View define
#!/usr/bin/env ruby
# Define: a Google Dictionary API tool
require "rubygems"
require "net/http"
require "json"
if not ARGV[0]; exit; end
query = ARGV.join("+").gsub(" ","+")
@msimpson
msimpson / cfire
Created Jul 21, 2011
Curses based ASCII art fire animation.
View cfire
#!/usr/bin/python
import curses, random
screen = curses.initscr()
width = screen.getmaxyx()[1]
height = screen.getmaxyx()[0]
size = width*height
char = [" ", ".", ":", "^", "*", "x", "s", "S", "#", "$"]
b = []
@msimpson
msimpson / pipes
Created Jul 21, 2011
2D Bash version of the Pipes screensaver.
View pipes
#!/bin/bash
declare -i f=75 s=13 r=2000 t=0 c=1 n=0 l=0
declare -ir w=$(tput cols) h=$(tput lines)
declare -i x=$((w/2)) y=$((h/2))
declare -ar v=( [00]="\x83" [01]="\x8f" [03]="\x93"
[10]="\x9b" [11]="\x81" [12]="\x93"
[21]="\x97" [22]="\x83" [23]="\x9b"
[30]="\x97" [32]="\x8f" [33]="\x81" )
OPTIND=1
You can’t perform that action at this time.