GoodBad.me - RailsRumble 2008

Posted by Jonathan

RailsRumble 2008 is over - after 48 hours of hacking I'm proud to announce our contestant:

GoodBad.me - Twitter Till Judgement Day!

GoodBad.me is a twitter mashup that Thomas Metschke and I build over the last two days. Once you follow our bot on twitter, we subscribe to your tweets. We collect all your good and bad deeds by searching for #goodme or #badme (or the shorter #gd #bd) in your tweets.

We keep track of your deeds and generate stats about you. Your deed balance decides your character level. Are you just a boy scout or do you strive for beeing friends with Goldfinger?

All those questions can be answered at http://goodbad.me.

The idea is that you keep tweeting as always and by adding the #goodme tag you let the world know that you did something good.

In later iterations we want to allow others to tag your deeds/tweets and maybe allow you to gain points by donating to charity.

The site is online for a couple of hours and we already have several active users. If you want to keep track of your day's work, go join!

If you like the idea and our implementation, please vote for us!

MeinProf featured on the German Amazon Affiliate Blog

Posted by Jonathan

It is not a secret that I am a fan of the Amazon Web Services. Besides EC2 and S3, I also use the Amazon Ecommerce Services (ECS) API at MeinProf.

Our implementation is now featured on the German Amazon Affiliate Blog.

We use the ECS API to let professors and students search for books and study guides on Amazon and then recommend the books to other students. So besides rating a course a student can also recommend supporting literature to others. This is the first step in our plans to increase MeinProfs value to students. We introduced this feature only a short while ago but already have many professors who register and recommend books to their students through our system.

The implementation uses the amazon-ecs ruby library that internally uses Hpricot, the great HTML/XML parser by _why.

The basic usage looks like this:

require 'amazon/ecs'

Amazon::Ecs.options = {
  :aWS_access_key_id => SECRET_KEY,
  :associate_tag => ASSOCIATE_TAG,
  :response_group => 'Medium',
  :country => :de
}

result_set = Amazon::Ecs.item_search('Programming Ruby', {
  :search_index => 'Books' # use Blended if you want also foreign books (usefull in DE and FR)
})

if result_set.has_errors?
  raise "Problem with ECS!" 
end

result_set.items.each do |item|
  puts item.get('title')
  puts item.get('asin')
  puts item.get('detailpageurl')
end

The difficult part is filtering and pre-processing the search term entered by the user in order to reduce the result set.