At the end of June, UBC computer science student Carson Lam emerged victorious in Microsoft’s FTW Ultimate App Throwdown, a programming contest pitting a student project against a professional one.
What was Carson’s winning project? TransitDB, a super handy implementation of TransLink’s transit data!
Check out the site: you can see bus routes mapped onto Google Maps, the next buses leaving from each stop at a bus loop on a single page, and an RSS feed of current system alerts.
The site is quite prescient—many of its features are actually already being put together for the TransLink website! But we’re still absolutely thrilled to see great developers building great tools to help our customers out, and we’re working to make our data accessible to all developers so they can do even more (really!).
For more, here’s a Q&A with Carson, explaining bit more about TransitDB, the Microsoft contest, and where he and the site might end up next.
How did you come up with the idea for TransitDB?
One of my pet peeves has always been how difficult it is to get the transit information that I wanted. I could complain about it, but it wouldn’t be productive. This was one of those situations where if you want something done fast, you have to do it yourself. And as a computer science student, I had the skills necessary to do something about it, while also learning from it – so I did!
The catalyst for starting TransitDB was when I was at work, fiddling with the iPhone app we were working on. I came across the official TransLink iPhone app, and my coworkers told me that it was originally done by independent developers. I thought I could improve on it, and so I started TransitDB to work towards this and other improvements.
Are you a regular transit user? What’s your history with the Metro Vancouver system?
I started using transit regularly once I entered UBC. I think the U-Pass is the best thing ever, and I can’t imagine what UBC was like before the U-Pass.
What features did you start with on TransitDB? What have you added since?
I started showing TransitDB to friends and colleagues after I had rough implementations of the current features: route diagrams, nearby stops, bus loop overviews, next bus, and route details.
The last actual feature I’ve added was mirroring system alerts from the TransLink website, and providing RSS feeds for them. Most of my work in the past weeks were tweaks to the underlying framework. It’s rather boring, and not visible to users, unfortunately.
How much time have you put into TransitDB so far?
I started the project in April. I generally work on it whenever I have free time and energy. Back in May, I pretty much worked on it whenever I wasn’t at work.
Can you talk a bit about the Ultimate FTW Throwdown? What did you think of the experience? What was your competitor’s entry?
At the end of April, I received an email about the competition from the UBC computer science department. Over two weeks, I mulled over whether it would be wise to make an effort to convert the application. What finally convinced me was the opportunity to learn to use a new database, Microsoft SQL Server, and how it would make testing and further development easier.
I didn’t submit my entry until the day before the deadline, because I wanted to keep my options open in case I missed my own goals and expectations. Or I was procrastinating. ;) I was a bit anxious when I clicked the submit button.
The contest entry deadline was June 3. I got a call from Microsoft Canada on June 5, telling me that I was chosen as the student finalist, and that they would like to fly me to Toronto so I could participate in the ‘throwdown’ against the professional finalist. The conference was on June 10, so I had to immediately commit to going!
The actual ‘throwdown’ part of the Web Not War event was very fun, but also very embarrassing. The theme was ‘boxing match’, so they got us boxing robes, boxing gloves, and a boxing ring as part of the setup. It was awkward at first having to present my project and describe the technical details while in a boxing outfit, but in the end I really got into the theme because the environment was just so intense.
The professional finalist, Dac Chartrand, created a blogging application that used Bayesian probability to automatically categorize posts. This is the same kind of mathematics behind spam filtering software.
Who ultimately voted on the sites — was it the Microsoft developer community or another audience?
It was the audience of attendees of the Make Web Not War conference in Toronto. The conference was intended for Open source developers who develop platform agnostic applications.
Why do you think your site won?
I was told that Torontonians can relate to difficulties regarding access to transit information. Apparently, they have it worse, since each city in the area has their own transit authority, while commutes are often across cities.
What do will you do next with TransitDB? Are there any new features in the works?
There are new features planned, absolutely! TransitDB still can’t do all the things that would make my commutes easier, so I’ve got a massive to-do list for myself. One of the things I really want to work on is a TransitDB mobile app – it would make TransitDB much more useful—one of the first suggestions I got at the Make Web Not War conference was to consider a mobile version. There is a lot of interest in moving in this direction.
How committed are you to keeping it going indefinitely? Are you open to having others help you work on it?
I’m 100% committed to keeping TransitDB going and growing, and I would love to have people contribute. I can’t think of a justifiable reason for this project to be closed to contribution from others, though right now I don’t want to open contribution to the general public, as I want to accomplish all that I can on my own first.
I hope to collaborate with TransLink to improve transit data access. TransLink has access to a wealth of information that would be immensely useful if it were publicly available in friendly/open formats. The City of Vancouver is going in the direction of open data: following this trend would be prudent and economical.*
*Editor’s note: TransLink is working to make its transit data publicly available: we are currently in talks with the Province to get the data released, since the Province owns the proprietary information in the Road Atlas included in our data.
What’s next for you personally? Are you graduating soon? Where do you hope your career takes you?
I’m currently on an 8-month co-op work term at Ayogo Games, Inc., a Vancouver-based startup that makes casual social games enjoyed on social networks (Facebook, MySpace, etc.), and smartphones (iPhone, Android, etc.). I’m returning to studies this September. I’ve only just reached third-year status, and I won’t be graduating until 2012 (co-op pushes back graduation by a year).
I’m still not sure what industry in computer science I want to be in. There are so many options! Right now I’m just trying to get a taste of everything. A greater breadth of experience is never a bad strategy! I think I’ve got plenty of time to explore.