Code 52 - a new coding project every week

Week 2: JibbR

As we are getting to the end of this iteration, it is time to take stock of what we have achieved.

What went well

After being picked up by some influential tweeters, the Code52 room became the most popular room on JabbR - far surpassing our wildest expectations this far along. We also picked up some new contributors, and it was excellent to have contributors in different timezones.

So we currently have a collection of sprockets (components which interact with users in a chat room) and announcers (components which periodically execute tasks and notify the chat room when new things have occurred). Important features include:

  • Calculator Bot - too lazy to open calc.exe? ask the bot!
  • Volunteer Sprocket - (jokingly) assign work to a random person in the room
  • Weather Sprocket - find out the weather for a specific zip code (US only :( )
  • Quiz Sprocket - use a quiz to break up the quiet times
  • GitHub Announcer - track activity on a Github repo (and its forks)
  • Twitter Announcer - display tweets for a specific account
  • UserVoice Announcer - track activity in a UserVoice forum

We even have these ones sitting as pull requests:

  • Bitbucket Announcer - notify activity from a build server
  • CruiseControl.Net Announcer - notify activity from a build server
  • TeamCity Announcer - notify activity from a build server

These are run inside a console application with scheduling supported.

What could be improved

We didn't quite get to the "feature complete" point this week, as I suspect we (ed: @shiftkey) were too ambitious with our goals.

We have a fork which is running on AppHarbor, but we encountered a few hurdles.

  • MEF and AppHarbor aren't playing nice - Paul Stovell suggested that it should be supported as FunnelWeb does it. To be investigated.
  • The website UI only has the basic functionality - to start and stop a bot - and lacks the ability to run specific sprockets or announcers.
  • The components require APIs to support start and stop behaviour.
  • The packages and website should be deployable
  • Paul just mentioned that AWS Free Tier now supports a micro Windows instance. Interesting...
  • Hubot scripting support is almost there, but the way that scoped-http-client handles and returns the http object and responses is proving to be a little tricky to implement in IronJs. This means that scripts that don't use 'http' currently work, but those that do won't work until we figure that one out.

Here's a couple of screenshots of the website UI:

Fun statistics

The punch card graph over at GitHub this month is very interesting.

Code metrics

What next?

The outstanding tasks are up on the new Trello board. Feel free to add new idea to the backlog - or start work on one! Issues still go on our Github Issues Page to discuss with the team. Brendan is speaking at a user group on Wednesday, so any discussion on these tasks may be delayed until he can get the code ready to merge upstream.

-- Code52 team

blog comments powered by Disqus