Category Archives: Experiences

Google Summer of Code with Fluid Infusion

People who are waiting for my Symbian tutorials would have to wait. In the past couple of weeks, I haven’t had the time to write those tutorials as I have been working on a Google Summer of Code Project for the Inclusive Design Institute. For those who are unfamiliar with Google Summer of Code, it is a program that offers student developers the opportunity to write code for various open source projects. The project that I am working on is Image Editor which will be developed as a component for the fluid infusion framework. Fluid Infusion is a Javascript library that provides several components for building awesome interfaces for the web. I will be talking about a lot of things related to GSoC in this post. Lets get started.

Google announces GSoC every year sometime in January. It then accepts applications from several organizations who wish to work under the program and hire student developers for the summer. Few organizations get selected which then propose several projects on which the students would work on during the summer. This is when the students start their journey. I looked at several organizations and listed a few whose projects matched with my field of interest. The next step is to learn more about these organizations and make sure that you would like to work with them in the summer. It is very important to identify the correct organization and the correct project that you want to be working on. We can get to know more about the organizations by hanging out in their IRC channels or joining their mailing lists.

After this, I started writing proposals for the projects which I was interested to work on. This is probably the most important step of the application process. This is where the organizations can know about whether you have understood about the project and how much work do you propose to do. At this step, one could get feedback about the proposal from the mentor organization as to what they expect from the proposal. There is no such thing like a set of guidelines for writing a proposal because different organizations look for different things in the proposal. But, in general, a proposal should be realistic and to the point with at least a basic timeline of the work that you expect to complete every 15 days. One can submit upto 20 proposals to Google. Again this is an upper limit and is not at all recommended. Proposals should be submitted only to organizations which really interest you. Also one should focus on the quality of proposal rather than the quantity.

After this phase, one can either choose to relax till the declaration of results or study about the projects that he submitted proposals for. A few lucky ones make it to GSoC and it is an opportunity to get to know more about how large open source organizations work as well as contribute back to the open source community. This was just the beginning. The real work starts after being selected for GSoC. I guess, this is a long enough list of suggestions for the GSoC Applicants. I will now talk about my GSoC proposal and the wonderful organization that I have started working with.

You can find my proposal on Image Editor here. This is the final version of the proposal which I came up with after a few discussion with the mentor for Image Editor, Michelle D’Souza. I was very excited after I came to know that I had been accepted for Goolge Summer of Code. Frankly, it came to me as a shock. Thanks again to Fluid for giving me this wonderful opportunity.

During the community bonding period, I started looking up documentation on Fluid Infusion and remained in the IRC channel. This was the first time that I was working on a big open source project involving several developers. But, the Fluid community is really wonderful everyone is more than willing to help. With the help and support from my mentor as well as the developers, I was able to pickup the framework quickly and started developing simple components. I am working using github and all the code that I develop is available here. I am doing the development using JavaScript, HTML5, PHP and am working on Aptana Studio. I will be talking more about developing components for fluid and how to use fluid to develop good interfaces in my next posts.

In the meantime, I also received the Welcome Package for Google Summer of Code students. I was very excited to receive the package as it was from Google. Well, I guess that’s enough for today. I should probably get back to coding :). Have a look at my welcome package:

Image Inpainting

An updated version of this post is available here.

Image Inpainting is the art of filling in lost portions of an image using background details in a visually plausible way. I came across this topic while searching for projects in the field of image processing for sixth semester. The moment I saw a few sample pictures, I decided that I was gonna work on it.
Here are a few pics of what we achieved in the end using our software:
Source Image for Inpainting Result after performing Inpainting

As is quite clear from these images, a good and fast algorithm for Image Inpainting can be really useful. I worked with Sapan to develop the software. We started with a traditional algorithm but finally ended up making several changes to it in order to improve the results.

Here’s a brief decription of the inpainting algorithm.

  1. Divide the marked region into patches.
  2. Assign priorities to the patches (Using Data and Confidence Terms)
  3. Choose patch with maximum priority and find a patch from background region that is most similar to the chosen patch
  4. Replace the patch with the patch from background and update data and confidence values.

This is a very brief overview of the inpainting algorithm. For more details, you may feel free to contact me or go through the research paper that we authored.

For more information about the implementation, visit our project page on Sourceforge. I hope that you would enjoy using it. It is still a very early release and we hope to improve on it soon. Looking forward to your participation on the project as well.

See the software in action in this video.

Stay tuned for my next post. Meanwhile, tell me your suggestions/comments about my work.

Joining Sun Family

This story begins with a mail from our Dean Student Affairs, Prof. G.C. Nandi. I was told to send my resume to him. At that time, I was unaware about what it was for. Later, I came to know that it was for the post of Sun Campus Ambassador for my campus. I was very excited about it. But at the same time, I was worried. It was the first interview that I was going to face. They had scheduled a telephonic interview for me with a Sun Engineer. I was in my third semester then and didn’t know much about interviews. I had no idea about what it was going to be like.

So, in complete ignorance, I waited for the day of interview. She started the interview with some general questions and then slowly came towards technical questions. It was a nice experience which lasted for about 30 minutes. After a few days, I received a call telling that I had been selected as the Sun Campus Ambassador. I was very excited. I had never dreamed that I would be promoting Sun Microsystems in my campus. With this began my wonderful journey as a Sun Campus Ambassador. 🙂

After a few days, I received a letter from Sun Microsystems about my responsibilities and my salary ;). This was how I became a part of the Sun Microsystems family. I began by organizing a few presentations about Sun products. I was amazed at the wonderful responses of my colleagues. I also arranged a special screening of Glassfish Webinar organized by Sun. Motivated with the success, I along with my roommate Sapan, organized a Free and Open Source Software (FOSS) Quiz. It attracted a lot of students. Our complete B2k7 batch and most of my seniors and juniors participated in the quiz. All the prizes, including 6 pen drives for the top 3 teams and various other goodies were sponsored by Sun Microsystems.

I enjoyed every moment as a Sun Campus Ambassador. After the merger of Sun and Oracle, I acquired the role of OSUM Affiliate Leader for my campus as a part of which I promoted various Sun and other Free and Open Source Softwares. We also arranged another FOSS quiz which was also very successful.