[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mifos-developer
Subject:    Re: [Mifos-developer] [Mifos-users] GSoc 2013 - Server-side Pagination and Sorting
From:       kushagra singh <kushagresingh () gmail ! com>
Date:       2013-05-03 10:56:53
Message-ID: CAGcZKQJAU674M37H98AHTU35PXSHnM6bHzf9Mr4M2cJxzrSGoA () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi,

I've tried to fix
Issue-307.<https://mifosforge.jira.com/browse/MIFOSX-307?jql=project%20%3D%20MIFOSX>
The changes I have made to the backend code can be viewed
here<https://github.com/kushagrasingh/mifosx/compare/issue307>,
and the changes made to demo app can be viewd
here<https://github.com/kushagrasingh/mifosx-community-apps/compare/issue307>
.

I will try to fix few more issues very soon.

Thanks,
Kushagra


On Thu, May 2, 2013 at 10:56 AM, kushagra singh <kushagresingh@gmail.com>wrote:

> Hi,
> 
> I've submitted my project proposal for GSoc-13 for *"Server-side
> Pagination and Sorting"*.
> I'd appreciate any advice on making my proposal stronger.
> 
> Best regards,
> Kushagra
> 
> 
> On Fri, Apr 26, 2013 at 2:10 PM, kushagra singh <kushagresingh@gmail.com>wrote:
> 
> > Hi ,
> > 
> > I've tried to create a demo for pagination for clients resource. Please,
> > have a look at it \
> > here<https://github.com/kushagrasingh/mifosx/commit/e4f10cead4979a2a0bfafa2d4aeae6 \
> > a4abefa3eb#mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientsApiResource.java>and \
> > provide me suggestions regarding it. It's not an actual implementation but only \
> > some edits to show what I intend to do. Also, I would appreciate any replies on \
> > my last post. 
> > Thanks,
> > Kushagra
> > 
> > 
> > On Thu, Apr 25, 2013 at 10:56 PM, Anuruddha Premalal <
> > anuruddhapremalal@ieee.org> wrote:
> > 
> > > Hi Kushagrah,
> > > 
> > > Good point!!.In ideal implementation we might also  need to add caching
> > > and ScrollableResult set support as pointed out in the tutorial.
> > > 
> > > Another pointcuts where we can perform optimization is the json
> > > serialization layer. Jackson has a highest benchmark in serializing,perhaps
> > > we could switch to jackson instead of google Gson.
> > > 
> > > 
> > > On Thu, Apr 25, 2013 at 9:39 PM, kushagra singh <kushagresingh@gmail.com
> > > > wrote:
> > > 
> > > > Hi,
> > > > 
> > > > I've created a prototype API call for retrieving all clients-
> > > > 
> > > > (In the ClientReadPlatformServiceImpl.java Class )
> > > > 
> > > > /**
> > > > * method returns a list of client data from the offset given with
> > > > limit number of items as a Page object.
> > > > * @param searchParameters
> > > > * @param limit - limit is the size of list ie. number of elements
> > > > on the page
> > > > * @param offset - offset is the row number (entry number) from
> > > > where to start.
> > > > * @return
> > > > */
> > > > public Page<ClientData> retrieveAll( final SearchParameters
> > > > searchParameters , int limit, int offset)  {
> > > > 
> > > > final AppUser currentUser = context.authenticatedUser();
> > > > final String hierarchy = currentUser.getOffice().getHierarchy();
> > > > final String hierarchySearchString = hierarchy + "%";
> > > > 
> > > > // sql query for retrieving client list with a limit and offset
> > > > set. limit and offset values remain same in sql entries also.
> > > > String sql = "select SQL_CALC_FOUND_ROWS" +
> > > > this.clientMapper.schema() + " where o.hierarchy like ?";
> > > > 
> > > > final String extraCriteria =
> > > > buildSqlStringFromClientCriteria(searchParameters);
> > > > 
> > > > if (StringUtils.isNotBlank(extraCriteria)) sql += " and (" +
> > > > extraCriteria + ")";
> > > > 
> > > > sql += " order by c.display_name ASC, c.account_no ASC LIMIT" +
> > > > limit + "OFFSET" + offset;
> > > > 
> > > > // list clientList stores the list of ClientData retrieved from
> > > > the db.
> > > > List<ClientData> clientList = this.jdbcTemplate.query(sql,
> > > > clientMapper, new Object[] { hierarchySearchString });
> > > > 
> > > > //  sqlCount stores the total number of result entries.
> > > > int sqlCount = jdbcTemplate.queryForInt("FOUND_ROWS()");
> > > > 
> > > > // creating a page object and populating it with list retrieved.
> > > > Page<ClientData> page = new Page<ClientData>();
> > > > page.setPageItems(clientList);
> > > > 
> > > > return page;
> > > > }
> > > > 
> > > > 
> > > > I followed the link<http://www.codefutures.com/tutorials/spring-pagination/> \
> > > > provided by Keith, and I have some things in mind that I would like to share \
> > > > - 
> > > > In the tutorial, they retrieve the whole data from the database and
> > > > then extract the required data from it. This provides the benefit of less
> > > > data being sent in response body (which is exactly what we want), but on
> > > > each request it is retrieving all the rows. (which can be a huge number)
> > > > 
> > > > I'm using mySql inbuilt method of SQL_CALC_FOUND_ROWS and FOUND_ROWS()
> > > > for retrieving only the number of entries (limit)       requested.
> > > > With the implementation above, I ensure pagination according to user's
> > > > query parameters but I'm also retrieving only that many rows from the
> > > > database, which saves the overhead of loading all rows in memory every
> > > > request. I think this kind of implemenation would be better as it
> > > > potentially saves a lot of memory on server while achieving the goal of
> > > > pagination.
> > > > 
> > > > I'd like to have some suggestions/opinions on this.
> > > > 
> > > > P.S.   Sorry, for pasting a piece of code like this. It's just a psuedo
> > > > code to describe my idea.
> > > > 
> > > > Thanks,
> > > > Kushagra
> > > > 
> > > > 
> > > > 
> > > > On Wed, Apr 24, 2013 at 5:16 PM, kushagra singh <
> > > > kushagresingh@gmail.com> wrote:
> > > > 
> > > > > Hi Keith,
> > > > > 
> > > > > Thanks for taking out the time and providing the feedback.
> > > > > Your explanation proved to be extremely helpful. I have a much clearer
> > > > > idea of the implementation details for the project.
> > > > > I will keep in mind the suggestions made, while drafting my
> > > > > application letter.
> > > > > 
> > > > > Thanks a ton,
> > > > > Kushagra
> > > > > 
> > > > > 
> > > > > On Wed, Apr 24, 2013 at 2:56 PM, Keith Woodlock <
> > > > > keithwoodlock@gmail.com> wrote:
> > > > > 
> > > > > > Kushagara,
> > > > > > 
> > > > > > I've been trying to stay out of the GSOC discussions as I am not a
> > > > > > mentor this year but I have to reply to this.
> > > > > > 
> > > > > > First off thanks for taking and interest in this work and putting
> > > > > > forward your proposal. Heres my reply.
> > > > > > 
> > > > > > 
> > > > > > 1. The terms used for API parameters:
> > > > > > 
> > > > > > You propose using page and size parameteres - I am happier to go with
> > > > > > ApiGee proposal and go for offset and limit parameters
> > > > > > 
> > > > > > see - http://info.apigee.com/Portals/62317/docs/web%20api.pdf
> > > > > > 
> > > > > > On defaults, for clients it makes sense to have defaults of offset=0,
> > > > > > limit=200
> > > > > > 
> > > > > > 2. - A layer above the database service layer, will be added which
> > > > > > will be dealing with the pagination. ( A spring MVC Controller for
> > > > > > Pagination)
> > > > > > 
> > > > > > You've probably been looking at Spring MVC examples of implementing
> > > > > > REST patterns but we use Jersey - So we wouldnt want to introduce \
> > > > > > SpringMVC. 
> > > > > > Theres already a layer where the responsibility for dealing with API
> > > > > > request exists. Its the set of classes we call XXXApiResource - so in \
> > > > > > this example ClientsApiResource.java - That class uses Jersey for dealing \
> > > > > > with the request - Note the retrieveAll method of ClientsApiResource \
> > > > > > which expects some optional query params, so for paging you just need to \
> > > > > > expect 'offset' and 'limit' query params and pass these down to the \
> > > > > > 'ReadService' 
> > > > > > 3. The db-layer, responsible for interacting with the databases will
> > > > > > retrieve the query results and send them back to the paging-layer (a
> > > > > > service layer) .
> > > > > > 
> > > > > > So, theres not really a specific 'paging layer' its just a 'layer'
> > > > > > that deals with HTTP API requests. So whats left is for you to implement
> > > > > > something to support paging using just plain old spring jdbc as thats \
> > > > > > what we use on the READ side
> > > > > > 
> > > > > > see http://www.codefutures.com/tutorials/spring-pagination/
> > > > > > 
> > > > > > 4. Then, creating a Response object (which includes response-data and
> > > > > > Links for next,prev etc.) will be created and sent as a response to user.
> > > > > > 
> > > > > > Theres already a correct 'response' object returned from the READ
> > > > > > side queries - in this case its ClientData.java. So all that would have \
> > > > > > to be added here is instead of returning just the list of ClientData's - \
> > > > > > you probably need to return the paging information also.
> > > > > > 
> > > > > > Also, whilst it seems standard to pass back the full href of
> > > > > > resources we have not followed that pattern as of yet - note how we just
> > > > > > pass back id at present for all the 'XXXData' objects that represent
> > > > > > 'resources' in our system but if you want to pass back full href
> > > > > > information for next, prev, last etc we could see how that looks etc
> > > > > > 
> > > > > > regards,
> > > > > > Keith.
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > On Wed, Apr 24, 2013 at 6:53 AM, kushagra singh <
> > > > > > kushagresingh@gmail.com> wrote:
> > > > > > 
> > > > > > > Hi ,
> > > > > > > 
> > > > > > > I wanted to discuss a pretty high-level idea of what I'm planning to
> > > > > > > implement in Server-side Pagination in mifosX API.
> > > > > > > 
> > > > > > > I'll try to explain it using the Client resource from the MifosX
> > > > > > > API, as an example -
> > > > > > > 
> > > > > > > The URL for a GET request, (say list of clients) would include query
> > > > > > > parameters such as 'page' and 'size'
> > > > > > > and look something like this - BASE_URL/clients?page=1&size=50
> > > > > > > 
> > > > > > > - The response would be the data ie. a list of first 50 clients'
> > > > > > > information in JSON format
> > > > > > > and a *link *to the next page. Additionally, a link to
> > > > > > > next,prev,first and last page will be added to the Link header of the
> > > > > > > response.
> > > > > > > 
> > > > > > > - A layer above the database service layer, will be added which will
> > > > > > > be dealing with the pagination. ( A spring MVC Controller for \
> > > > > > > Pagination) 
> > > > > > > - This layer will parse the query parameters and accordingly send a
> > > > > > > database transaction query to the db-layer.
> > > > > > > 
> > > > > > > - The db-layer, responsible for interacting with the databases will
> > > > > > > retrieve the query results and send them back to the paging-layer (a
> > > > > > > service layer) .
> > > > > > > 
> > > > > > > - Also, there will be listener class which will check if prev,next
> > > > > > > pages are valid and then adds appropriate URIs to the Link headers.
> > > > > > > 
> > > > > > > - Then, creating a Response object (which includes response-data and
> > > > > > > Links for next,prev etc.) will be created and sent as a response to \
> > > > > > > user. 
> > > > > > > ( There is an option to use PageListHolder for storing results as a
> > > > > > > Page object, and then adding the PageListHolder to the ModelAndView \
> > > > > > > object. Although,I want to use HttpMessageConverter and annotations \
> > > > > > > because they are lightweight and easy to implement. )
> > > > > > > 
> > > > > > > Also, I'd like to know using which between Spring MVC and Spring
> > > > > > > Data REST would be better ?
> > > > > > > 
> > > > > > > I'll try to code a demo for Clients resource demonstrating
> > > > > > > pagination in a couple of days, before submitting my application.
> > > > > > > 
> > > > > > > Kindly, give me your valuable suggestions/improvements on the idea,
> > > > > > > so that I can work on my proposal.
> > > > > > > 
> > > > > > > Thanks,
> > > > > > > Kushagra
> > > > > > > 
> > > > > > > 
> > > > > > > On Sat, Apr 20, 2013 at 8:15 PM, kushagra singh <
> > > > > > > kushagresingh@gmail.com> wrote:
> > > > > > > 
> > > > > > > > Hi,
> > > > > > > > 
> > > > > > > > My mifosX codebase is all set up and running.
> > > > > > > > 
> > > > > > > > Also, I went through some \
> > > > > > > > articles<http://www.baeldung.com/2012/01/18/rest-pagination-in-spring/> \
> > > > > > > > and the MifosX API-doc <https://demo.openmf.org/api-docs/apiLive.htm> \
> > > > > > > > to get a proper understanding of RESTful implementation of pagination \
> > > > > > > > in Spring and the resources involved with MifosX.
> > > > > > > > 
> > > > > > > > I believe understanding the MifosX as a product will help me a lot
> > > > > > > > in coming up with a good proposal. Therefore, I thought of diving \
> > > > > > > > into the MifosX documentations, which explained everything \
> > > > > > > > elaborately and clearly. I think these resources will help me get \
> > > > > > > > more comfortable with the MifosX topology.
> > > > > > > > 
> > > > > > > > I'm in the process of preparing my application for the project. It
> > > > > > > > would be helpful if I can get any valuable suggestions regarding the
> > > > > > > > project.
> > > > > > > > 
> > > > > > > > Looking forward to contribute to MifosX.
> > > > > > > > 
> > > > > > > > Thanks,
> > > > > > > > Kushagra
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > On Fri, Apr 19, 2013 at 4:45 PM, kushagra singh <
> > > > > > > > kushagresingh@gmail.com> wrote:
> > > > > > > > 
> > > > > > > > > Changed my root password. Now it is working properly. :)
> > > > > > > > > Thanks Gurpreet.
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > On Fri, Apr 19, 2013 at 4:32 PM, Gurpreet Luthra <
> > > > > > > > > gluthra@thoughtworks.com> wrote:
> > > > > > > > > 
> > > > > > > > > > Is your root password for mysql different from "mysql"? The
> > > > > > > > > > gradle script has that hardcoded right now.
> > > > > > > > > > 
> > > > > > > > > > Regards
> > > > > > > > > > Gurpreet
> > > > > > > > > > 
> > > > > > > > > > Join the Humanitarian Software \
> > > > > > > > > > Program<https://my.thoughtworks.com/groups/humanitarian-software-program> \
> > > > > > > > > > to help and contribute OpenMRS, RapidFTR, Camfed and MifosX SIP \
> > > > > > > > > > Projects. We are looking for Volunteers!
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > On 19 April 2013 16:29, kushagra singh \
> > > > > > > > > > <kushagresingh@gmail.com>wrote: 
> > > > > > > > > > > Hi,
> > > > > > > > > > > 
> > > > > > > > > > > While setting up the MySQL database setup using this \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > I'm stuck at the following problem :
> > > > > > > > > > > 
> > > > > > > > > > > - when executing the command* gradle migrateTenantListDB
> > > > > > > > > > > -PdbName=mifosplatform-tenants *for creating the tables and
> > > > > > > > > > > populating them, Im getting this error causing build failure -
> > > > > > > > > > > 
> > > > > > > > > > > *        Execution failed for task ':flywayMigrate'. *
> > > > > > > > > > > *        > Unable to obtain Jdbc connection from DataSource*
> > > > > > > > > > > 
> > > > > > > > > > > Using stacktrace I found these exceptions -
> > > > > > > > > > > 
> > > > > > > > > > > * Exception is:
> > > > > > > > > > > *org.gradle.api.tasks.TaskExecutionException: Execution failed
> > > > > > > > > > > for task ':flywayMigrate'.*
> > > > > > > > > > > *Caused by: com.googlecode.flyway.core.api.FlywayException:
> > > > > > > > > > > Unable to obtain Jdbc connection from DataSource*
> > > > > > > > > > > *Caused by: java.sql.SQLException: Access denied for user
> > > > > > > > > > > 'root'@'localhost' (using password: YES)*
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > Kindly help me with the possible solution for this error ??
> > > > > > > > > > > 
> > > > > > > > > > > Thanks,
> > > > > > > > > > > Kushagra
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > On Thu, Apr 18, 2013 at 2:30 PM, Vishwas Babu <
> > > > > > > > > > > vishwasbabuaj@gmail.com> wrote:
> > > > > > > > > > > 
> > > > > > > > > > > > Hi Khushagra,
> > > > > > > > > > > > 
> > > > > > > > > > > > I wouldn't worry about caching just yet, but Kudos to you for
> > > > > > > > > > > > thinking it through :)
> > > > > > > > > > > > 
> > > > > > > > > > > > Let us know if you run into any issues setting up the \
> > > > > > > > > > > > codebase 
> > > > > > > > > > > > Regards,
> > > > > > > > > > > > Vishwas
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > On 18 April 2013 12:14, kushagra singh \
> > > > > > > > > > > > <kushagresingh@gmail.com
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > 
> > > > > > > > > > > > > Hi,
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Firstly, thank you for the response and guidance.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > I went through Github's approach to \
> > > > > > > > > > > > > Pagination<http://developer.github.com/v3/#pagination> and \
> > > > > > > > > > > > > I feel Github has tackled the problem with most suitable \
> > > > > > > > > > > > > solution. 
> > > > > > > > > > > > > Although there can be many other ways to implement \
> > > > > > > > > > > > > pagination and sorting -
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 1.  Using Query strings
> > > > > > > > > > > > > ex. http://example/foos?page=2&sort_by=date&sort_how=asc
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 2.  Using Pages as resources and query strings for sorting
> > > > > > > > > > > > > ex. http://example/foos/page/2?sort_by=date&sort_how=asc
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 3.  Using pages as resources and an URL segment for sorting
> > > > > > > > > > > > > ex. http://example/foos/by-date/page/2
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 2nd and 3rd options are clearly not appropriate as handling
> > > > > > > > > > > > > pages as resources doesn't feel right.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > In the 1st option, also used by github, although URLs seems \
> > > > > > > > > > > > > to be not clean and easy to remember, but is the best \
> > > > > > > > > > > > > option if the application views pagination as a technique \
> > > > > > > > > > > > > for producing different views for same resources.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > If we are designing an application to be hypertext-driven (
> > > > > > > > > > > > > which a RESTful application must be, by definition ), then \
> > > > > > > > > > > > > client will not be constructing any URIs on its own. \
> > > > > > > > > > > > > Instead the application itself will be giving the links for \
> > > > > > > > > > > > > the client to follow. 
> > > > > > > > > > > > > So, the best practice can to Add a Link: header that \
> > > > > > > > > > > > > contains the prev and next relations. Also suggested by RFC \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > >                 \
> > > > > > > > > > > > > .
> > > > > > > > > > > > > ex. Link: <http://foo/?page=3>; rel='next', Link: <
> > > > > > > > > > > > > http://foo/?page=1>; rel='prev'
> > > > > > > > > > > > > 
> > > > > > > > > > > > > The only problem I feel is related to caching. I cannot do \
> > > > > > > > > > > > > a full page caching since size and sort_by parameters can \
> > > > > > > > > > > > > yield totally different results.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > I also went through the REST \
> > > > > > > > > > > > > example<https://github.com/eugenp/REST> and found the code \
> > > > > > > > > > > > > base to be extremely helpful. Not only the implementation \
> > > > > > > > > > > > > of pagination and sorting was helpful, but it also gave me \
> > > > > > > > > > > > > a lot of insight into RESTful services,overall.
> > > > > > > > > > > > > These resources will prove to be great help while I write \
> > > > > > > > > > > > > my project design & proposal.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Nextly, my plan is to setup the code and comprehend the \
> > > > > > > > > > > > > basic concepts around MifosX.
> > > > > > > > > > > > > Waiting eagerly for response on my views and doubts.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > Kushagra
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > On Tue, Apr 16, 2013 at 1:02 PM, Vishwas Babu <
> > > > > > > > > > > > > vishwasbabuaj@gmail.com> wrote:
> > > > > > > > > > > > > 
> > > > > > > > > > > > > > Kushagra,
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > if you could provide me any feedback or suggestions \
> > > > > > > > > > > > > > > > on how
> > > > > > > > > > > > > > I should proceed.
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > I like Github's approach to pagination
> > > > > > > > > > > > > > http://developer.github.com/v3/#pagination (using Link
> > > > > > > > > > > > > > Header). A repo at https://github.com/eugenp/REST seems \
> > > > > > > > > > > > > > to have a nice implementation of the same (also does \
> > > > > > > > > > > > > > sorting), going through this codebase would be a good \
> > > > > > > > > > > > > > starting point 
> > > > > > > > > > > > > > Regards,
> > > > > > > > > > > > > > Vishwas
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > On 16 April 2013 00:15, Ed Cable <edcable@gmail.com> \
> > > > > > > > > > > > > > wrote: 
> > > > > > > > > > > > > > > Kushagra,
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > Welcome to the community and thank you for taking the \
> > > > > > > > > > > > > > > time to formally introduce yourself. We're delighted to \
> > > > > > > > > > > > > > > see your strong interest in our project.
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > I'm our community manager and will be administering our \
> > > > > > > > > > > > > > > 2013 GSoC program but am not a techie so will let one \
> > > > > > > > > > > > > > > of our mentors or developers respond with some specific \
> > > > > > > > > > > > > > > feedback and next steps about the Server Side \
> > > > > > > > > > > > > > > Pagination and Sorting project. I've cc'd our \
> > > > > > > > > > > > > > > mifos-developers mailing list \
> > > > > > > > > > > > > > > (mifos-developer@lists.sourceforge.net) as that's a \
> > > > > > > > > > > > > > > better place to continue this thread. 
> > > > > > > > > > > > > > > See below for responses to some of your points inline.
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > On Monday, April 15, 2013 6:28:04 AM UTC-7, kushagra \
> > > > > > > > > > > > > > > singh wrote:
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > Hi,
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > I am Kushagra Singh, a Computer Science student \
> > > > > > > > > > > > > > > > fromBirla Institute of Technology and Science, Pilani \
> > > > > > > > > > > > > > > > from India. I am persuing my M.Sc. (Tech) Information \
> > > > > > > > > > > > > > > > Systems from here. 
> > > > > > > > > > > > > > > > I have always had an interest in developing products \
> > > > > > > > > > > > > > > > for the good of society and Mifos X seems a wonderful \
> > > > > > > > > > > > > > > > effort in this direction. It holds a great deal of \
> > > > > > > > > > > > > > > > promise for people in my country especially wherein \
> > > > > > > > > > > > > > > > Financial services need significant improvement - \
> > > > > > > > > > > > > > > > especially among the poor. I am deeply motivated for \
> > > > > > > > > > > > > > > > this cause and feel a better financial system is a \
> > > > > > > > > > > > > > > > must for a better society. 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > Awesome - we love contributors who are passionate and \
> > > > > > > > > > > > > > > deeply committed to their work!
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > I am interested in the project - "*Server-side \
> > > > > > > > > > > > > > > > Pagination and Sorting"*.
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > Regarding my technical skills I do not have prior
> > > > > > > > > > > > > > > > experience in contributing to open-source projects \
> > > > > > > > > > > > > > > > but I'm confortable with large code bases and version \
> > > > > > > > > > > > > > > > control systems (git, subversion), agile development, \
> > > > > > > > > > > > > > > > incremental development etc. I feel confident that I \
> > > > > > > > > > > > > > > > will be able to complete the project which I \
> > > > > > > > > > > > > > > > undertake with an afeeicient design and proper \
> > > > > > > > > > > > > > > > documentation, and help in creating an impact on the \
> > > > > > > > > > > > > > > > lives of those who are benefited by Mifos.
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > No worries that this would be your first open source \
> > > > > > > > > > > > > > >                 project
> > > > > > > > > > > > > > > - what's important is that you take all those \
> > > > > > > > > > > > > > > fundamental skills you've learned and combine that with \
> > > > > > > > > > > > > > > open and transparent communications.  One of the \
> > > > > > > > > > > > > > > biggest success factors is open communication and \
> > > > > > > > > > > > > > > always being able to ask for help.  Your email \
> > > > > > > > > > > > > > > introduction is a great first step towards showing your \
> > > > > > > > > > > > > > > strong communications skills. 
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > I believe in an incremental approach and that there \
> > > > > > > > > > > > > > > > should be deliverables at each stage of the project. \
> > > > > > > > > > > > > > > > This way there will be accountability at each stage \
> > > > > > > > > > > > > > > > plus bug tracking and removal will be much easier. \
> > > > > > > > > > > > > > > > Appropriate time for documentation should also be \
> > > > > > > > > > > > > > > > kept. Also I will provide periodic updated to my \
> > > > > > > > > > > > > > > > mentor and use the mailing list and IRC channel when \
> > > > > > > > > > > > > > > > at a roadblock. 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > Our developers will be happy to hear all of this. \
> > > > > > > > > > > > > > > Commit early and commit often - with frequent \
> > > > > > > > > > > > > > > communications and good documentations - exactly what \
> > > > > > > > > > > > > > > we want. Yes - do use the developer mailing list -
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > IRC - hopefully you'll always find a friendly face in \
> > > > > > > > > > > > > > > the chatroom. 
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > During my internship at Apigee technologies, I have
> > > > > > > > > > > > > > > > inculcated a deep interest in web technologies \
> > > > > > > > > > > > > > > > especially REST. I am well experienced in Java and am \
> > > > > > > > > > > > > > > > very comfortable with frameworks - Struts, Spring, \
> > > > > > > > > > > > > > > > Hibernate, iBatis. I have contributed to a free \
> > > > > > > > > > > > > > > > product provided by Apigee - Apigee Console and \
> > > > > > > > > > > > > > > > therefore gained experience in these fields. I have \
> > > > > > > > > > > > > > > > used clients like Jersey and ApacheHttpClient.  I am \
> > > > > > > > > > > > > > > > experienced with HTML,CSS and have a basic \
> > > > > > > > > > > > > > > > familiarity with JavaScript. I am familiar with \
> > > > > > > > > > > > > > > > RESTful API design aspects and have a strong passion \
> > > > > > > > > > > > > > > > for writing beautiful and elegant code. 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > Those skills sound like a good fit. Your experience at
> > > > > > > > > > > > > > > Apigee will be highly valued - I know that we followed \
> > > > > > > > > > > > > > > a lot of their best practices in building our API \
> > > > > > > > > > > > > > > framework. 
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > I will be finishing my internship at Apigee on 14th \
> > > > > > > > > > > > > > > > of June and will be free for the duration of Gsoc.
> > > > > > > > > > > > > > > > I am in the process of setting up the code base and
> > > > > > > > > > > > > > > > understanding the basics around MifosX.
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > That timing works well as you'll wrap up just in time \
> > > > > > > > > > > > > > > for the start of coding for GSoC. If you run into any \
> > > > > > > > > > > > > > > hurdles in the setup, don't hesitate to ask for help.
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > I would be grateful if you could provide me any \
> > > > > > > > > > > > > > > > feedback or suggestions on how I should proceed.
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > I'll let one of our devs respond.
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > Kushagra
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > On Monday, April 15, 2013 6:28:04 AM UTC-7, kushagra \
> > > > > > > > > > > > > > > singh wrote:
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > Hi,
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > I am Kushagra Singh, a Computer Science student \
> > > > > > > > > > > > > > > > fromBirla Institute of Technology and Science, Pilani \
> > > > > > > > > > > > > > > > from India. I am persuing my M.Sc. (Tech) Information \
> > > > > > > > > > > > > > > > Systems from here. 
> > > > > > > > > > > > > > > > I have always had an interest in developing products \
> > > > > > > > > > > > > > > > for the good of society and Mifos X seems a wonderful \
> > > > > > > > > > > > > > > > effort in this direction. It holds a great deal of \
> > > > > > > > > > > > > > > > promise for people in my country especially wherein \
> > > > > > > > > > > > > > > > Financial services need significant improvement - \
> > > > > > > > > > > > > > > > especially among the poor. I am deeply motivated for \
> > > > > > > > > > > > > > > > this cause and feel a better financial system is a \
> > > > > > > > > > > > > > > > must for a better society. 
> > > > > > > > > > > > > > > > I am interested in the project - "*Server-side \
> > > > > > > > > > > > > > > > Pagination and Sorting"*.
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > Regarding my technical skills I do not have prior
> > > > > > > > > > > > > > > > experience in contributing to open-source projects \
> > > > > > > > > > > > > > > > but I'm confortable with large code bases and version \
> > > > > > > > > > > > > > > > control systems (git, subversion), agile development, \
> > > > > > > > > > > > > > > > incremental development etc. I feel confident that I \
> > > > > > > > > > > > > > > > will be able to complete the project which I \
> > > > > > > > > > > > > > > > undertake with an afeeicient design and proper \
> > > > > > > > > > > > > > > > documentation, and help in creating an impact on the \
> > > > > > > > > > > > > > > > lives of those who are benefited by Mifos.
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > I believe in an incremental approach and that there \
> > > > > > > > > > > > > > > > should be deliverables at each stage of the project. \
> > > > > > > > > > > > > > > > This way there will be accountability at each stage \
> > > > > > > > > > > > > > > > plus bug tracking and removal will be much easier. \
> > > > > > > > > > > > > > > > Appropriate time for documentation should also be \
> > > > > > > > > > > > > > > > kept. Also I will provide periodic updated to my \
> > > > > > > > > > > > > > > > mentor and use the mailing list and IRC channel when \
> > > > > > > > > > > > > > > > at a roadblock. 
> > > > > > > > > > > > > > > > During my internship at Apigee technologies, I have
> > > > > > > > > > > > > > > > inculcated a deep interest in web technologies \
> > > > > > > > > > > > > > > > especially REST. I am well experienced in Java and am \
> > > > > > > > > > > > > > > > very comfortable with frameworks - Struts, Spring, \
> > > > > > > > > > > > > > > > Hibernate, iBatis. I have contributed to a free \
> > > > > > > > > > > > > > > > product provided by Apigee - Apigee Console and \
> > > > > > > > > > > > > > > > therefore gained experience in these fields. I have \
> > > > > > > > > > > > > > > > used clients like Jersey and ApacheHttpClient.  I am \
> > > > > > > > > > > > > > > > experienced with HTML,CSS and have a basic \
> > > > > > > > > > > > > > > > familiarity with JavaScript. I am familiar with \
> > > > > > > > > > > > > > > > RESTful API design aspects and have a strong passion \
> > > > > > > > > > > > > > > > for writing beautiful and elegant code. 
> > > > > > > > > > > > > > > > I will be finishing my internship at Apigee on 14th \
> > > > > > > > > > > > > > > > of June and will be free for the duration of Gsoc.
> > > > > > > > > > > > > > > > I am in the process of setting up the code base and
> > > > > > > > > > > > > > > > understanding the basics around MifosX.
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > I would be grateful if you could provide me any \
> > > > > > > > > > > > > > > > feedback or suggestions on how I should proceed.
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > Kushagra
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > Precog is a next-generation analytics platform capable \
> > > > > > > > > > > > > > > of advanced
> > > > > > > > > > > > > > > analytics on semi-structured data. The platform \
> > > > > > > > > > > > > > > includes APIs for building
> > > > > > > > > > > > > > > apps and a phenomenal toolset for data science. \
> > > > > > > > > > > > > > > Developers can use
> > > > > > > > > > > > > > > our toolset for easy data analysis & visualization. Get \
> > > > > > > > > > > > > > > a free account!
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > Mifos-developer mailing list
> > > > > > > > > > > > > > > mifos-developer@lists.sourceforge.net
> > > > > > > > > > > > > > > Unsubscribe or change settings at:
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > \
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > --
> > > > > > > > > > > > > *Kushagra Singh
> > > > > > > > > > > > > *M.Sc.(Tech.) Information Systems
> > > > > > > > > > > > > BITS* *Pilani
> > > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > \
> > > > > > > > > > > Precog is a next-generation analytics platform capable of
> > > > > > > > > > > advanced
> > > > > > > > > > > analytics on semi-structured data. The platform includes APIs
> > > > > > > > > > > for building
> > > > > > > > > > > apps and a phenomenal toolset for data science. Developers can
> > > > > > > > > > > use
> > > > > > > > > > > our toolset for easy data analysis & visualization. Get a free
> > > > > > > > > > > account!
> > > > > > > > > > > http://www2.precog.com/precogplatform/slashdotnewsletter
> > > > > > > > > > > Mifos-developer mailing list
> > > > > > > > > > > mifos-developer@lists.sourceforge.net
> > > > > > > > > > > Unsubscribe or change settings at:
> > > > > > > > > > > https://lists.sourceforge.net/lists/listinfo/mifos-developer
> > > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > ------------------------------------------------------------------------------
> > > > > > > > > >  Precog is a next-generation analytics platform capable of \
> > > > > > > > > > advanced analytics on semi-structured data. The platform includes \
> > > > > > > > > > APIs for building
> > > > > > > > > > apps and a phenomenal toolset for data science. Developers can \
> > > > > > > > > > use our toolset for easy data analysis & visualization. Get a \
> > > > > > > > > > free account!
> > > > > > > > > > http://www2.precog.com/precogplatform/slashdotnewsletter
> > > > > > > > > > Mifos-developer mailing list
> > > > > > > > > > mifos-developer@lists.sourceforge.net
> > > > > > > > > > Unsubscribe or change settings at:
> > > > > > > > > > https://lists.sourceforge.net/lists/listinfo/mifos-developer
> > > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > --
> > > > > > > > > *Kushagra Singh
> > > > > > > > > *M.Sc.(Tech.) Information Systems
> > > > > > > > > BITS* *Pilani
> > > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > ------------------------------------------------------------------------------
> > > > > > >  Try New Relic Now & We'll Send You this Cool Shirt
> > > > > > > New Relic is the only SaaS-based application performance monitoring
> > > > > > > service
> > > > > > > that delivers powerful full stack analytics. Optimize and monitor
> > > > > > > your
> > > > > > > browser, app, & servers with just a few lines of code. Try New Relic
> > > > > > > and get this awesome Nerd Life shirt!
> > > > > > > http://p.sf.net/sfu/newrelic_d2d_apr
> > > > > > > 
> > > > > > > Mifos-developer mailing list
> > > > > > > mifos-developer@lists.sourceforge.net
> > > > > > > Unsubscribe or change settings at:
> > > > > > > https://lists.sourceforge.net/lists/listinfo/mifos-developer
> > > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > ------------------------------------------------------------------------------
> > > > > >  Try New Relic Now & We'll Send You this Cool Shirt
> > > > > > New Relic is the only SaaS-based application performance monitoring
> > > > > > service
> > > > > > that delivers powerful full stack analytics. Optimize and monitor your
> > > > > > browser, app, & servers with just a few lines of code. Try New Relic
> > > > > > and get this awesome Nerd Life shirt!
> > > > > > http://p.sf.net/sfu/newrelic_d2d_apr
> > > > > > Mifos-developer mailing list
> > > > > > mifos-developer@lists.sourceforge.net
> > > > > > Unsubscribe or change settings at:
> > > > > > https://lists.sourceforge.net/lists/listinfo/mifos-developer
> > > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > --
> > > > > *Kushagra Singh
> > > > > *M.Sc.(Tech.) Information Systems
> > > > > BITS* *Pilani
> > > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > ------------------------------------------------------------------------------
> > > >  Try New Relic Now & We'll Send You this Cool Shirt
> > > > New Relic is the only SaaS-based application performance monitoring
> > > > service
> > > > that delivers powerful full stack analytics. Optimize and monitor your
> > > > browser, app, & servers with just a few lines of code. Try New Relic
> > > > and get this awesome Nerd Life shirt!
> > > > http://p.sf.net/sfu/newrelic_d2d_apr
> > > > Mifos-developer mailing list
> > > > mifos-developer@lists.sourceforge.net
> > > > Unsubscribe or change settings at:
> > > > https://lists.sourceforge.net/lists/listinfo/mifos-developer
> > > > 
> > > 
> > > 
> > > 
> > > --
> > > *Anuruddha Premalal(STMIEEE)*
> > > Department of Electronic and Telecommunication Engineering
> > > University of Moratuwa
> > > Sri Lanka.
> > > 
> > > Tele    :* *+94-710461070 , +94-71828273*7
> > > *E-mail : anuruddhapremalal@ieee.org*
> > > *
> > > 
> > > 
> > > ------------------------------------------------------------------------------
> > > Try New Relic Now & We'll Send You this Cool Shirt
> > > New Relic is the only SaaS-based application performance monitoring
> > > service
> > > that delivers powerful full stack analytics. Optimize and monitor your
> > > browser, app, & servers with just a few lines of code. Try New Relic
> > > and get this awesome Nerd Life shirt!
> > > http://p.sf.net/sfu/newrelic_d2d_apr
> > > Mifos-developer mailing list
> > > mifos-developer@lists.sourceforge.net
> > > Unsubscribe or change settings at:
> > > https://lists.sourceforge.net/lists/listinfo/mifos-developer
> > > 
> > 
> > 
> > 
> > --
> > *Kushagra Singh
> > *M.Sc.(Tech.) Information Systems
> > BITS* *Pilani
> > 
> 
> 
> 
> --
> *Kushagra Singh
> *M.Sc.(Tech.) Information Systems
> BITS* *Pilani
> 



-- 
*Kushagra Singh
*M.Sc.(Tech.) Information Systems
BITS* *Pilani


[Attachment #5 (text/html)]

<div dir="ltr">Hi, <div><br><div style>I&#39;ve tried to fix <a \
href="https://mifosforge.jira.com/browse/MIFOSX-307?jql=project%20%3D%20MIFOSX">Issue-307.</a></div><div \
style>The changes I have made to the backend code can be viewed <a \
href="https://github.com/kushagrasingh/mifosx/compare/issue307">here</a>, and the \
changes made to demo app can be viewd <a \
href="https://github.com/kushagrasingh/mifosx-community-apps/compare/issue307">here</a>.</div>
 </div><div style><br></div><div style>I will try to fix few more issues very \
soon.</div><div style><br></div><div style>Thanks,</div><div \
style>Kushagra</div></div><div class="gmail_extra"><br><br><div class="gmail_quote"> \
On Thu, May 2, 2013 at 10:56 AM, kushagra singh <span dir="ltr">&lt;<a \
href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"> <div dir="ltr">Hi,<div><br><div>I&#39;ve submitted my \
project proposal for GSoc-13 for <b>&quot;Server-side Pagination and \
Sorting&quot;</b>. </div><div><div \
style="font-family:arial,sans-serif;font-size:13px"><font face="arial, helvetica, \
sans-serif">I&#39;d appreciate any advice on making my proposal \
stronger.</font></div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px"><font face="arial, helvetica, \
sans-serif">Best regards,</font></div></div></div><div \
style="font-family:arial,sans-serif;font-size:13px">

<font face="arial, helvetica, sans-serif">Kushagra</font></div><div><div \
class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Apr 26, \
2013 at 2:10 PM, kushagra singh <span dir="ltr">&lt;<a \
href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr">Hi ,<div><br></div><div>I&#39;ve tried to \
create a demo for pagination for clients resource. Please, have a look at it <a \
href="https://github.com/kushagrasingh/mifosx/commit/e4f10cead4979a2a0bfafa2d4aeae6a4a \
befa3eb#mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientsApiResource.java" \
target="_blank">here</a> and provide me suggestions regarding it.</div>


<div>It&#39;s not an actual implementation but only some edits to show what I intend \
to do. Also, I would appreciate any replies on my last \
post.</div><div><br></div><div>Thanks,</div><div>Kushagra</div> </div><div><div><div \
class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 25, 2013 at 10:56 \
PM, Anuruddha Premalal <span dir="ltr">&lt;<a \
href="mailto:anuruddhapremalal@ieee.org" \
target="_blank">anuruddhapremalal@ieee.org</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">Hi Kushagrah,<div><br></div><div>Good point!!.In ideal \
implementation we might also  need to add caching and ScrollableResult set support as \
pointed out in the tutorial.</div>


<div><br></div><div>Another pointcuts where we can perform optimization is the json \
serialization layer. Jackson has a highest benchmark in serializing,perhaps we could \
switch to jackson instead of google Gson.<div><div>


<br>


<br><div class="gmail_quote">On Thu, Apr 25, 2013 at 9:39 PM, kushagra singh <span \
dir="ltr">&lt;<a href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">





<div dir="ltr">Hi,<div><br></div><div>I&#39;ve created a prototype API call for \
retrieving all clients-</div><div><br></div><div>(In the \
ClientReadPlatformServiceImpl.java Class )</div><div>  </div><div><div>/**</div><div>






     * method returns a list of client data from the offset given with limit number \
of items as a Page object.</div><div>     * @param searchParameters</div><div>     * \
@param limit - limit is the size of list ie. number of elements on the page</div>






<div>     * @param offset - offset is the row number (entry number) from where to \
start.</div><div>     * @return</div><div>     */</div><div>    public \
Page&lt;ClientData&gt; retrieveAll( final SearchParameters searchParameters , int \
limit, int offset)  {</div>






<div><br></div><div>        final AppUser currentUser = \
context.authenticatedUser();</div><div>        final String hierarchy = \
currentUser.getOffice().getHierarchy();</div><div>        final String \
hierarchySearchString = hierarchy + &quot;%&quot;;</div>






<div><br></div><div>        // sql query for retrieving client list with a limit and \
offset set. limit and offset values remain same in sql entries also.</div><div>       \
String sql = &quot;select SQL_CALC_FOUND_ROWS&quot; + this.clientMapper.schema() + \
&quot; where o.hierarchy like ?&quot;;</div>






<div><br></div><div>        final String extraCriteria = \
buildSqlStringFromClientCriteria(searchParameters);</div><div><br></div><div>        \
if (StringUtils.isNotBlank(extraCriteria)) sql += &quot; and (&quot; + extraCriteria \
+ &quot;)&quot;;</div>






<div><br></div><div>        sql += &quot; order by c.display_name ASC, c.account_no \
ASC LIMIT&quot; + limit + &quot;OFFSET&quot; + offset;</div><div><br></div><div>      \
// list clientList stores the list of ClientData retrieved from the db.</div>






<div>        List&lt;ClientData&gt; clientList = this.jdbcTemplate.query(sql, \
clientMapper, new Object[] { hierarchySearchString });</div><div><br></div><div><div> \
//  sqlCount stores the total number of result entries.</div>






<div>        int sqlCount = \
jdbcTemplate.queryForInt(&quot;FOUND_ROWS()&quot;);<br></div></div><div><br></div><div> \
// creating a page object and populating it with list retrieved.</div><div>        \
Page&lt;ClientData&gt; page = new Page&lt;ClientData&gt;();</div>






<div>        page.setPageItems(clientList);</div><div><br></div><div>        return \
page;</div><div>    }</div></div><div><br></div><div><br></div><div>I followed the <a \
href="http://www.codefutures.com/tutorials/spring-pagination/" \
target="_blank">link</a> provided by Keith, and I have some things in mind that I \
would like to share - </div>






<div><br></div><div>In the tutorial, they retrieve the whole data from the database \
and then extract the required data from it. This provides the benefit of less data \
being sent in response body (which is exactly what we want), but on each request it \
is retrieving all the rows. (which can be a huge number) <br>






</div><div><br></div><div>I&#39;m using mySql inbuilt method of SQL_CALC_FOUND_ROWS \
and FOUND_ROWS() for retrieving only the number of entries (limit)       \
requested.</div><div>With the implementation above, I ensure pagination according to \
user&#39;s query parameters but I&#39;m also retrieving only that many rows from the \
database, which saves the overhead of loading all rows in memory every request. I \
think this kind of implemenation would be better as it potentially saves a lot of \
memory on server while achieving the goal of pagination.</div>






<div><br></div><div>I&#39;d like to have some suggestions/opinions on \
this.</div><div><br></div><div>P.S.   Sorry, for pasting a piece of code like this. \
It&#39;s just a psuedo code to describe my idea. </div><div><br></div>






<div>Thanks,</div><div>Kushagra</div><div><div><div><br></div><div \
class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 24, 2013 at 5:16 PM, \
kushagra singh <span dir="ltr">&lt;<a href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br>






<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr"><div>Hi Keith,</div><div><br></div><div>Thanks \
for taking out the time and providing the feedback.</div>






<div>Your explanation proved to be extremely helpful. I have a much clearer idea of \
the implementation details for the project.</div> <div>I will keep in mind the \
suggestions made, while drafting my application \
letter.</div><div><br></div><div>Thanks a \
ton,</div><div>Kushagra</div></div><div><div><div class="gmail_extra"><br><br> <div \
class="gmail_quote"> On Wed, Apr 24, 2013 at 2:56 PM, Keith Woodlock <span \
dir="ltr">&lt;<a href="mailto:keithwoodlock@gmail.com" \
target="_blank">keithwoodlock@gmail.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">







<div dir="ltr"><div><div><div>Kushagara,<br><br></div>I&#39;ve been trying to stay \
out of the GSOC discussions as I am not a mentor this year but I have to reply to \
this.<br><br></div>First off thanks for taking and interest in this work and putting \
forward your proposal. Heres my reply.<br>








<br><br></div>1. The terms used for API parameters:<br><div><br></div><div>You \
propose using page and size parameteres - I am happier to go with ApiGee proposal and \
go for offset and limit parameters<br></div><div><br>see - <a \
href="http://info.apigee.com/Portals/62317/docs/web%20api.pdf" \
target="_blank">http://info.apigee.com/Portals/62317/docs/web%20api.pdf</a><br>








<br></div><div>On defaults, for clients it makes sense to have defaults of offset=0, \
limit=200<br></div><div><br>2. - A layer above the database service layer, will be \
added which will be  dealing with the pagination. ( A spring MVC Controller for \
Pagination) <br><br></div><div>You&#39;ve probably been looking at Spring MVC \
examples of implementing REST patterns but we use Jersey - So we wouldnt want to \
introduce SpringMVC.<br>








<br></div><div>Theres already a layer where the responsibility for dealing with API \
request exists. Its the set of classes we call XXXApiResource - so in this example \
ClientsApiResource.java - That class uses Jersey for dealing with the request - Note \
the retrieveAll method of ClientsApiResource which expects some optional query \
params, so for paging you just need to expect &#39;offset&#39; and &#39;limit&#39; \
query params and pass these down to the &#39;ReadService&#39;<br>








<br>3.  The db-layer, responsible for interacting with the databases will 
retrieve the query results and send them back to the paging-layer (a 
service layer) .<br><br></div><div>So, theres not really a specific &#39;paging \
layer&#39; its just a &#39;layer&#39; that deals with HTTP API requests. So whats \
left is for you to implement something to support paging using just plain old spring \
jdbc as thats what we use on the READ side<br>








<br>see <a href="http://www.codefutures.com/tutorials/spring-pagination/" \
target="_blank">http://www.codefutures.com/tutorials/spring-pagination/</a>  \
<br><br>4. Then, creating a Response object (which includes response-data and Links  \
for next,prev etc.) will be created and sent as a response to \
user.<br><br></div><div>Theres already a correct &#39;response&#39; object returned \
from the READ side queries - in this case its ClientData.java. So all that would have \
to be added here is instead of returning just the list of ClientData&#39;s - you \
probably need to return the paging information also.<br>








<br></div><div>Also, whilst it seems standard to pass back the full href of resources \
we have not followed that pattern as of yet - note how we just pass back id at \
present for all the &#39;XXXData&#39; objects that represent &#39;resources&#39; in \
our system but if you want to pass back full href information for next, prev, last \
etc we could see how that looks etc<br>








<br></div><div>regards,<br></div><div>Keith.<br></div><div><br></div></div><div \
class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Wed, Apr 24, 2013 \
at 6:53 AM, kushagra singh <span dir="ltr">&lt;<a \
href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br>








</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px \
#ccc solid;padding-left:1ex"><div><div><div dir="ltr"><span \
style="font-family:arial,sans-serif;font-size:13px">Hi ,</span><div \
style="font-family:arial,sans-serif;font-size:13px">








<br></div><div style="font-family:arial,sans-serif;font-size:13px">I wanted to \
discuss a pretty high-level idea of what I&#39;m planning to implement in Server-side \
Pagination in mifosX API.</div> <div \
style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">I&#39;ll try to explain it using \
the Client resource from the MifosX API, as an example - </div>








<div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">The URL for a GET \
request, (say list of clients) would include query parameters such as &#39;page&#39; \
and &#39;size&#39;</div><div style="font-family:arial,sans-serif;font-size:13px">









and look something like this - BASE_URL/clients?page=1&amp;size=50</div><div \
style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">- The response would be the data \
ie. a list of first 50 clients&#39; information in JSON format</div>









<div style="font-family:arial,sans-serif;font-size:13px">  and a <b>link </b>to the \
next page. Additionally, a link to next,prev,first and last page will be added to the \
Link header of the response.</div><div \
style="font-family:arial,sans-serif;font-size:13px">









<br></div><div style="font-family:arial,sans-serif;font-size:13px">- A layer above \
the database service layer, will be added which will be dealing with the pagination. \
( A spring MVC Controller for Pagination) </div><div \
style="font-family:arial,sans-serif;font-size:13px">









<br></div><div style="font-family:arial,sans-serif;font-size:13px">- This layer will \
parse the query parameters and accordingly send a database transaction query to the \
db-layer.</div><div style="font-family:arial,sans-serif;font-size:13px">









<br></div><div style="font-family:arial,sans-serif;font-size:13px">- The db-layer, \
responsible for interacting with the databases will retrieve the query results and \
send them back to the paging-layer (a service layer) .</div>









<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">- Also, there will be listener \
class which will check if prev,next pages are valid and then adds appropriate URIs to \
the Link headers.</div>









<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">- Then, creating a Response \
object (which includes response-data and Links for next,prev etc.) will be created \
and sent as a response to user.</div>









<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">( There is an option to use \
PageListHolder for storing results as a Page object, and then adding the \
PageListHolder to the ModelAndView object. Although,I want to use \
HttpMessageConverter and annotations because they are lightweight and easy to \
implement. )</div>









<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">Also, I&#39;d like to know using \
which between Spring MVC and Spring Data REST would be better ?</div>









<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">I&#39;ll try to code a demo for \
Clients resource demonstrating pagination in a couple of days, before submitting my \
application.</div>









<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">Kindly, give me your valuable \
suggestions/improvements on the idea, so that I can work on my proposal. </div>









<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div \
style="font-family:arial,sans-serif;font-size:13px">Thanks,</div><div \
style="font-family:arial,sans-serif;font-size:13px">Kushagra</div><div><div> <div \
class="gmail_extra"> <br><br><div class="gmail_quote">On Sat, Apr 20, 2013 at 8:15 \
PM, kushagra singh <span dir="ltr">&lt;<a href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">









<div dir="ltr">Hi,<div><br></div><div>My mifosX codebase is all set up and running. \
</div><div><br></div><div>Also, I went through some <a \
href="http://www.baeldung.com/2012/01/18/rest-pagination-in-spring/" \
target="_blank">articles</a> and the MifosX <a \
href="https://demo.openmf.org/api-docs/apiLive.htm" target="_blank">API-doc</a> to \
get a proper understanding of RESTful implementation of pagination in Spring and the \
resources involved with MifosX.</div>












<div style="font-family:arial,sans-serif"><br></div><div \
style="font-family:arial,sans-serif">I believe understanding the MifosX as a product \
will help me a lot in coming up with a good proposal. Therefore, I thought of diving \
into the MifosX documentations, which explained everything elaborately and clearly. I \
think these resources will help me get more comfortable with the MifosX \
topology.</div>












<div style="font-family:arial,sans-serif"><br></div>
<div>I&#39;m in the process of preparing my application for the project. It would be \
helpful if I can get any valuable suggestions regarding the project. \
</div><div><br></div><div>Looking forward to contribute to MifosX. </div>










<div><br></div><div>Thanks,</div><div>Kushagra</div><div><div>
<div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Apr \
19, 2013 at 4:45 PM, kushagra singh <span dir="ltr">&lt;<a \
href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br>










<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr"><div>Changed my root password. Now it is \
working properly. :)</div><div>Thanks Gurpreet.<br></div></div>










<div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Apr 19, \
2013 at 4:32 PM, Gurpreet Luthra <span dir="ltr">&lt;<a \
href="mailto:gluthra@thoughtworks.com" \
target="_blank">gluthra@thoughtworks.com</a>&gt;</span> wrote:<br>











<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr">Is your root password for mysql different from \
&quot;mysql&quot;? The gradle script has that hardcoded right now.</div>











<div class="gmail_extra"><br clear="all"><div><div dir="ltr"><span \
style="color:rgb(102,102,102)">Regards</span><div>

<font color="#666666">Gurpreet</font></div><div><font \
color="#666666"><br></font></div><div><span style="color:rgb(102,102,102)">Join the \
</span><a href="https://my.thoughtworks.com/groups/humanitarian-software-program" \
target="_blank">Humanitarian Software Program</a><span \
style="color:rgb(102,102,102)"> to help and contribute OpenMRS, RapidFTR, Camfed and \
MifosX SIP Projects. </span><span style="color:rgb(102,102,102)">We are looking for \
Volunteers!</span></div>













</div></div><div><div>
<br><br><div class="gmail_quote">On 19 April 2013 16:29, kushagra singh <span \
dir="ltr">&lt;<a href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">













<div dir="ltr">Hi,<div><br></div><div>While setting up the MySQL database setup using \
this <a href="https://github.com/openMF/mifosx/wiki/MySQL-Database-Setup" \
target="_blank">wiki</a> , I&#39;m stuck at the following problem :</div>














<div><br></div><div>- when executing the command<b> gradle migrateTenantListDB \
-PdbName=mifosplatform-tenants </b>for creating the tables and populating them, Im \
getting this error causing build failure - </div> <div><br></div><div><div><b>        \
Execution failed for task &#39;:flywayMigrate&#39;. </b></div><div><b>        &gt; \
Unable to obtain Jdbc connection from DataSource</b></div><div><br></div><div> Using \
stacktrace I found these exceptions - </div><div><div><br></div><div>* Exception \
is:</div><div><b>org.gradle.api.tasks.TaskExecutionException: Execution failed for \
task &#39;:flywayMigrate&#39;.</b></div><div><b>Caused by: \
com.googlecode.flyway.core.api.FlywayException: Unable to obtain Jdbc connection from \
DataSource</b><br>














</div><div><b>Caused by: java.sql.SQLException: Access denied for user \
&#39;root&#39;@&#39;localhost&#39; (using password: \
YES)</b><br></div><div><br></div></div><div><br></div><div>Kindly help me with the \
possible solution for this error ??</div>














<div><br></div><div>Thanks,</div><div>Kushagra</div><div><br></div><div><br></div></div><div><div><div><br></div><div \
class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 18, 2013 at 2:30 PM, \
Vishwas Babu <span dir="ltr">&lt;<a href="mailto:vishwasbabuaj@gmail.com" \
target="_blank">vishwasbabuaj@gmail.com</a>&gt;</span> wrote:<br>














<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr">Hi Khushagra,<div><br></div><div>I \
wouldn&#39;t worry about caching just yet, but Kudos to you for thinking it through \
:)</div>














<div><br></div><div>Let us know if you run into any issues setting up the \
codebase</div> <div><br></div><div>Regards,</div><div>Vishwas \
</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On 18 \
April 2013 12:14, kushagra singh <span dir="ltr">&lt;<a \
href="mailto:kushagresingh@gmail.com" \
target="_blank">kushagresingh@gmail.com</a>&gt;</span> wrote:<br>















<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div dir="ltr">Hi,<div><br><div>Firstly, thank you for the \
response and guidance.</div><div><br></div><div>I went through Github&#39;s approach \
to <a href="http://developer.github.com/v3/#pagination" \
target="_blank">Pagination</a> and I feel Github has tackled the problem with most \
suitable solution.</div>

















<div><br></div><div>Although there can be many other ways to implement pagination and \
sorting -</div><div><br></div><div>1.  Using Query strings</div><div>ex. h<span \
style="line-height:18px;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,&#39;Lucida \
Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera \
Sans Mono&#39;,&#39;Courier \
New&#39;,monospace,serif">ttp://example/foos?page=2&amp;sort_by=date&amp;sort_how=asc</span></div>


















<div><br></div><div>2.  Using Pages as resources and query strings for \
sorting</div><div>ex. <span \
style="line-height:18px;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,&#39;Lucida \
Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera \
Sans Mono&#39;,&#39;Courier New&#39;,monospace,serif"><a \
href="http://example/foos/page/2?sort_by=date&amp;sort_how=asc" \
target="_blank">http://example/foos/page/2?sort_by=date&amp;sort_how=asc</a></span></div>


















<div><br></div><div>3.  Using pages as resources and an URL segment for \
sorting</div><div>ex. htt<span \
style="line-height:18px;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,&#39;Lucida \
Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera \
Sans Mono&#39;,&#39;Courier \
New&#39;,monospace,serif">p://example/foos/by-date/page/2</span></div>

















<div class="gmail_extra"><br></div><div class="gmail_extra">2nd and 3rd options are \
clearly not appropriate as handling pages as resources doesn&#39;t feel \
right.</div><div class="gmail_extra"><br></div><div class="gmail_extra">

















In the 1st option, also used by github, although URLs seems to be not clean and easy \
to remember, but is the best option if the application views pagination as a \
technique for producing different views for same resources.</div>

















<div class="gmail_extra"><br></div><div class="gmail_extra"><div><span \
style="line-height:18px;font-family:Arial,&#39;Liberation Sans&#39;,&#39;DejaVu \
Sans&#39;,sans-serif">If we are designing an application to be hypertext-driven ( \
which a RESTful application must be, by definition ), then client will not be \
constructing any URIs on its own. Instead the application itself will be giving the \
links for the client to follow. </span><br>

















</div><div><span style="line-height:18px;font-family:Arial,&#39;Liberation \
Sans&#39;,&#39;DejaVu Sans&#39;,sans-serif"><br></span></div><div><span \
style="line-height:18px;font-family:Arial,&#39;Liberation Sans&#39;,&#39;DejaVu \
Sans&#39;,sans-serif">So, the best practice can to </span><span \
style="font-size:13px;font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;line-height:18px">Add \
a </span><code style="font-size:13px;line-height:18px">Link:</code><span \
style="font-size:13px;font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;line-height:18px"> \
header that contains the </span><code \
style="font-size:13px;line-height:18px">prev</code><span \
style="font-size:13px;font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;line-height:18px"> \
and </span><code style="font-size:13px;line-height:18px">next</code><span \
style="font-size:13px;font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;line-height:18px"> \
relations. Also suggested by <a href="http://tools.ietf.org/html/rfc5988#page-6" \
target="_blank">RFC 5988</a>.</span></div>

















<div><span style="line-height:18px">ex. Link: &lt;<a href="http://foo/?page=3" \
target="_blank">http://foo/?page=3</a>&gt;; rel=&#39;next&#39;, Link: &lt;<a \
href="http://foo/?page=1" target="_blank">http://foo/?page=1</a>&gt;; \
rel=&#39;prev&#39;</span><br>

















</div><div><span style="line-height:18px"><br></span></div><div><span \
style="line-height:18px;font-family:Arial,&#39;Liberation Sans&#39;,&#39;DejaVu \
Sans&#39;,sans-serif">The only problem I feel is related to caching. I cannot do a \
full page caching since size and sort_by parameters can yield totally different \
results. </span></div>

















<div><span style="line-height:18px;font-family:Arial,&#39;Liberation \
Sans&#39;,&#39;DejaVu Sans&#39;,sans-serif"><br></span></div><div><font \
color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span \
style="line-height:18px">I also went through the <a \
href="https://github.com/eugenp/REST" target="_blank">REST example</a> and found the \
code base to be extremely helpful. Not only the implementation of pagination and \
sorting was helpful, but it also gave me a lot of insight into RESTful \
services,overall.</span></font></div>

















<div><span style="line-height:18px;font-family:Arial,&#39;Liberation \
Sans&#39;,&#39;DejaVu Sans&#39;,sans-serif">These resources will prove to be great \
help while I write my project design &amp; proposal.</span><br> </div><div><font \
color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span \
style="line-height:18px"><br></span></font></div><div><font color="#000000" \
face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span \
style="line-height:18px">Nextly, my plan is to setup the code and comprehend the \
basic concepts around MifosX.</span></font></div>

















<div><span style="line-height:18px;font-family:Arial,&#39;Liberation \
Sans&#39;,&#39;DejaVu Sans&#39;,sans-serif">Waiting eagerly for response on my views \
and doubts. </span></div><div><span \
style="line-height:18px;font-family:Arial,&#39;Liberation Sans&#39;,&#39;DejaVu \
Sans&#39;,sans-serif"><br>

















</span></div><div><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, \
sans-serif"><span style="line-height:18px">Thanks,</span></font></div><div><font \
color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span \
style="line-height:18px">Kushagra </span></font></div>

















</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div><div><br><div \
class="gmail_quote">On Tue, Apr 16, 2013 at 1:02 PM, Vishwas Babu <span \
dir="ltr">&lt;<a href="mailto:vishwasbabuaj@gmail.com" \
target="_blank">vishwasbabuaj@gmail.com</a>&gt;</span> wrote:<br>

















<blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div \
dir="ltr">Kushagra,<div><div><br></div><div> &gt;&gt;<span \
style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">if you could \
provide me any feedback or suggestions on how I should proceed.</span></div><div> \
<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div></div><div><span \
style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">I like \
Github&#39;s approach to pagination </span><a \
href="http://developer.github.com/v3/#pagination" \
target="_blank">http://developer.github.com/v3/#pagination</a> (using Link Header). A \
repo at <a href="https://github.com/eugenp/REST" \
target="_blank">https://github.com/eugenp/REST</a> seems to have a nice \
implementation of the same (also does sorting), going through this codebase would be \
a good starting point</div>


















<div><br></div><div>Regards,</div><div>Vishwas</div></div><div \
class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On 16 April 2013 \
00:15, Ed Cable <span dir="ltr">&lt;<a href="mailto:edcable@gmail.com" \
target="_blank">edcable@gmail.com</a>&gt;</span> wrote:<br>


















</div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div>Kushagra,<div><br></div>
 <div>Welcome to the community and thank you for taking the time to formally \
introduce yourself. We&#39;re delighted to see your strong interest in our \
project.</div> <div><span style="font-size:13px"><br></span></div><div><span \
style="font-size:13px">I&#39;m our community manager and will be administering our \
2013 GSoC program but am not a techie so will let one of our mentors or developers \
respond with some specific feedback and next steps about the Server Side Pagination \
and Sorting project. I&#39;ve cc&#39;d our mifos-developers mailing list (<a \
href="mailto:mifos-developer@lists.sourceforge.net" \
target="_blank">mifos-developer@lists.sourceforge.net</a>) as that&#39;s a better \
place to continue this thread.</span></div>


















<div><br></div><div>See below for responses to some of your points inline.   \
</div><div><br></div><div><div>On Monday, April 15, 2013 6:28:04 AM UTC-7, kushagra \
singh wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



















<div dir="ltr">Hi,<div><br></div><div>I am Kushagra Singh, a Computer Science student \
fromBirla Institute of Technology and Science, Pilani from India. I am persuing my \
M.Sc. (Tech) Information Systems from here.</div><div>



















<br></div><div>I have always had an interest in developing products for the good of \
society and Mifos X seems a wonderful effort in this direction. It holds a great deal \
of promise for people in my country especially wherein Financial services need \
significant improvement - especially among the poor. I am deeply motivated for this \
cause and feel a better financial system is a must for a better society.</div>


















</div></blockquote><div><br></div></div><div>Awesome - we love contributors who are \
passionate and deeply committed to their work! </div><div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



















<div dir="ltr"><div>
</div><div><br></div><div>I am interested in the project - &quot;<b>Server-side \
Pagination and Sorting&quot;</b>.</div><div><br></div><div>Regarding my technical \
skills I do not have prior experience in contributing to open-source projects but \
I&#39;m confortable with large code bases and version control systems (git, \
subversion), agile development, incremental development etc. </div>



















<div>I feel confident that I will be able to complete the project which I undertake \
with an afeeicient design and proper documentation, and help in creating an impact on \
the lives of those who are benefited by Mifos.</div>


















</div></blockquote><div><br></div></div><div>No worries that this would be your first \
open source project - what&#39;s important is that you take all those fundamental \
skills you&#39;ve learned and combine that with open and transparent communications.  \
One of the biggest success factors is open communication and always being able to ask \
for help.  Your email introduction is a great first step towards showing your strong \
communications skills.  </div>


















<div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div \
dir="ltr"> <div><br></div><div>I believe in an incremental approach and that there \
should be deliverables at each stage of the project. This way there will be \
accountability at each stage plus bug tracking and removal will be much easier. \
Appropriate time for documentation should also be kept.</div>



















<div>Also I will provide periodic updated to my mentor and use the mailing list and \
IRC channel when at a roadblock.</div></div></blockquote><div><span \
style="font-size:13px"><br></span></div></div><div><span style="font-size:13px">Our \
developers will be happy to hear all of this. Commit early and commit often - with \
frequent communications and good documentations - exactly what we want. Yes - do use \
the developer mailing list - </span><a \
href="https://lists.sourceforge.net/lists/listinfo/mifos-developer" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/mifos-developer</a> - \
(as opposed to users)<span style="font-size:13px"> and IRC - hopefully you&#39;ll \
always find a friendly face in the chatroom. </span></div>


















<div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div \
dir="ltr"><div><br></div><div>During my internship at Apigee technologies, I have \
inculcated a deep interest in web technologies especially REST. I am well experienced \
in Java and am very comfortable with frameworks - Struts, Spring, Hibernate, iBatis. \
I have contributed to a free product provided by Apigee - Apigee Console and \
therefore gained experience in these fields.</div>



















<div>I have used clients like Jersey and ApacheHttpClient.  I am experienced with \
HTML,CSS and have a basic familiarity with JavaScript.</div><div>I am familiar with \
RESTful API design aspects and have a strong passion for writing beautiful and \
elegant code.</div>


















</div></blockquote><div><br></div></div><div>Those skills sound like a good fit. Your \
experience at Apigee will be highly valued - I know that we followed a lot of their \
best practices in building our API framework.  </div>


















<div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div \
dir="ltr"> <div><br></div><div>I will be finishing my internship at Apigee on 14th of \
June and will be free for the duration of Gsoc.</div><div>I am in the process of \
setting up the code base and understanding the basics around MifosX.</div>


















</div></blockquote><div><br></div></div><div>That timing works well as you&#39;ll \
wrap up just in time for the start of coding for GSoC. If you run into any hurdles in \
the setup, don&#39;t hesitate to ask for help. </div>


















<div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div \
dir="ltr"> <div><br></div><div>I would be grateful if you could provide me any \
feedback or suggestions on how I should \
proceed.</div></div></blockquote><div><br></div></div><div>I&#39;ll let one of our \
devs respond.  </div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



















<div dir="ltr"><div><br></div><div>Thanks,</div><div>Kushagra</div></div>
</blockquote></div><div><div><br>On Monday, April 15, 2013 6:28:04 AM UTC-7, kushagra \
singh wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



















<div dir="ltr">Hi,<div><br></div><div>I am Kushagra Singh, a Computer Science student \
fromBirla Institute of Technology and Science, Pilani from India. I am persuing my \
M.Sc. (Tech) Information Systems from here.</div><div>



















<br></div><div>I have always had an interest in developing products for the good of \
society and Mifos X seems a wonderful effort in this direction. It holds a great deal \
of promise for people in my country especially wherein Financial services need \
significant improvement - especially among the poor. I am deeply motivated for this \
cause and feel a better financial system is a must for a better society. \
</div><div><br></div><div>I am interested in the project - &quot;<b>Server-side \
Pagination and Sorting&quot;</b>.</div><div><br></div><div>Regarding my technical \
skills I do not have prior experience in contributing to open-source projects but \
I&#39;m confortable with large code bases and version control systems (git, \
subversion), agile development, incremental development etc. </div>



















<div>I feel confident that I will be able to complete the project which I undertake \
with an afeeicient design and proper documentation, and help in creating an impact on \
the lives of those who are benefited by Mifos.</div>



















<div><br></div><div>I believe in an incremental approach and that there should be \
deliverables at each stage of the project. This way there will be accountability at \
each stage plus bug tracking and removal will be much easier. Appropriate time for \
documentation should also be kept.</div>



















<div>Also I will provide periodic updated to my mentor and use the mailing list and \
IRC channel when at a roadblock.</div><div><br></div><div>During my internship at \
Apigee technologies, I have inculcated a deep interest in web technologies especially \
REST. I am well experienced in Java and am very comfortable with frameworks - Struts, \
Spring, Hibernate, iBatis. I have contributed to a free product provided by Apigee - \
Apigee Console and therefore gained experience in these fields.</div>



















<div>I have used clients like Jersey and ApacheHttpClient.  I am experienced with \
HTML,CSS and have a basic familiarity with JavaScript.</div><div>I am familiar with \
RESTful API design aspects and have a strong passion for writing beautiful and \
elegant code.</div>



















<div><br></div><div>I will be finishing my internship at Apigee on 14th of June and \
will be free for the duration of Gsoc.</div><div>I am in the process of setting up \
the code base and understanding the basics around MifosX.</div>



















<div><br></div><div>I would be grateful if you could provide me any feedback or \
suggestions on how I should \
proceed.</div><div><br></div><div>Thanks,</div><div>Kushagra</div></div> \
</blockquote></div></div><br></div></div>------------------------------------------------------------------------------<br>
 Precog is a next-generation analytics platform capable of advanced<br>
analytics on semi-structured data. The platform includes APIs for building<br>
apps and a phenomenal toolset for data science. Developers can use<br>
our toolset for easy data analysis &amp; visualization. Get a free account!<br>
<a href="http://www2.precog.com/precogplatform/slashdotnewsletter" \
target="_blank">http://www2.precog.com/precogplatform/slashdotnewsletter</a><br>Mifos-developer \
mailing list<br> <a href="mailto:mifos-developer@lists.sourceforge.net" \
target="_blank">mifos-developer@lists.sourceforge.net</a><br> Unsubscribe or change \
settings at:<br> <a href="https://lists.sourceforge.net/lists/listinfo/mifos-developer" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/mifos-developer</a><br></blockquote></div><br></div>
 </blockquote></div><br><br clear="all"><div><br></div></div></div><span><font \
color="#888888">-- <br><font size="4"><u><i>Kushagra \
Singh<br></i></u></font>M.Sc.(Tech.) Information Systems<br>BITS<b> </b>Pilani<br>

</font></span></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>
</div></div></div></div>
<br>------------------------------------------------------------------------------<br>
 Precog is a next-generation analytics platform capable of advanced<br>
analytics on semi-structured data. The platform includes APIs for building<br>
apps and a phenomenal toolset for data science. Developers can use<br>
our toolset for easy data analysis &amp; visualization. Get a free account!<br>
<a href="http://www2.precog.com/precogplatform/slashdotnewsletter" \
target="_blank">http://www2.precog.com/precogplatform/slashdotnewsletter</a><br>Mifos-developer \
mailing list<br> <a href="mailto:mifos-developer@lists.sourceforge.net" \
target="_blank">mifos-developer@lists.sourceforge.net</a><br> Unsubscribe or change \
settings at:<br> <a href="https://lists.sourceforge.net/lists/listinfo/mifos-developer" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/mifos-developer</a><br></blockquote></div><br></div></div></div>
 <br>------------------------------------------------------------------------------<br>
 Precog is a next-generation analytics platform capable of advanced<br>
analytics on semi-structured data. The platform includes APIs for building<br>
apps and a phenomenal toolset for data science. Developers can use<br>
our toolset for easy data analysis &amp; visualization. Get a free account!<br>
<a href="http://www2.precog.com/precogplatform/slashdotnewsletter" \
target="_blank">http://www2.precog.com/precogplatform/slashdotnewsletter</a><br>Mifos-developer \
mailing list<br> <a href="mailto:mifos-developer@lists.sourceforge.net" \
target="_blank">mifos-developer@lists.sourceforge.net</a><br> Unsubscribe or change \
settings at:<br> <a href="https://lists.sourceforge.net/lists/listinfo/mifos-developer" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/mifos-developer</a><br></blockquote></div><br><br \
clear="all"><div><br></div>-- <br><font size="4"><u><i>Kushagra Singh<br>











</i></u></font>M.Sc.(Tech.) Information Systems<br>BITS<b> </b>Pilani<br>
</div>
</div></div></blockquote></div><br><br>
</div></div></div></div>
</blockquote></div><br><br>
</div></div></div></div>
<br></div></div>------------------------------------------------------------------------------<br>
 Try New Relic Now &amp; We&#39;ll Send You this Cool Shirt<br>
New Relic is the only SaaS-based application performance monitoring service<br>
that delivers powerful full stack analytics. Optimize and monitor your<br>
browser, app, &amp; servers with just a few lines of code. Try New Relic<br>
and get this awesome Nerd Life shirt! <a href="http://p.sf.net/sfu/newrelic_d2d_apr" \
target="_blank">http://p.sf.net/sfu/newrelic_d2d_apr</a><div><br>Mifos-developer \
mailing list<br> <a href="mailto:mifos-developer@lists.sourceforge.net" \
target="_blank">mifos-developer@lists.sourceforge.net</a><br> Unsubscribe or change \
settings at:<br> <a href="https://lists.sourceforge.net/lists/listinfo/mifos-developer" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/mifos-developer</a><br></div></blockquote></div><br></div>
 <br>------------------------------------------------------------------------------<br>
 Try New Relic Now &amp; We&#39;ll Send You this Cool Shirt<br>
New Relic is the only SaaS-based application performance monitoring service<br>
that delivers powerful full stack analytics. Optimize and monitor your<br>
browser, app, &amp; servers with just a few lines of code. Try New Relic<br>
and get this awesome Nerd Life shirt! <a href="http://p.sf.net/sfu/newrelic_d2d_apr" \
target="_blank">http://p.sf.net/sfu/newrelic_d2d_apr</a><br>Mifos-developer mailing \
list<br> <a href="mailto:mifos-developer@lists.sourceforge.net" \
target="_blank">mifos-developer@lists.sourceforge.net</a><br> Unsubscribe or change \
settings at:<br> <a href="https://lists.sourceforge.net/lists/listinfo/mifos-developer" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/mifos-developer</a><br></blockquote></div><br><br \
clear="all"><div><br></div>-- <br><font size="4"><u><i>Kushagra Singh<br>







</i></u></font>M.Sc.(Tech.) Information Systems<br>BITS<b> </b>Pilani<br>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>
</div></div></div></div>
<br>------------------------------------------------------------------------------<br>
 Try New Relic Now &amp; We&#39;ll Send You this Cool Shirt<br>
New Relic is the only SaaS-based application performance monitoring service<br>
that delivers powerful full stack analytics. Optimize and monitor your<br>
browser, app, &amp; servers with just a few lines of code. Try New Relic<br>
and get this awesome Nerd Life shirt! <a href="http://p.sf.net/sfu/newrelic_d2d_apr" \
target="_blank">http://p.sf.net/sfu/newrelic_d2d_apr</a><br>Mifos-developer mailing \
list<br> <a href="mailto:mifos-developer@lists.sourceforge.net" \
target="_blank">mifos-developer@lists.sourceforge.net</a><br> Unsubscribe or change \
settings at:<br> <a href="https://lists.sourceforge.net/lists/listinfo/mifos-developer" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/mifos-developer</a><br></blockquote></div><br><br \
clear="all"><div><br></div>-- <br></div>


</div><font><i style="font-family:comic sans ms,sans-serif"><b>Anuruddha \
Premalal</b>(STMIEEE)</i></font><span style="font-family:verdana,sans-serif"><div>


Department of Electronic and Telecommunication Engineering<br></div>
University of Moratuwa</span><br style="font-family:verdana,sans-serif"><span \
style="font-family:verdana,sans-serif">Sri Lanka.</span><br><br \
style="font-family:tahoma,sans-serif"><span \
style="font-family:tahoma,sans-serif">Tele    :</span><i \
style="font-family:tahoma,sans-serif"> </i><span \
style="font-family:tahoma,sans-serif"><a href="tel:%2B94-710461070" \
value="+94710461070" target="_blank">+94-710461070</a> , +94-71828273<i>7<br>





</i>E-mail : <a href="mailto:anuruddhapremalal@ieee.org" \
target="_blank">anuruddhapremalal@ieee.org</a><i><br></i></span> </div>
<br>------------------------------------------------------------------------------<br>
 Try New Relic Now &amp; We&#39;ll Send You this Cool Shirt<br>
New Relic is the only SaaS-based application performance monitoring service<br>
that delivers powerful full stack analytics. Optimize and monitor your<br>
browser, app, &amp; servers with just a few lines of code. Try New Relic<br>
and get this awesome Nerd Life shirt! <a href="http://p.sf.net/sfu/newrelic_d2d_apr" \
target="_blank">http://p.sf.net/sfu/newrelic_d2d_apr</a><br>Mifos-developer mailing \
list<br> <a href="mailto:mifos-developer@lists.sourceforge.net" \
target="_blank">mifos-developer@lists.sourceforge.net</a><br> Unsubscribe or change \
settings at:<br> <a href="https://lists.sourceforge.net/lists/listinfo/mifos-developer" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/mifos-developer</a><br></blockquote></div><br><br \
clear="all"><div><br></div>-- <br><font size="4"><u><i>Kushagra Singh<br>


</i></u></font>M.Sc.(Tech.) Information Systems<br>BITS<b> </b>Pilani<br>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><font \
size="4"><u><i>Kushagra Singh<br></i></u></font>M.Sc.(Tech.) Information \
Systems<br>BITS<b> </b>Pilani<br> </div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><font \
size="4"><u><i>Kushagra Singh<br></i></u></font>M.Sc.(Tech.) Information \
Systems<br>BITS<b> </b>Pilani<br> </div>



------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2

Mifos-developer mailing list
mifos-developer@lists.sourceforge.net
Unsubscribe or change settings at:
https://lists.sourceforge.net/lists/listinfo/mifos-developer

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic