Skip to content

Instantly share code, notes, and snippets.

@vedantk
vedantk / opencv2.2.patch
Created May 30, 2011 20:37
opencv 2.2 for mldemos (non-hacky version)
From 207a4c622081c32ebcb25ce0825e6c7704f81ac0 Mon Sep 17 00:00:00 2001
From: Vedant Kumar <vk@vedantk.com>
Date: Mon, 30 May 2011 16:37:55 -0400
Subject: [PATCH] Added compat headers, removed hacky cvSumPixels workaround
---
MLDemos/public.h | 9 ++++-----
MLDemos/sampleManager.cpp | 4 ++--
MLDemos_variables.pri | 3 +--
3 files changed, 7 insertions(+), 9 deletions(-)
@vedantk
vedantk / gist:1121978
Created August 3, 2011 05:37
Direct translation of f(n) into Scheme.
(define (f n)
(if (< n 3)
n
(+ (f (- n 1))
(* 2 (f (- n 2)))
(* 3 (f (- n 3))))))
@vedantk
vedantk / gist:1121980
Created August 3, 2011 05:38
An iterative version of f(n).
(define (f' n)
(define (f'-iter a b c count)
; f(n) = a + b + c = f(n-1) + 2f(n-2) + 3f(n-3).
; Use f(n) to calculate f(n+1) = f(n) + 2f(n-1) + 3f(n-2).
(if (= count (+ n 1))
a
(f'-iter (+ a b c) (* 2 a) (* 3 (/ b 2)) (+ count 1))))
(if (< n 3)
n
; f(3) = f(2) + 2f(1) + 3f(0).
@vedantk
vedantk / autopoke.sh
Created October 14, 2011 04:43
A script to escalate Poke Wars on Facebook
#!/bin/bash
# Vedant Kumar <vsk@berkeley.edu>
echo "Initializing..."
echo "You have 3 seconds to hover over your friend's cog menu."
sleep 3
eval $(xdotool getmouselocation --shell)
CMX=$X
CMY=$Y
@vedantk
vedantk / odd_memcpy.c
Created November 29, 2011 01:00
clang static analysis test
int main() {
int a[2] = {1, 2}, b = 3;
memset(a, 0, 12);
printf("a1 = %d, a2 = %d, b = %d\n", a[0], a[1], b);
int d[2] = {2, 3}, c = 1;
memset(&c, 0, 12);
printf("c = %d, d1 = %d, d2 = %d\n", c, d[0], d[1]);
printf( "&a[] = %p\n"
@vedantk
vedantk / unshred.py
Created December 2, 2011 07:01
Instagram unshredder challenge
#!/usr/bin/python2
# unshred.py - Vedant Kumar <vsk@berkeley.edu>
import sys
import math
import colorsys
from collections import deque
from PIL import Image
@vedantk
vedantk / bst.erl
Created December 5, 2011 02:54
Binary search trees in Erlang
-module(bst).
-export([bst_create/0, bst_insert/2, bst_search/2]).
bst_create() -> [].
bst_insert(Bst, N) ->
case Bst of
[] -> [N, [], []];
[Root, Lhs, Rhs] ->
if
@vedantk
vedantk / bananagramatron.py
Created December 29, 2011 07:43
Bananagramatron
'''
>>> find('rage')
{'ager', 'gear', 'rage'}
>>> find('lascivious')
{'viscus', 'salvo', 'ciao', 'souls', 'lacs', 'ovisac', 'clavi', 'lasso', 'ovals', 'laics', 'solus', 'vail', 'ulvas', 'voila', 'cusso', 'assoil', 'ossa', 'cuss', 'sauls', 'iliac', 'cols', 'vails', 'sialic', 'silo', 'loss', 'ulva', 'louis', 'colas', 'salvos', 'saul', 'visuals', 'salic', 'ovisacs', 'ascus', 'coss', 'ails', 'cilia', 'sail', 'sous', 'laic', 'aviso', 'oculi', 'viol', 'vaus', 'avos', 'caulis', 'sola', 'aioli', 'oasis', 'sols', 'lass', 'vacs', 'cauls', 'cola', 'cavils', 'soli', 'civil', 'aiolis', 'sials', 'locus', 'sacs', 'oval', 'silva', 'sisal', 'casus', 'clivia', 'vials', 'visas', 'ocas', 'calo', 'viscous', 'silvas', 'avisos', 'silicas', 'clavus', 'oils', 'visual', 'coulis', 'asci', 'luvs', 'clivias', 'sial', 'socials', 'vial', 'coals', 'soul', 'vocal', 'ossia', 'vocals', 'silvics', 'loca', 'soil', 'loci', 'aulic', 'soils', 'ilia', 'viols', 'oscula', 'silos', 'violas', 'sics', 'also', 'viola', 'sails', 'lavs', 'cavil', 'coils', '
@vedantk
vedantk / yin-yang.rkt
Created January 13, 2012 21:47
The call/cc yin yang puzzle extended to arbitrarily large n.
(define (yin-yang n)
(define yv
(for/vector ([i (in-range n)])
((lambda (cc) (printf "~a " i) cc) (call/cc (lambda (k) k)))))
(for ([i (in-range (- n 1))])
((vector-ref yv i) (vector-ref yv (+ i 1)))))
;; > (yin-yang 0)
;; > (yin-yang 1)
;; 0
@vedantk
vedantk / matrix.py
Created March 16, 2012 05:19
Distributed matrix multiplication with Bridge
#!/usr/bin/python
import sys
from random import random
from flotype.bridge import Bridge
bridge = Bridge(api_key='abcdefgh')
def start_job():
n = 32