Projects
- Firefox Extensions
- Firefox Greasemonkey Scripts
- OS X Related
- Windows Related
- School Projects
- CS3 – Java Chat Program
- SE1 – Fireword
- CS4 – Generic Problem Solving Framework
- PLC – Block/Pike Programming Language for Lego Mindstorms
- Database Concepts 1 – RajTunes
- Data Communications ant Networking – Networked Multiplayer Checkers
- Database Systems Implementation – Adding MP3 media support to PostgreSQL (In progress)
- Work Projects
Firefox Extensions
Google Calendar Notifier

This extension provides robust notifications and display of your Google Calendars for today, as well as showing any upcoming all day events for tomorrow.
Technical Details: This involved lots and lots of work. It was basically my first extension for Firefox! I had an idea, and I knew my target platform – I just needed to quickly learn how to do it.
So as I studied the XML output of Google Calendar, and the Google API I learned how to code extensions for Firefox. All of this was fine and dandy until I started getting feedback from users around the world.
Surprisingly, my largest hurdle was handling timezones!
Total Downloads as of Feb 05, 2007: 59830
Digg.com Comment Spotlight

Digg Comment Spotlight does exactly what its name hints, it spots comments that other readers have taken the time to Digg, allowing you to easily wade through 100’s of comments in an article.
Technical Details: I am a big fan of the social-news website Digg.com. Being such a fan, I was often frustrated by how comments in the current Digg system work, or rather don’t work.
Once an article gets so many comments it becomes almost impossible to find those worth reading, so I developed a programmatic approach to “pointing out” which comments I should read.
I took the following assumptions: Good comments get dugg up, better comments will have higher then the average amount of diggs. Great comments will have an even higher count then the previous assumption.
Digg.com Comment Spotlight will calculate the average score of all the comments on the page, and “spotlight” comments that have a score higher then the article average. If this isn’t good enough, then you can also specify a threshold (Defaulted at 20 diggs) that comments must reach in order to be spotlighted
I think it works out great, Instead of spending all my time scrolling and looking for “high digged comments” I can just easily spot them
RIT SIS (Student Information System) Pumper
Every quarter RIT requires us to register for new courses for the following quarter, but we must use the most antiquated system possible.
Thanksgiving of 2006 I set out to correct a few of its short comings, and not having direct access to change SIS features them selfs, I wrote a greasemonkey script to accomplish what I need.
The RIT SIS Pumper (Dedicated to my CS Theory Professor who taught us about the Pumping Lemma..) does the following to the antiquated RIT Student Information System:
- Grey’s out closed courses (Im only interested in open courses afterall!)
- Corrects some words on SIS..
- Optionally hide non upper level courses (400+)
- Highlight or bold open courses
- and most importantly.. automatically link the name of the professor teaching the course to their professorevaluations.net profile
Firefox Greasemonkey Scripts
Digg.com Display Friends
This script was written to solve another inconvenience on the popular social-news website Digg.com. When a “friend” has dugg an article, the http://blog.npike.net/projects# of Diggs box gains a slight green strap with a star on it. Hovering over this strap reveals which of your “friends” have dugg the article.
This was simply too much work for me to do everytime I saw the green strap, so I wrote a quick script that parses the information out of the page and attaches it below the articles title automatically.
OS X Related
Del.icio.us AddOn for Safari
Del(icio.us) Again is my 4th attempt to incorporate a Del.icio.us menu populated with YOUR tags and bookmarks into Safari. (As well as letting you post things to Del.icio.us)
Currently supported features:
* Listing Del.icio.us bookmarks inside of safari, using the first tag to categorize bookmarks into folders
* Posting the current open page in Safari to Del.icio.us ( will pre-populate the del.icio.us form with the page URL and title)
* Automatically retrieves your Del.icio.us bookmarks after opening Safari, at the moment only re-updates when you tell it to do so manually.
* Limiting menu item display length ( some bookmark titles are way to long and make the menu look rather large.
Technical information: This project was actually a great experience for me, as it was one of my very first interactions with Objective-C and Cocoa in general. I have been a long time OS X user, and off and on Safari hater/lover – but one of the things that really irks me about Safari is its lack of extensibility by non Apple developers.(Especially with my new found love for extending Firefox to do what I want)
Originally I had set out to make a Safari Add-on to interface with Google Bookmarks, to pull in the bookmarks from my PC to my laptop. Unfortunately this provided troublesome, and a friend (Jason) recommended the services of Del.icio.us – a popular social bookmarking website with a very open API.
My next hurdle was to overcome hacking Safari. Luckily enough this area has been explored before, and I made use of this research. SIMBL, Smart InputManager Bundle Loader, basically allows me to load code into any OS X program and override or swizzle any of its internal methods. So once my code is loaded into Safari, it was just a matter of attaching its interface to the Safari Menubar, and retrieving a little XML!
Google Calendar Dashboard Widget (Not finished)
In my never ending quest to intergrate life and Google Calendar….. This was started during a RIT break while I was home in NH visiting my family. Unfortunately I did not have enough free time to finish it, and lacked any design ability to make it not look ugly.
I did get a few things working though:
* Multiple Calendars with different colors
* Updates itself every 5 minutes
* Doesn’t do updates when widget/dashboard is hidden
* Immediately does an update when dashboard is show
* Add/Edit URLs in back side
* Due to the widget having a fixed (small) size, it will only show events that haven’t occurred yet
Google Calendar (gCal?) (Cocoa) (Not finished)
Screenshot not available!
This was another brief side project that I have not had time to entertain much yet. Basically a program that mimics the looks of Apple’s iCal for use with Google Calendar (along with integration of GROWL of course)
Windows Related
Google Calendar Sidebar Gadget for Windows Vista (in progress)
More information
At the moment this is actually my most current project. I have had Vista Business installed for two weeks now (once it was released to MSDNAA I installed it immediately), and have been enjoying the addition of Gadgets/Widgets/etc.
As a developer I pride myself in being able to create fun but useless things, and on occasion something that is truly useful.
The Gadget is basically working at the moment, and my goals for it are:
- I want to keep it small, theres not much space in the sidebar to work with
- I would like it to handle multiple calendars, as identified by the different colored events
- Ideally I would like it to show 7 days from Todays date
Technical Details: There really weren’t any significant technical hurdles for this project. The only thing worth note is that parsing XML and debugging Javascript in Internet Explorer is incredibly more frustrating then in Firefox.
A large majority of the code is reused straight from my Google Calendar Notifier Firefox extension, and the prerequisite research has already been done several times for each of my other “Google Calendar *” projects. (Such as retrieving XML feeds, parsing them sorting them, displaying them, etc)
Java Google Calendar Notifier (Not finished)
(Screenshot not available)
This was meant to be a standalone version of the Firefox extension using Googles Data API Java classes.
This was a project worked on during my free time at a previous job, and since then I seem to have misplaced the original source code..