In my spare time I like to develop software, sometimes others have found it useful. Checkout my github profile for projects not listed here. Also, I recently released, an online editor for the AVR-based kilobot platform.

Kilobots Toolkit


The Kilobots Toolkit is a cross-platform solution (supported in Windows, Linux and OS X) to reprogram and control the Kilobots wirelessly.

After upgrading the overhead controller and kilobots to the latest firmware, the Kilobots Toolkit allows you to easily reprogram a swarm of robots in just a few seconds. Unlike its predecessor, the Kilobots Toolkit does not require reprogramming the Overhead controller to upload the program to the kilobots.

The Kilobot Toolkit has no external dependencies. However, you will need a development environment for the AVR processor in order to compile your programs. I suggest you try as a free and easier alternative to developing the software.

Ape Challenge


Some time ago, a friend forwarded me an article on nature about a chimpanzee who performed amazing feats on a computer by remembering the ordering of sequences of numbers.

There is also really cool youtube video of the chimp here performing these tests. My friend assured me he could certainly do better than the monkey, and we made a bet. Thus, I created this game to collect the bet. The game is meant to be played in a cellphone, but you can play it on your browser too.

Game Play

There are two game modes, ordering and recall. In ordering the goal is to click on the numbers, from smallest to largest, as quickly as possible. In recall, you will be displayed a series of numbers for a short amount of time, later you will be asked to recall their positions in order (I am betting you wont beat the chimp).

Play it here.

Set Game


This is one of my favorite quick boardgames, it can be played with any number of people, and a game usually lasts less than 2 minutes.

Game play

Cards are dealt face up, 12 at a time. Players must try to find a set in the cards (a set is a group of 3 cards which satisfy all the properties listed below). The player who finds the set first, takes the set and three more cards are dealt to replace the set. If all players are convinced that not set is present, 3 additional cards are dealt. The game ends when you run out of cards, and the player who collected the most cards wins.

  • They all have the same number, or they have three different numbers.
  • They all have the same symbol, or they have three different symbols.
  • They all have the same shading, or they have three different shadings.
  • They all have the same color, or they have three different colors.

Play it here.



I developed this to facilitate giving presentations when on my linux laptop, and some friends in my lab found it useful (so I decided to release it).

GRandRock is a rudimentary (yet useful) tool to change resolutions and manage multiple screens using the X RandR extensions (through xrandr). The utility will sit on your system tray and when clicked it will display the supported resolutions of any monitors connected to your computer.

The only dependency required to run grandrock is the xrandr command line tool, which is available in the x11-server-utils Debian/Ubuntu package.

Source code is here, documentation is here.


A simple JavaScript library to convert HTML to markdown.

This library has no external dependencies, and has been tested in Chrome, Safari and Firefox. It probably works with Internet Explorer, but your mileage may vary.

Downshow is tiny!, only 4.5kb minified and 1.5kb gziped.

For example, to convert the following HTML code to markdown.

<div id="content">
A simple JavaScript library to convert HTML to markdown.
<h2>Quick Start</h2>
That was <strong>very</strong> simple right?

Use this:

var html_content = document.getElementById('content').innerHTML;
var markdown = downshow(html_content);

Which produces:

# Downshow

A simple JavaScript library to convert HTML to markdown

## Quick Start

That was **very** simple right?

Source code is here.



CookieBin is a small (2k minified) javascript library to store, retrieve and delete cookies in the web browser. It is a stand alone library, but can be used in conjunction with any javascript framework.

Where JSON support is available, it allows the user to store and retrieve complex objects or arrays using cookies.

Source code is here.



VIM-like keyboard control for chrome. This is extension attempts to give you the benefits of vim-like keybindings without being overly obtrusive.

Unfortunately I cant offer it on the google-chrome extensions website, since that requires a fee. I dont use it anymore, so your mileage may vary.

Source code is here.