UCOSP

Undergraduate Capstone Open Source Projects

Joseph’s Midterm Report

Posted by Joseph on 2010/03/01

Summary:

Things are going slower than expected. I thought I would be able to get so much more done. The first few weeks were spent on my first changelist. My expectation was to be done with the first week [8]. I have learned tons about Ruby, Rails, Rails plugins and javascript. I am currently working on replaced the AJAX pagination with serverside pagination on the submissions page. Afterwards, I will be working on the detailed view for the submissions page. One thing I need to do better on is participating in the codereviews on the reviewboard. Even though I may not be the most experienced developer on the Markus team, I will learn something by writing a codereview. This will help in learning anything I’ve missed about the Markus system. I believe that my knowledge of the Markus database is the weakest at this point.

Things I have learned:

  • Ruby and Rails
  • Shoulda [1]
  • Mocha reminds me of mocking JUnit tests in Java [2] [3]
  • will_paginate: an elegant plugin for performing pagination [4]
  • keeping state with in URL when doing AJAX calls [5]
  • neat tricks with javascript [6]
  • Word Press and Blogging: I have blogging fever. I cannot stop blogging about everything I have learned. I just hope someday a stranger will comment on how helpful it was.

Things I have completed:

  • when the Markus webserver boots up, it verifies that the settings inside the configuration file located at: <markus_root>/config/environments/<env>.rb are valid. For instance, if the password validation script is not executable, a message will be printed to the console and the webserver will stop starting up.
  • got the AJAX calls from ahrefs to to save state into the URL [5]
  • implemented a mock submissions page that used serverside pagination to compare the performance with AJAX pagination
  • since the performance was similar, Markus has decided to go with the serverside pagination because of all the loops we would have to jump through to get the AJAX pagination to work with the back button and bookmarks

Things I am working on:

  • switching from AJAX pagination to serverside pagination so that bookmarks and the back button will work again
  • encountered a large speed bump dealing with nested forms
  • going to blog about the work around after I have verified that it works

Things to work on in the future:

  • verifying that the serverside pagination has not changed the behaviour of the submissions page
  • detailed view for the marker’s or admin’s submissions page
  • cleaning up the serverside pagination code to take advantage of the conciseness of will_paginate [7]. This will involve implementing a custom link render so that the submissions page’s UI does not change. The links generated by will_paginate looks like: “Previous Page 1 2 3 4 5 6 7 Next Page”. The links on the submissions page looks different.

Links:
[1] – Nested Contexts – http://josephmate.wordpress.com/2010/01/31/nested-contexts/
[2] – Mocking Modules with Mocha – http://josephmate.wordpress.com/2010/01/31/mocking-modules-with-mocha/
[3] – Weird Behaviour of Mocha- http://josephmate.wordpress.com/2010/01/31/weird-behaviour-of-mocha/
[4] – Will Paginate and Markus – http://josephmate.wordpress.com/2010/02/15/will_paginate-and-markus/
[5] – Rails, AJAX, Back Buttons, and Bookmarks – http://josephmate.wordpress.com/2010/02/20/rails-ajax-back-buttons-and-bookmarks/
[6] – Setting the URL Using Javascript – http://josephmate.wordpress.com/2010/02/22/setting-url-using-javascript/
[7] – will_paginate – http://railscasts.com/episodes/51-will-paginate
[8] – Hofstadter’s law – http://en.wikipedia.org/wiki/Hofstadter’s_law

One Response to “Joseph’s Midterm Report”

  1. […] Joseph Maté […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: