Columbia College '15
(planned) Computer Science major
From Washington, D.C. suburbs
I like math!
FreeSeat is a Common Lisp application designed to aid in planning
seating for events. If people were reasonable and got along, this
would be a snap and this application would be wholely
unneccesary. People, however, are not reasonable and do not get
along. Some people have "spouses" or "significant others" with whom
necessarily must sit, and some people have "rivals" or "enemies"
with whom they necessarily cannot sit. Similarly, some people have
"friends" with whom they want to sit, or people who "annoy them" with
whom they do not want to sit. There are varying degrees of desire in
Rather than encourage everyone to work out their differences
peacefully and make friends with one another, why not use the power of
mathematics to construct socially advantageous seating arrangements?
While a provably optimal solution would be incredibly difficult to
find, when it comes to dinner parties, "close enough" is close
enough. This program ensures that as long as all groups of people who
must sit together are together and no two people who cannot sit
together are together, and just does its best with everyone else.
It does so via an optimization technique known as a Markov chain Monte
Carlo method. Considering the constraints of the problem, it explores
the state space in search of the seating arrangement with the greatest
The program takes input in the form of a CSV file (see the FreeSeat
launch party document for an example) that has a field for a guest's
name, a list of people with whom they must sit, a list of people
with whom they cannot sit, a list of people that they should sit
with (scored 0-99), and a list of people that they should not sit with
(scored 0-99). It groups them currently at tables of size 5, but this
is trivially changable. The program is invoked using "clisp
load.lisp". Replace clisp with your favorite Common Lisp interpreter,
but it's only been tested in clisp.
This program was written for a hackathon, so please ignore the hacks
used to get it working in a short timeframe (i/o capacities in
particular) and bugs that escaped our rigorous and extensive (read:
Sick of leaving the terminal to see what's happening in the world? Us too. That's why we wrote ncnyt. This NCurses-based application allows you to read quality articles from the New York Times without ever leaving the warm embrace of the command line.
A visualization of social networking activity projected into the physical space, using some rather interesting building materials.
Uses the Temboo and the Foursquare APIs to access location-aware data, pulled from friendly Foursquare denizens, Twitter, and national news, which is then parsed and shown in a visual display on the the titular plate.
Instagram for audio!
Record an audio soundbite and apply various filters before posting the SoundCloud link to Facebook or Twitter.
A series of public API's about Columbia to access that awesome data!
Have you ever wanted to cheat at a jigsaw puzzle? Now you can, I guess.
Privacy-preserving auctions with commitment to pay. The user submits a Bitcoin transaction when he/she is bidding, and only the largest transaction can be revealed and verified, guaranteed by the multi-player encryption system. The largest Bitcoin transaction will be automatically confirmed at the end of auction. Inspired by the paper "Multi-Party Computation of Polynomials and Branching Programs without Simultaneous Interaction" at Eurocrypt '13, available here at: http://link.springer.com/chapter/10.1007%2F978-3-642-38348-9_34