friendwave

largely based on teachyourselfcs.com