The coding period has ended. I have submitted my final evaluation and now waiting for the final results to be announced. This post is a wrap up of what happened through the summer and the current status of the project I was working on.
The project I chose, Profile in the Cloud (PiCl) is a fairly new project which is under heavy development. I joined the project in the prototyping stage. When the GSoC started, there was no stable backend for storage or authorization (none exist even now ). There were prototypical servers called picl-keyserver and picl-server for authorization and storage respectively. We initially started building the client on top of picl-keyserver. I used the picl-contacts-dev branch to push the code. After, completing the keyserver implementation, I started researching on possible ways to merge contacts on the client.
As we proceeded, the back-end changed several times. Currently, the project I proposed is around 70-80% complete. It gets an assertion from the Persona idp and interacts with the sync 1.1 server. It also has a contacts wrapper which reads contacts and will ultimately be used to merge as well. I currently, do not have a working merge algorithm in the code but it won’t take much time time to plug in the code as we had already done a bit of research back in the 3rd & 4th week. Also, the functionality of automatic sync is currently not integrated due to lack of time.
Most of the work got delayed/could not complete because of a lot of moving parts in the back-end. I will continue working on the project even after GSoC and will hopefully be able to create quality production level code in a couple of months with the help from Jed and the rest of the identity team.
It is GNU’s 30th anniversary month and to celebrate the occasion, Software Freedom Day was celebrated in New Delhi today. The event had an awesome line-up of sessions from cryptoparty to wikipedia, from open street maps to python workshop and an Open house! Although, I reached late due to rains but still got to talk to a lot of interesting people and attend a couple of talks.
The best part of any unconference is open house! There were great proposals which included IPython workshop, Open data talk, wiki session and a session of FirefoxOS by me.
I started my session with an introduction to Google Summer of Code, wherein I introduced the concept of Open Source and GSoC and persuaded students to start contributing to Open Source and Mozilla. Moving on, I discussed about Firefox OS, how awesome this new mobile platform is and how easy it is to develop apps for Firefox OS. I concluded with discussing the contribution process for Mozilla projects, especially Firefox OS and a hot new project called Profile in the Cloud to which I contribute as a part of my current Google Summer of Code project.
All in all it was a great event with a perfect blend of beginners and professionals caring about Free software.
The presentation I prepared for the talk can be found here.
The sync 1.1 client is taking shape quite well and should be functional after I overcome a trivial bug associated with cross-domain requests (I know I am missing something obvious here). Apart from the Sync client, I have started implementing the ContactsWrapper which reads contacts and will ultimately be used to send data to the Sync server and merge duplicate contacts.
I will continue working on ContactsWrapper throughout the week and hope to get a working prototype ready by the end of the coding period.
The Idp module which gets a Persona assertion via mockmyid is taking shape and should be ready in a day or two. Currently, we are using Persona instead of Firefox Account as the Fx Account IDP is still under development and is not usable at the moment. We can always plugin-in the Fx Account client later.
After completing the idp, I will start working on the Sync functionality with the Sync 1.1 server later this week.
Woah! It has been a long time since my last update. Here is what I’ve been upto:
- I have been discussing with Jed, the algorithm for merging contacts (which seems to be the hardest part). I have a small prototype which performs a 2-way json merge at the moment and we feel that it should be enough to get started.
- The PiCl auth system (picl-idp) is finally taking shape by the work of the awesome identity (with tiny pull requests from my side) and is ready for a Firefox OS client with picl-gherkin coming into picture.
- About three weeks back, I came to know that I need to hack on Gecko a bit to get stuff done for Contacts Sync. As I had no prior experience with Gecko, I was a bit nervous. As usual Jed came to my rescue and invested a lot of time to teach me on how to hack Gecko and got me working with a patch. After that conversation I have been playing with Gecko and working on simple bugs to get hold of the platform.
Not to forget, I took a one week break from work to attend Firefox OS App Days and Mozboot,IITB
All in all, I have invested much of my time playing with gecko and working on a simple contacts listener patch with Jed. I expect to get a usable contacts change listener into Gecko before the end of this week and expect to create a prototypical client within two weeks.
After a long discussion with Jed, Zach and others in the identity team, it seems like I won’t be able to deliver a full fledged client till September because of a lot of reasons (one of which is the absence of a backend right now), hence, I look forward to working regularly with the team even after the GSoC ends.
Signing off for now.