Skip to content

Instantly share code, notes, and snippets.

@joostrijneveld
joostrijneveld / courses_per_semester.py
Created August 25, 2013 14:18
Downloads the course index of a Radboud prospectus and groups courses per quarter / semester.
#! /usr/bin/env python
import argparse
import urllib2
import re
from bs4 import BeautifulSoup
def setup_args():
parser = argparse.ArgumentParser(description='Downloads the course index of a Radboud prospectus and groups courses per quarter / semester.')
parser.add_argument('courselistURL',
@joostrijneveld
joostrijneveld / tboxes.cpp
Last active December 23, 2015 18:19
Computing the T-boxes that enable fast computation of AES through lookup.
#include <stdint.h>
#include <stdio.h>
using namespace std;
unsigned char s[256] =
{
0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,
0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,
0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,
@joostrijneveld
joostrijneveld / combinepdf.sh
Last active March 11, 2021 23:17
Combines PDF files and adds white pages in between to allow double-sided printing without mixing documents. Requires a blank.pdf file.
#! /bin/bash
if [ -z "$1" ]; then
echo "Specify which folder contains the PDFs"
exit 1
fi
OUTFILE=combined_$1.pdf
if command -v convert >/dev/null 2>&1; then

Keybase proof

I hereby claim:

  • I am joostrijneveld on github.
  • I am joostrijneveld (https://keybase.io/joostrijneveld) on keybase.
  • I have a public key whose fingerprint is 5336 27EA 8A21 A2B8 0260 E542 A4FE 39CF 49CB C553

To claim this, I am signing this object:

@joostrijneveld
joostrijneveld / .gitignore
Created March 27, 2014 10:23 — forked from kogakure/.gitignore
.gitignore for LaTeX files including *.pdf
*.acn
*.acr
*.alg
*.aux
*.bbl
*.blg
*.dvi
*.glg
*.glo
*.gls
@joostrijneveld
joostrijneveld / gpg2qrcodes.sh
Created May 20, 2014 19:43
Producing printable QR codes for persistent storage of GPG private keys
# Heavily depends on:
# libqrencode (fukuchi.org/works/qrencode/)
# paperkey (jabberwocky.com/software/paperkey/)
# zbar (zbar.sourceforge.net)
# Producing the QR codes:
# Split over 4 codes to ensure the data per image is not too large.
gpg --export-secret-key KEYIDGOESHERE | paperkey --output-type raw | base64 > temp
split temp -n 4 IMG
for f in IMG*; do cat $f | qrencode -o $f.png; done
@joostrijneveld
joostrijneveld / risk.py
Last active August 29, 2015 14:06
Computes if/when it makes sense for the defending player in Risk to choose to throw only one die (if allowed).
#! /usr/bin/env python
def printmatrix(matrix):
""" source:
http://stackoverflow.com/questions/13214809/pretty-print-2d-python-list """
s = [[str(e) for e in row] for row in [['['+str(n)+']' for n in range(1, 7)]]+matrix]
lens = [len(max(col, key=len)) for col in zip(*s)]
fmt = '\t'.join('{{:{}}}'.format(x) for x in lens)
table = ['['+str(n)+"]\t"+fmt.format(*row) for (row, n) in zip(s, range(0, len(s)+1))]
@joostrijneveld
joostrijneveld / triangles.py
Created October 21, 2014 12:39
This file contains the solution to Problem 67 of Project Euler
#! /usr/bin/env python
with open('p067_triangle.txt') as f:
triangle = [[int(y) for y in x.strip().split(' ')] for x in f.readlines()]
upsidedown = list(reversed(triangle))
rowpairs = zip(upsidedown, upsidedown[1:])
for bot, top in rowpairs:
for i, x in enumerate(top):
top[i] = x + max(bot[i], bot[i+1])
print(triangle[0][0])
@joostrijneveld
joostrijneveld / homer.py
Created October 30, 2014 12:07
Homer Simpson using Turtle graphics, transcribed from http://youtu.be/UnLz7CaBSFU
from turtle import *
def Homer():
tShirt()
mouth()
rightEye()
face()
eyePositioning()
leftEye()
ear()
@joostrijneveld
joostrijneveld / scpscreenshots.sh
Created March 3, 2015 10:34
Shell script that watches the desktop for screenshots (OSX default format) and then copies them to a remote using scp, leaving the URL available on the clipboard.
#! /bin/bash
# change the paths on line 9 and 10 to match your specific configuration
/usr/local/bin/fswatch -0 ~/Desktop | while read -d "" event; \
do \
if [[ ${event} == ~/Desktop/Screen* ]] && [[ -e ${event} ]]; then
newname=`cat /dev/urandom | env LC_CTYPE=C tr -dc 'a-zA-Z0-9' | head -c 16`
scp "${event}" example.com:/var/www/files/screenshots/$newname.png > /dev/null
echo -n "http://files.example.com/screenshots/$newname.png" | pbcopy