Projects

I like clean, elegant programs that do a particular thing well and tend towards opinionated, agile development for the software I build myself. Simple works. If you’re interested in the tools I use, my preferred dev environment is OSX and Ruby on Rails, git for source control (and github), textmate as an IDE, capistrano for deployment and a straight up LAMP/R stack on Ubuntu to host and run most everything, all watched over by monit. Generally, I host on Amazon’s EC2 Elastic Compute Cloud. Lately though, I’ve been using Heroku more and more, and its excellent plugins and rake deploy tasks through git so I spend more quality time on dev than sysadmining.

If you’re really interested in looking at the stuff as it goes public, I’d suggest following me on github.

Some of my more useful projects include :

LunchMeets

Pomodoro from Lunchmeets

Does one simple thing… it invites people to lunch.

Lunchmeets was a simple Rails program designed to solve a seemingly small, but very big problem my organization had, which was people not really knowing other people. Collaboration and sharing are vastly difficult with people you don’t know and a showstopper if you’re trying to change organizational culture. So, this app acts as a facilitator for people to meet other people in the organization, community or area usually by randomly having people matched up to go to lunch. While an “off book” project, it’s been very successful and been running in production since October 2007 with over 1200 lunchmeets having been served up and at peak a quarter of all full time staff participating. Several organizations have asked for the code and there has been discussion about a larger not-for-profit Lunchmeets community for London as a whole. Just need some time to clean up the code and either add features for it as SaaS or to open source it.

Watch lunchmeets on github

CTSE – Campaign Trading Stock Exchange

This is a combined idea accumulator, information market and a social network app. Heavily influenced by uservoice, the idea is to provide a way to submit well-crafted, peer reviewed and modded campaigning ideas and have the best ones percolate to the top for consideration and execution by the organization.

GPC Political Canvassing application

This was the first rails app I ever built (and it shows… ahem…). It was built in a flurry of activity over a sleepless weekend to meet the urgent need to get good information on voting patterns for the initial leadership campaign of Elizabeth May of the Green Party of Canada (I had been asked to run technology for the campaign). It was basic, simple and did exactly what was needed, randomly giving you a person to call from the membership list and then allowing you to register their intention.

It gave the campaign team daily statistics (I wish I’d known about rake back then to automate the mailouts and generation) and let us know exactly how we were doing. It let us know what ridings we were strong in, which we were weak and which we had to focus on as swing. While I think Elizabeth was a stronger overall candidate anyway, I do like to think it helped her come from behind and beat her opponent by a 2:1 margin due to good information and better decision making.

Whuffie Beast

Knowledge management is a deep problem for all organizations. Vendors often make it very easy to confuse buying a piece of software with the idea of creating a culture of knowledge management and sharing. Vendors do this by being particularly good at blurring the idea between explicit (ie. what’s written down) with tacit knowledge (what people have in their heads) and what a single software system can support (usually the former). The problem I was trying to solve with this was the issue that the organization was phenomenal at writing stuff down but the writing had low “real knowledge” value. Most of the good stuff was in peoples’ heads or written down in ways that made it impossible to extract useful, actionable knowledge.

And to get at the stuff in peoples’ heads, you need to have conversations with people… questions and dialogues. But the organization in question has a deep-seated information gatekeeper culture. The modifications to Beast were an attempt to create a social marketplace for ideas, knowledge and help and to encourage information sharing through recognition and showing it was something the organization valued.

What’s Whuffie ? The idea came from Cory Doctorow’s sci-fi novel Down and Out in the Magic Kingdom. Basically, it’s the idea of a social currency to show personal value from contributions to the collective. It’s the carrot that makes the social knowledge system work here.

Facebook game – Code name Secret Squirrel

This is one I’m working on in my spare time but is an attempt to create a cooperative multiplayer game which focuses on a common goal amongst a set team of players which they must achieve by working together. It’s built to be played via facebook with the goal of creating a global leaderboard of teams competing cooperatively and leveraging the social networking features in FB.

No code releases on this one yet (still working on the game mechanics and balance).

The original idea is heavily influenced by Z-Man Games excellent boardgame Pandemic so a tip of the hat to the designer for the inspiration (and a great game !)

IndyBot

This is a more a bit of a code hobby I work on (very) sporadically rather than a real project and something I modified from an original GIS program idea I had while working on my MSc. The enhancements to the original code are to create an AI system to methodically sift through Google Earth imagery and detect (hopefully) undiscovered archaeological sites through geographic anomalies from artifacts in the images.

I’m hoping longer term to turn it into a more generalized framework for the detection of anomalies from photographic data and apply the same idea for astronomic detection (for example, my someday/maybe target is extrasolar planets. I’d like to name a planet at some point ;-) -hey, go big or go home, right ? ).

Dokuwiki MS Word wiki markup macro (unmaintained)

This was a simple Word macro (and later OpenOffice) to deal with a very technically maladroit organization that needed to draft, share and collaborate on complex information, documents and press releases but most people only ever used Word. The macro simply took whatever was typed, converted it into wiki markup and then copied it to the clipboard buffer for pasting into a wiki page.

I think now it’s largely been superceded by online service such as Basecamp and the like (as well as Google apps), so I no longer actively maintain it though quite a few people still use it and ask about it. It’s released under GPL now and can be found on the dokuwiki site.

Tania Hew has also apparently lifted the code and modified it to create a Word template that can be found on her site via the Portfolio section.

virusNotification sysadmin tool (defunct)

I merely took over as maintainer on this project when the original (Keith Reser) author was looking to pass it on. The code simply runs on a cron job and downloaded the latest McAfee software updates for distribution to a local network of computers and mailed the admin to let him know. It’s been superceded by the AV companies now having this built this basic ability into their packages (for a fee, of course).

At the time though, it was a fantastic solution for keeping up to date on virus definitions and saved our internal network bacon at least twice during two major virus outbreaks that paralyzed less prepared corporate networks. At peak, the software had over 45k downloads.


About this entry