Side Projects
Nitwit
A programming language that uses prefix notation for amusement
purposes: for example, a = (b + c) * d
looks like = a * + b c d
.
Nitwit is imperative, strongly typed, and uses reference-counting garbage
collection.
The Nitwit compiler produces C code, which can then be compiled to an
executable.
Retroactive Priority Queue
A priority queue that supports adding and removing updates (insert
and
delete_min
) on past versions of the data structure.
Retroactivity differs from persistence in that the effects of changing past
operations propagate to the present (think, Back to the Future).
I implemented the data structure proposed by Demaine, Iacono, and Langerman,
which performs all operations in logarithmic time.
Stealth
A top-down 2D game where you collect coins while avoiding guards on patrol. The area each guard sees (their visibility polygon) is computed in O(n log n).
Gemini
A two-player platformer where players cooperatively solve puzzles made out of logic gates. Provides real-time multiplier using WebSockets.
vali.li
In Bulgarian, “Vali li?” means “Is it raining?” This website has the answer!