Software design and development




View and fork the full source on GitHub:

What is it?

This jQuery plugin provides access to the onprogress event of the XMLHttpRequest object available in modern browsers.

This allows you to get the information needed to visually show download progress when your web application is making a large AJAX request.

The code has been tested in recent versions of Chrome/Chromium and in Firefox 4.


GodPL Screenshot

The presumptuously named GodPL (Gamer or Deity? Programming Language) is a project I created for CS 152: Introduction to Programming Languages in Spring 2009.

The goal of the assignment was to design and implement an interesting domain-specific language.

The domain I came up with was a virtual world with simple, simulated inhabitants who could eat, move around, sexually reproduce, and die. It was inspired largely by the classic alife game, Creatures.

The language, GodPL, is a C-style language that is used to program the general behavior of a creature (called a Briyya) in the game.  It has some syntactic constructs specific to event handling and time-based events.

I defined the grammar for GodPL using ANTLR. ANTLR was used to generate a lexer and parser in C#. I then used these to write a compiler that generates C# code from GodPL, and then uses Microsoft's CSharpCodeProvider library to compile the C# to an in-memory assembly.

Harvard Course Catalog

Based on a CFG babbler created for CS 51 in Spring 2007, by Andrew Granoff '09 and myself. The original was written in Scheme; this one is in PHP and has been greatly expanded. Enjoy! You can post your favorites in the Comments section.


An implementation of Martin Gardner's Hexapawn, with boards from 3x3 to 6x6. Features 2 learning AI models and a perfect AI player (minimax with alpha-beta pruning).

Reducing False and Irrelevant Alarms in Physiological Monitoring Systems

Research for the 2006 Intel Science Talent Search and NYC Science & Engineering Fair
Carried out at Memorial Sloan-Kettering Cancer Center, primarily in the summer of 2005.


Studies have shown that most alarms generated by physiological monitoring systems in modern hospitals are false or clinically irrelevant. This makes it difficult for nurses to pick out and respond to the relevant alarms, reducing efficiency and posing a potential risk to patients.

Syndicate content