SimpleCV - Beginning of my Open Source Contribution
I had been looking for some open source project so that I could contribute something and make my profile a bit stronger for GSoC 2012. I couldn’t find anything interesting or anything that I could do. I was afraid as I hadn’t contributed anything to the open source community. I was looking for open source projects in python everywhere. Then I found something interesting that I could do. It was a GSoC 2012 project idea of Gentoo Foundation, and I wanted to contribute to it by adding some patch to Portage, Porthole’s Software Management Tool, which is considered one of the best in Linux community. I joined Gentoo-SOC IRC channel, and talked to mentor named dol-sen. He helped me a lot, gave me a couple of links, so I could start my way into portage development. He told me to install Gentoo, as it was necessary, since I had to work on Portage, and it is built for Gentoo. I tried installing Gentoo, but ended up installing Arch Linux (See previous post).
With announcement of organization list for GSoC 2012 just a few days away, I started to get more and more paranoid, and stopped doing anything for couple of days. I took a break from my normal life, and watched few movies, tv-series, tweeted. The day had dawned, and I still had to wait for some 15 hours. At 12:30 AM, the organization list was announced. They hadn’t added all of the orgs yet, and luckily, I stumbled upon SimpleCV. I knew this was the one. I had to go for this organization. As I am taking a course on Image Processing, and had done some work in the field of Computer Vision earlier, SimpleCV seemed perfect. Without wasting a second, I joined #SimpleCV channel on IRC, found mentor Katherine Scott, with whom I talked about SimpleCV, how to begin, and what things I could contribute. It was a quick start for me. I downloaded and forked SimpleCV from GitHub, started reading documentation, tried some examples, looked through completer source code, made some changes. Katherine(kscottz, IRC nick) told me she was working on DFT, and color quantization. I also started working on DFT, made something, but I was getting some errors, converting it back. So, I asked this question on SimpleCV forum. I got a quick reply from her, and she mentioned she had almost completed DFT, and needed some examples, and test cases. I started working on it. I uploaded way too many filters, and pictures on imgur.
As I am studying Image Processing, I know how to create a blur, or sharpen an image. I made Butterworth, Gaussian low pass and high pass filters and applied DFT to get desired output. I was getting correct outputs, but since python is slow, it takes a lot of time iterating over a 512x512 image. So, Katherine helped me with it, and she suggested to make a fake filter, resize it to fit the image size, and then apply DFT. It worked like a charm. Run-time decreased to one-third. I created a short report(after all, I am an engineer, and writing reports is the only thing that we do), with output images, and filters. I even documented my code. Katherine appreciated it, and asked me to send a pull request. So, with pull request #42, I started my open source contribution. And I can’t even express the feeling.
Things got serious for GSoC 2012. Deadline was near, and I was yet to decide a good project idea. I took help from few seniors, few friends. mentors, and my brother Raj Rambhia. Ankit Dafatry, one of my brother’s juniors in college, and a GSoCer, helped me a lot. Niraj Sanghavi and Dhiral Chheda, two of my brother’s friends, who are doing research in the field of Computer Vision, gave me great feedbacks. Varad Gunjal, Abhinav Gupta, Priyans Murarka helped me decide project idea, gave me proper advice, helped me make my GSoC proposal.
Submitted my proposal, and now waiting for results. I have high hopes. That’s it for now. I am posting something after a very long time. I have been busy. More on my GSoC proposal, and project idea later. Got to finish some work.
P.S. I am a freelancer now.
Playing around with Android UI
Articles focusing on Android UI - playing around with ViewPagers, CoordinatorLayout, meaningful motions and animations, implementing difficult customized views, etc.