Yahoo! Open Hack All Stars

After two years of waiting, Yahoo! finally set a date for their global hackathon*, the Yahoo! Open Hack All Stars, to bring together all their Open Hack and HackU winners from around the globe to compete against each other. I was part of a team of three (with Rory Tulk and Aran Donohue) that won the Canadian HackU event which was hosted at both the University of Toronto and the University of Waterloo in 2009.

The 2009 HackU event was memorable, if only because our team surprised Yahoo! who had put more time and resources and had more teams competing from Waterloo (a school better known for Computer Science because it’s the birthplace of the Blackberry). Our team was the only Toronto team to demo and we demoed over Skype from Aran’s cubicle. Our hack was a collaborative online document editor called Docuvine (later renamed Pagical) with a “live copy” feature that allowed you to pull in any web content that would automatically be kept up to date. For example, you could write a report that would always include the latest data from an online spreadsheet or the latest tweet from someone’s Twitter stream. This hack also ended up getting Aran and I an interview at YCombinator (which we didn’t end up getting selected for) but that’s a story for another time.

Back to the present, it ended up that only Rory and I could make it to the Open Hack All Stars event in NYC. Like the Startup Weekend event, Rory and I had just 24 hours to create some new and interesting software with the additional requirements that it should use Yahoo! technologies and target the digital media publishing space (because the Open Hack All Stars event was running in parallel with Yahoo’s Global Partner Summit whose attendees the finalists would demo to).

Given the rise of photo journalism online and the popularity of sites like Boston.com’s Big Picture, we decided to create a browser extension for Google Chrome that would automatically transform traditional newspapers’ homepages into a more photo-centric news experience. This would allow consumers to visually browse the latest news articles while still having the option of reading the full text coverage of each article. And all with no site changes or work required on the part of publishers.

We used YQL to fetch articles from sites, Readability to extract the article text and images and jQuery with the Masonry plugin to build our photo layout in a gratuitous but impressive animated sequence. The most time intensive part of our hack was converting the Readability library to work with arbitrary pages rather than just the current page. In an homage to how Readability makes sites easier to read and how we were attempting to make sites easier to visually browse, we called our extension Viewability.

For our demo, we used the National Post as our example publisher site. If you’re using Google Chrome, you can see it in action yourself by downloading and installing the Viewability extension and then visiting the National Post site. It currently only works on the National Post site but it wouldn’t be hard to add support for other sites. And, it can also be easily converted to work as a standard bookmarklet. For our demo though, I found that it worked faster as an extension but using web workers might solve that.

Below are screenshots of what the photo browsing layout and the single article view look like. The most impressive part is of course the animation (you can get some sense of how the animation worked without installing the extension by playing with this jQuery Masonry demo).

The photo browsing interface with captions and mouse over article snippets.

 

The full text article view users see when they click on a photo from the photo browsing interface.

 

In the end, Viewability was one of the top six finalists but didn’t come out on top. So it ended up being a nice all expenses paid trip to NYC (though outside of a late night bus tour, all the contestants spent 99% of their time in a hotel writing code – and loved it).

*Hack in the sense of building software and not the illegal breaking into computers sense.

Cross Platform Reputations with Reputate

I attended my first Startup Weekend event here in Toronto last weekend. There were over 200 people stuffed into one floor of the Burroughes building on Saturday and Sunday rushing to transform ideas into startups. The idea behind Startup Weekend events is to bring together a lot of people with different backgrounds who are interested in creating startups, throw them in a room for 2 days, feed them, stir vigorously and see what comes out. Not to say that it was chaotic, the organizers did a good job explaining the process (eg. how to pitch ideas, form teams, what to work on and what to demo for the judges) and kept everyone happy and productive by providing for our basic needs (food, wifi & bathrooms).

I didn’t pitch any of my own ideas but there were around 30 to choose from so I didn’t lack for options. One idea in particular really caught my attention. Lon Wong, of Unstash, pitched the idea that there is a growing need for a cross platform reputation service that would allow people to establish and measure the trustworthiness of other people. In particular, his pitch highlighted the needs of sites in the collaborative consumption space. With so many new startups getting into collaborative consumption, neither the startups nor the people who use their sites want to have to worry about building and maintaining separate reputations for every site. His pitch really resonated with me since there is currently no reputation system for freecycling and I’ve long been wanting to tackle that problem with trash nothing!. So he and I teamed up along with two others and quickly got to work fleshing out how you define and measure trust online (and of course, my last name seems to uniquely qualify me to work in this area).

Our team started out with four people (2 programmers, 2 business development people) but it quickly dwindled down to just Lon and I (a bizdev and a programmer) for various reasons (which just goes to show you that building a good team is hard, especially when you have less than an hour to get to know potential teammates before committing to work together). With less than a day to build a startup to demo, I quickly realized that I wouldn’t have enough time to build any sort of functional prototype (at least not one that would be impressive). So I took off my coder hat and resolved to create the best damn prototype screenshot mockups that I could while Lon refined and perfected the business case for our startup.

The rest of the event flew by in a haze as I spent most of my time pushing pixels in Gimp with occasional breaks to bounce ideas back and forth with Lon and to eat. At some point, we decided on the name Reputate.

From the Reputate user reputation profile page screenshot I created below, you can see that our approach to establishing and measuring trust was two-fold. First, we wanted to pull in and reuse existing sources of online data that could be correlated to trust. For example, Ebay and Couchsurfing ratings but also data from social networks. The idea being that people measure trust in different ways for different purposes. So by providing a broad spectrum of data, users can make their own decisions on how trustworthy a person is based on the criteria that matter the most to them. Pulling in 3rd party data also makes it easy to bootstrap people’s reputations so they don’t start with a blank slate.

The second key to how Reputate would work was to support a system of vouching between users. This would allow you to vouch for people you trust and be vouched for by people who trust you. We decided that the key to vouching was to tie your reputation to your vouches. So if you vouch for someone who proves to be untrustworthy, it would ultimately harm your reputation.

Of course, given the time constraints, we didn’t dig very deeply into how this would all work under the hood. To really make Reputate happen, you’d need to come up with a good tamper-resistant algorithm for handling the vouching while also finding a way to pull in all the 3rd party data from other sites.

Long story short, Lon gave an awesome demo that clearly communicated the problem we were solving and how we planned to solve it. And at least four of the other startups mentioned during their demos how useful Reputate would be or that they planned to use it in their products. The judges didn’t ask us as many questions as they did the other teams – which worried me that they didn’t find our idea interesting. But, in the end, it turned out that all the judges really liked Reputate and Lon and I were both surprised when Reputate won 3rd place (beating out much larger teams and teams who had been more active publicizing and evangelizing during the event).

If you’re interested in hearing how Reputate develops, you can sign up on Reputate.me or follow @reputate on Twitter.

Recycling made simple

The last of my summer projects just recently went live. It’s built on the idea that one man’s trash is another man’s treasure. trash nothing! as I’ve called it is a site that allows you to find free stuff that other people in your community are giving away for free and makes it easy for you to give away the things you don’t need anymore.

It’s built on top of the already thriving Freecycling, ReUseIt, and FreeSharing groups that have thousands of members. But trash nothing! provides more than just access to your existing recycling groups, it makes interacting with the groups quicker and easier. You can view all your groups in one place with automatic message categorization that allows you to see at a glance which items are still available and which ones aren’t. There is even a simple message composer with free picture galleries for the items you give away.

I’m aiming for a broader market as compared to Comic Gopher and Click 4 Obama. If you like free stuff or recycling then trash nothing! is right for you. Currently it only supports a few Atlanta and Toronto area recycling groups but more should be added soon.

Obama’s Got Game

Actually, I hear he is pretty bad at bowling but not too bad at basketball and poker. These are just a few of the thousands of interesting facts I have stumbled across while working on my latest endeavor. I don’t usually follow politics very closely until after the conventions are over and there are less candidates to study but this election has caught my interest more than most. It is a heated race between the first viable woman candidate, the first viable non-caucasian candidate, and one of the oldest candidates. So I’ve decided to throw my talents into the race behind the candidate I’m leaning towards (you get one guess who that is).

So I’ve gone and built a free online political education game for Obama, completely un-official and un-endorsed (so far). The name of the game is Click 4 Obama. The tagline is “You play, Obama wins!” and the premise behind it is pretty simple. As people answer quiz questions about US history, politics, and government, the site generates ad revenue which is used to buy ads for Obama. There is a bit more detail to it that you can read about in my official introduction of Click 4 Obama and more details are on the Frequently Asked Questions page.

I could talk about Click 4 Obama all day long but you should really just go check it out and give it a spin. I think I’ve actually managed to make politics fun and educational; my high school teachers would be so proud.

Digitally Averaged Portraits

Over my summer in Barcelona I took the Computational Photography class taught by Irfan Essa. It was an interesting class where we learned how we can use computers and digital processes to create photographs that would be impossible to create with a camera alone. It was not just a class on Photoshop as we learned many techniques including high dynamic range imaging, panoramas, fourier filters, image dissection and analysis.

As we were given free reign to choose what we wanted to do for our final project I chose to create digitally averaged portraits inspired by the Face of Tomorrow project. For my subjects I used the other students and professors from the study abroad group. I took portraits of 16 women, 24 men and the 3 professors and morphed their faces together successively until I had a final digitally averaged portrait for each group. The male and female digital averages are below; the process was quite time consuming but I think the results were well worth it.

NetRisk

While co-oping at Georgia-Pacific last summer I found myself quite bored after work. During my first two semesters at Georgia Tech I think I became accustomed to the grueling pace of classes and having it stop so suddenly with the arrival of summer left me feeling bored. My brain was itching to do interesting and new things but it was my first semester as a co-op so they didn’t give me very challenging work. So I did what every good programmer does when bored; I picked up an O’Reilly book to learn a new programming language. I chose PHP because I had heard a lot of buzz about it and I had seen some really cool online applications built on PHP. Since I had the whole summer to learn PHP I decided I might as well come up with a reasonably large project to cut my teeth on and really help me grasp this new language. I brainstormed some ideas with a friend of mine and we agreed that a web-based version of the Risk board game would be awesome. We always enjoyed playing it but had problems finding other people to play with us and finding the large blocks of time necessary to finish a game in one sitting. So why not use the internet to enable anyone to play Risk anytime they wanted?

Continue reading “NetRisk”