Monday, November 21, 2011

Project Genesis: Report 10

Last week I aimed for having the OAuth consumer and provider code working again, as well as mobile and embedded views.

I manage to fix all that but the testing showed up some smaller problems that needed fixing.

Last week
I finished the OAuth code and thanks to we now running Rails 3 and the latest gems adding more services is just a few lines of code. I managed to add quite a few additonal services to our login system.

It's possible to login with:
  • Facebook
  • Twitter
  • Google
  • SoundCloud
  • Rdio
  • LinkedIn
  • Vimeo

I also got the mobile and embedded version back up. I was more lucky here. No modification was required - it still works the same.

The biggest challenge last week was during the final testing where I found a severe bug in the new oauth gem. Due to a faulty parser the signignature would be corrupt if parameters included special characters. At the same time Rails uses a scheme where parameters are in the form object[attribute]=value. Of course this would prevent all post and put requests to fail on any object.

There was also a problem with the new oauth-plugin gem. Firstly it didn't remember that you'd already authorized an application and would ask you everytime you logged in to your account. There was a method to override but it was only called after the redirect, since the plugin required the request to be post. I corrected the code and got it working.

I plan on submitting patches as soon as the release is over and I get some more time to spare. Right now I am fully focused on getting the beta released.

This week
This takes us to what I'm going to do this week. I must fix the last bit of the website and then move on to doing a beta release. After the beta I will start to document the API and the part that will be in the report. If there's time I will start with filling the new website will all previous content such as news, about, contact, and so on. Which is pretty much just a copy-paste effort but I haven't prioritized it yet.

The releases has been somewhat of a russian roulette for me. And even though the last ones have been very painfree, I think that the release will still be the biggest potential threat to screw some things up.

Other than that I don't see any threats right now. It's mostly just tedious work, but it's almost done. :)