XO Activities

File Share Activity

File Share is an activity that I wrote for the XO Laptop, specifically the older XO that is running the 82 version of sugar. This version does not support file transfers between xo laptops as the newer 84 version of sugar does have limited support. This activity is still an improvement over 84 which only allows individual files to be transfered to a specific recipient.

The majority of this project was done by myself. There was a proof of concept project that I based the activity from. I also have had some external testing and suggestions from the community through replies from mailing list announcements about the activity.

Fortune Hunter

Fortune Hunter is a dungeon style adventure game for the XO aimed to teach fourth grade math. This game started development in my open source seminar class. After the class was finished, I joined the project as a part of a co-op opportunity. My role in this project was mostly support. Some examples of this range from helping the team convert their code so that it may be packaged as an independent XO activity, editing and formatting their wiki and Google group, to helping set up localization support.

Fortune Maker

Fortune Maker is a separate XO activity from FortuneHunter that gives teachers and students the ability to create and manipulate their own version of the game, choosing such things as level layout, problem enemy types, and game difficulty. This activity uses an easy graphical interface tool that works hand in hand with the game to inspire creativity in all users up for the task.

Open Video Chat

Open Video Chat is a chat activity for the XO. The main goal of this project is to write a video chat activity that will be acceptable for ASL Conferencing.

Lemonade Stand

This is the basic "lemonade stand" game where the player runs a lemonade stand learning math skills targeted at the fourth grade curriculum. This was a game started by Nathaniel Case that I helped port over to the Fortune Engine, a game engine built for Fortune Hunter and abstracted so it may be used in other games.

Personal Projects

Background Randomizer

Background Randomizer is a python program that will randomly choose a background at a given time interval and sets the background of gnome. I wrote this program because I wanted to learn how to use gconf, dbus, and how to integrate programs into the gnome panel through a tray icon.

This project is broken into three main components. The backend is the component that randomly picks a file from the configured directory when its timer expires and then then uses gconf to change the directory. The second component is the Daemon. The daemon is in charge of grabbing and saving the users preferences into gconf and passing them to the backend as well as starts a dbus connection. This dbus connection allows the frontend component to configure and give instructions to the daemon/backend.


GrooveBot is an IRC bot that joins a channel and listens for song requests. The purpose of the bot is to provide a queue service for GrooveShark. It does so by using the Tiny Song api along side the GrooveShark desktop client.

This bot is a great success, used almost every day while people are coding in the Foss Box (the nick name of the room that hosts FOSS@RIT). One of the other foss enthusiast wrote a graphical client to join the bot over IRC.

MediaWiki Visualization

MediaWiki Visualization is a python program that watches a wiki for changes using the MediaWiki API. It loads up a list of pages and their link structures which then watches the change log. When a page is changed it links the user to the page as well as any pages that have been linked in the wiki.

The visualization is currently using ubigraph to draw the visualization with the help of the networkx python module. It also uses the twisted framework to pull the api at a configurable interval.

Web2Py Inventory

A basic inventory system written for the Web2Py framework. This is a simplistic inventory management system that gets the job done without a lot of complex setup or management.

Web2Py Symposium

A basic symposium registration and management system written for the Web2Py framework. This system allows participants to submit papers to an upcoming symposium and the symposium manager to review, approve, and schedule the paper's presentation.


The Hidden Race


This is a website that I have been writing in my free time for years. It is an online text based game. It has been on hold for quite some time lately, but I hope to start working on this project sometime after graduation.

Foss @ RIT


This is a landing page for the foss initiative at RIT. I was involved in setting up and currently help maintain this website.

Nova: CSI Social Website


An interactive website that allows people to connect to other people, projects, groups, and ideas using the Web2Py framework. The goal of this site is to provide a means of sharing and collecting ideas while connecting groups that would not necessarily work together to form and implement new ideas.

In the near future, I plan on recoding this site and pushing it a more publicly hosted git repository. Its current state is a mess of hacks due to inexperenced design decisions as it was developed by students who had never seen the Web2Py framework. Now that I have a better grasp of the limitations and the strengths of the framework, I plan on making this site more user friendly and hopefully others will be able to benefit from it.