The last few GSoC commits (Pencils down)

So, the official last week of GSoC has begun.
The previous week involved working on the documentation aspect and packaging a box for quick start.
This is the documentation work that I did last week (Installation Documentation) I also packaged a Vagrant box, but faced a small problem while trying to put the CPAN mapping. I shall continue working on it in the coming weeks.
Oh! and I managed to resolve the merge conflicts on my outstanding branches for Stargazers. That was one heck of a learning! LOL

Apart from this, I worked on my final commits to the Web of Trust version 1. I had to add the trust data to the news feed. I’ll be pushing this work in this week before the final deadline. That would conclude Web of Trust Version 1. There’s definitely a long way to go.

I would say participating in the Google Summer of Code definitely helped me in various ways. The most important one being me contributing to MetaCPAN. I got a great amount of exposure to the MetaCPAN codebase. I learned not only about the front end work but could hack on the API too. And the experience was amazing.  🙂
I got the feel of working on a real-time project, where meeting deadlines and solving blockers was made easy with the help from my mentors. Infact, communication was the key here. The Monday Google Hangouts with my mentors, the discussions on the irc channel and the daily report mails made it much easier for me to advance.
Unfortunately, I won’t be a student next year. So this was my last time with GSoC.
Although, I’ll definitely be a part of MetaCPAN and would obviously continue contributing. 🙂

My plan for the next few weeks will be, to get my work merged into MetaCPAN and probably help out other budding students planning to be a part of MetaCPAN.

That’s me… signing off!

Past few weeks with MetaCPAN.

The past few weeks involved fixing my work on “Starring of Modules” and exploring more with “Web of Trust”.
I’m almost done with implementing the first version of the “Web of Trust”.
So far, I have been able to add the trust data to the API and add a “trust” button to the author’s page. Also, I have used the autocomplete feature to search for authors by their names and, included a separate page that lists the trusted authors’ details.
The modules that will be recommended by these trusted authors will be displayed on the author’s page in the form of a news feed.
My plan for the next week is to work on enhancing this feed and making sure that the right data is highlighted.
That’s all for now! 🙂

Web of Trust: Initial thoughts.

So, my next iteration for the GSoC project has begun 🙂
I will be mainly focusing on the implementation of the “Web of Trust” model for MetaCPAN.

For the initial Web of Trust plan, every author on metacpan.org will be able to list down his/her own set of “trusted” authors.

On the front end, this can be done by searching for the PAUSE id of the author with the help of an auto-complete box. And, this information will be stored in the API in the ‘author’ endpoint as an array which contains the PAUSE id of the trusted authors. As of now, my mentors and I are thinking of simplifying the implementation by modifying the author endpoint though, later stages may call for an implementation of a separate endpoint.

So, these trusted contacts can be displayed on a page for quick reference and each time the author updates his contacts, this page can display it accordingly. This is obviously personalized for every user. So, here we will have to retrieve the gravatar images of the trusted authors for the display and a separate HTML page will be created. After the author lists down his trusted contacts, all the distributions favorited by them will be highlighted in the author’s feed. Here, the recent ++ers can be queried to retrieve only the dists favorited by the trusted PAUSE user and can be displayed. These feeds will be highlighted on the search page.

A few future insights:
1. We could have a “Leaderboard” page which will tell us who appears in most of the trusted lists.
2. Hence, the authors will have a rank/trust value which can be displayed on the author’s page like the coderwall endorsements.
3. Also, a button can be added on the author’s page which lets you add him/her to the trusted list. This will work alongside the autocomplete search box.

The discussion for this initial implementation can be viewed here: Web of Trust for MetaCPAN

So, my work for this week will be to,

1. Get the autocomplete search feature working for saving the “trusted” authors list.

2. Displaying the LeaderBoard page.

Improved display of Plussers.

So, for the last few weeks I worked on improving the display of the authors who have ++ed a distribution on MetaCPAN.
So I now created a separate page to display the gravatar images of the authors.
This way the UI was much improved.

Apart from the ++ers, I worked on updating the metacpan-example codes. As ElasticSearch is now deprecated, MetaCPAN will soon have to use Search::Elasticsearch. Also, I used MetaCPAN::Client for making requests to the api.

These were the two improvements I implemented  in the week after the Community bonding period.

Summary Report: Community Bonding.

So, the community bonding period of Google Summer of Code went on from the 22nd of April and got over today. This is the summary of my work done so far.

In this duration, I acquainted myself with Catalyst and Elasticsearch. Read a few docs and worked on two issues.

1. Including the gravatar images of the authors who like a particular distribution.  As a part of my initial release of this feature, I worked on retrieving the images of the PAUSE users, and simply displayed them as a list.
You can check my pull request here: https://github.com/CPAN-API/metacpan-web/pull/1176

Then, I made two small changes to the same code: Rounded the corners and added a title tag for display of author’s name on hover. It was something like this:  https://github.com/CPAN-API/metacpan-web/pull/1181

2. Porting MetaCPAN-Examples to use MetaCPAN::Client instead of MetaCPAN::API, and Search::Elasticsearch instead of ElasticSearch.

My timeline for the Community Bonding was roughly as follows:

26th April-3 May : Read the Catalyst and Elasticsearch documentation. Understood the scope of the ++ers feature to be implemented and drafted a rough algorithm for the same.

6-12 May: As ElasticSearch is now deprecated and does not support asynchronous processing, I changed my code to use the existing model classes to invoke calls to the MetaCPAN API.

13th May: The initial pull request was merged.

13-18th May : Started working on my 2nd issue. Porting all scripts in https://github.com/CPAN-API/metacpan-examples to use MetaCPAN::Client and Search::Elasticsearch.

Sent an initial pull request for feedback from my mentors: Olaf and Randy.

19-25th May: University exams are on! So, no such schedule for this week. Though later, I plan to improve the ++ers feature and complete metacpan-examples.

That’s all in this report. 🙂

Until later!

How I met MetaCPAN.

Hello folks. So, this post is basically to provide an insight on how I approached the GSoC/OPfW application process.Both the programs follow a similar schedule, but I’ll address GSoC mostly.

For the year 2014, the list of accepted proposals came out on the 24th of Feb.
Though there are many students out there who aren’t newbies like me, and start contributing to their organization even before this list is out, I however, started late.
Perl being one of the new languages that I learned as a part of my engineering project work, I was keen on contributing to the Perl community and began searching for similar organizations.
Finally, I decided to go with “The Perl Foundation” (TPF) Knowing that I had less time in my hand, I decided to apply to just one organization.

So, I went out there and checked the project ideas proposed by TPF. That is how I learned about MetaCPAN. MetaCPAN is basically an open source search engine for CPAN modules with a better UI and enhanced functionalities than the conventional sco. So, I made some noise in the irc channel and started interacting with the mentors and others in the community.
As a part of my pre application contribution: I had to basically generate sitemaps for MetaCPAN.

You can see my work here. Though it is not my best, I learned a lot out of it. My mentors were very helpful in making my first contribution a success. Work was already done and all I had to do was learn a few things and fix the loopholes.Everything, right from Github to Sitemaps was new to me. and I had a lot to work with.I tried my best and managed to fix the bug (again, with a lot of help from my mentors).

In conclusion, I would say –
There were 3 important things that I did while making my application:

1. Applied to just one organization. (In my case, it helped as I started off late and was a beginner).

2. Even though I knew nothing about MetaCPAN, I started by communicating with the mentors. (They made it very easy 🙂 ) and drew out a schedule for the same.

3. Fixed a bug and made sure the one application I would work on, had some strong points.

GSoc and OPfW are both great programs that every computer student must apply for. It definitely gives you much exposure. And your work is recognized in every way 🙂

That’s all for now!