Skip to content

Instantly share code, notes, and snippets.

@veiset
veiset / uiblogin.sh
Created November 25, 2012 17:02
uib login workaround
# Login script for UIB-proxy if you lack the following:
# Any web browser,
# a network manager,
# wireless network
# graphical user interface
echo "Username: "
read USER
echo "Password: "
read -s PASS
@veiset
veiset / gist:4215385
Created December 5, 2012 13:09
Solving Boolean expressions with Prolog
% Solving Boolean expressions with Prolog
% Parsing
% prop([-,+,a,*,b,c],T). gives: T = not(or(var(a), and(var(b), var(c))))
prop([A|R], var(A), R):- char_type(A, lower).
prop([-|A], not(C), R):- prop(A, C, R).
prop([+|A], or(C,D), R2):- prop(A, C, R1), prop(R1, D, R2).
prop([*|A], and(C,D), R2):- prop(A, C, R1), prop(R1, D, R2).
prop(T,A):- prop(T,A,[]).
@veiset
veiset / uibeduroam
Last active December 10, 2015 15:18
Wicd template for eduroam (University of Bergen)
# Wicd template for eduroam (University of Bergen / Universitetet I Bergen)
name = eduroam UIB
author = Vegard Veiset
version = 1
require username *Username password *Password
-----
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="eduroam"
@veiset
veiset / README.md
Last active February 27, 2016 08:07
python note_analyser | node notecopter.js

Ukulelecopter

A simple python script to analyze microphone data, and some javascript for detecting note patterns. The note patterns will be intercepted as node-ar-drone commands, and passed to the nodecopter.

Requires: nodejs (+ ar-drone) python (+ pyaudio, numpy)

Running the application:

def palindrom(x): return x == x[::-1]
print len([i for i
in range(1,1000000)
if palindrom(str(i)) and palindrom("{0:o}".format(i))])
MIN, MAX = 10, 100
primes = [str(prime) for prime
in range(MIN, MAX)
if all(prime%i != 0 for i in range(2, prime))]
def takeLowest(n, primes):
for i, prime in enumerate(primes):
if prime.startswith(n):
return primes.pop(i)
raise Exception("No such number exists")
BLACK = True
WHITE = False
SIZE = 10
pos = [0, 0]
board = [[WHITE for _ in range(SIZE)] for _ in range(SIZE)]
def moves(x,y):
return [[x-2, y-1],[x-2, y+1],[x-1, y-2],[x-1, y+2],
[x+1, y-2],[x+1, y+2],[x+2, y-1],[x+2, y+1]]
BLACK, WHITE, SIZE, MOVES = True, False, 10, [[-2,-1],[-2,1],[-1,-2],[-1,2],[1,-2],[1,2],[2,-1],[2,1]]
pos, board = [0, 0], [[WHITE for _ in range(SIZE)] for _ in range(SIZE)]
for _ in range(200):
x, y = pos
moves = map(lambda move: [x+move[0], y+move[1]], MOVES)
validMoves = filter(lambda pos: SIZE > pos[0] >= 0 and SIZE > pos[1] >= 0, moves)
sameColorMoves = filter(lambda move: board[x][y] == board[move[0]][move[1]], validMoves)
pos = sameColorMoves[0] if sameColorMoves else validMoves[-1]
with open('kilma_data_blindern.txt', 'r') as f:
data = [fields for fields
in [l.strip().split() for l in f.readlines()]
if len(fields) >= 2
if fields[1][3:5] == "12"]
print min(data, key=lambda x: float(x[3].replace(",", ".")))[1]
from itertools import permutations
def largestPrimeFactor(n, i=2):
while i * i <= n:
i, n = (i+1, n) if n % i else (i, n//i)
return n
print min([largestPrimeFactor(int("".join(n))) for n in permutations("123456789")])