Sri Lanka's First and Only Platform for Luxury Houses and Apartment for Sale, Rent

Sunday, June 27, 2010

A month of Work, Fun and Excitement

It is more than one month since Google Summer of Code coding officially kicked off on 24th of May 2010. Turning back I can see all the oppurtunities I faced to learn and the challenges I had to face and how I accomplished them of course with the great help of my mentor. It was a great month.

Recapping on last week where I managed to get the Module Repository caching done and started testing with a locally hosted module repository.

Before the Module Repository caching for each Key Stroke on the Module Repository search box an ajax call is sent to remote server. This call is sent via the internet. In sites where internet is slow this could take time to search modules.

With the initial module repository caching at the startup of all the modules in the repository. I have changed the ajax call to call a servlet which resides in the local host. Thus the requests sent over the internet is decreased. Which leads to faster module search.

I am yet to fully test this with the actual system. Once I do it I can do a performance test.

Hoping to do those within this week. Hope god will be with me as always.

Sunday, June 20, 2010

Four Weeks..

It has been 4 weeks since Google Summer of Code officially kicked off and it was quite a learning experience thus far. Learnt a lot about open source and how they collaborate to get the work done.

Last week was an eventful week where I started developing the module repository caching mechanism. And to add icing on the cake last Saturday (19th of June 2010) I received the Google Welcome Package. It was a quite a gift to receive after a much awaited 3 weeks.

Mid Term evaluation begins on July 12th 2010 in exactly 3 weeks. Hoping to completely finish module repository caching and searching before that.

Hope god will be with me as always.

Sunday, June 13, 2010

Presentation I..

Last week was an eventful week with the OpenMRS Interns Presentation on 10/06/2010.
I wanted to do a Presentation of the problem statement which can be understood by anyone, and which describes what I have done so far and what I am hoping to do in the future.

I thought to create a Presentation which is informal but clearly states the above mentioned.

The Presentation can be found at

I got to do my Presentation via a Skype Conference Call where I had to speak and explain each slide. Unfortunately the screen share system didn't work for Sri Lanka on that day due to some bandwidth problems, so my mentor (Burke Mamlin) had to flip through the slide while I was explaining orally. Thank you Burke for that :). It seems many have enjoyed the slides and my mentor said that my presentation was easy to follow.

I couldn't do the demonstration of the things I have done, sadly :( but I was determined to show it at least to my mentor. So I managed to take some time out my mentor's busy schedule and did a screen sharing via Skype on Saturday around 10.00 P.M. UTC-4. He gave me some feedback which included pros and cons of my work so far.

He pointed out somethings which he said are of low priority that can be done to improve the things I have done. I took notes about them and hoping to get to them at the end of the summer.

Currently I am planning and designing to do the Speeding up of module repository search which would also be another challenging task.

Hope everything goes smoothly and may god be with me as always.

Sunday, June 6, 2010

So Far...

Refined Module Administration

My project Refine Module Administration focuses on a solution for the problem of Spring Context Refresh whenever a module action is performed from the Module Administration page. The idea was to decouple the Spring Context Refresh from each module action and make it an explicit action that can be performed when the user actually needs to.

This will prevent unwanted interruptions to the background processes and scheduled tasks. Developing for the last couple of weeks I managed to get this done by creating an attribute called pendingAction in Module. I am using this attribute to store the pending action per module. And a Map will store the moduleId and the pendingAction for fast retrieval. When the user eventually tries to restart, this map will be referred to execute any pending tasks first and then perform a Spring Context refresh.

I had to face a lot challenges because after a server crash or manual stop, at the next restart the pending module actions had to performed. So I had to think of ways to perform these tasks without actually performing a Spring Context Refresh.

I had to learn the OpenMRS Core API related to Module Administration and Spring 3 to do the coding.

I have started testing now hoping to test the system in all aspects.