User:Allwin

From SMC Wiki

GOOGLE SUMMER OF CODE PROJECT PROPOSAL


E-Mail Address : allwin at nus dot edu dot sg

Blog URL : -

Freenode IRC Nickname : Glenstorm

University / Education : National University of Singapore, Computer Engineering Class of 2016


1. Why do you want to work with Swathanthra Malayalam Computing?

I'm a malayalee myself, who got the opportunity to pursue my studies in Singapore from 9th grade. I did not get many opportunities to meet other developers while in Kerala and then I found out about SILPA while browsing available projects at GSoC.

2. Do you have any past involvement with the Swathanthra Malayalam Computing or another open source project as a contributor?

I do not have any prior contact with SMC. I haven't done any significant contributions (unless you count bug reporting) to any open source project but I did start one of my own as a vacation project. It can be found at (https://github.com/allwinpb/Project-Obito). It was a simple chat application with an addition of a vector drawing editor which allowed users to send drawings to each other as regular text messages. Made using Node.JS + Django + Redis (app implemented using websockets).

3. Did you participate with the past GSoC programs, if so which years, which organizations?

No, this is my first time.

4. Do you have other obligations between May and August? Please note that we expect the Summer of Code to be a full time, 40 hour a week commitment

Yes I do. I'm currently interning at a web development startup here in Singapore and I'm under contract to continue until end of July. However I can work in the evenings and weekends and I'll try my best to adhere to the given timeline.

5. Will you continue contributing/supporting the Swathanthra Malayalam Computing after the GSoC 2014 program, if yes, which area(s), you are interested in?

I don't know. I don't understand any of the algorithms or terminologies used in Silpa after a brief look through the repo, so it is hard to say if I'll be able to help. I do hope to be more knowledgeable about them towards the completion of GSoC but it is hard to comment at this point.

6. Why should we choose you over other applicants?

I already have some experience programming in Python and Node.JS so I have a much shallower learning curve compared to those who have to learn either from scratch. I'm also familiar with git and have worked on team projects before.


PROPOSAL

1. An overview of your proposal

To convert various modules of Project-SILPA from python to Node.JS modules (as given in the Project Ideas page). The modules in question can be found here (https://github.com/Project-SILPA).

I don't think there is time to port the relatively large modules

2. The need you believe it fulfills

It was given in the project ideas page and it seemed like something I could help with. Node.JS is in the process of being used in a major way across the industry, even getting support from services like Heroku and Windows Azure. It is inherently asynchronous and it is very hard to write synchronous code with it. This is good because asynchronous execution does not halt the entire application for time-intensive operations like disk/network access which allows a lot of performance advantages. Though SILPA modules does not heavily rely on disk-operations I still believe it can be made more performant if done in Node.JS. Plus it's done in javascript so ultimately it may help bring you more contributors.

3. Any relevant experience you have

As mentioned before, I am familiar with Python (2.7) and Node.JS hence I think I'll be a good choice for this work.

4. How you intend to implement your proposal

After sorting out the order in which I will port over the python code to node-modules, I will go through the list, each time

  • Forking the repo
  • Understanding what it does
  • Create a node-module equivalent of the repo
  • Copy over unit tests and make sure it all passes
  • Update on the mailing list

If by Week 10, I haven't managed to port all possible projects, I will stop porting more projects and pull any changes from those repos that are already forked and then incorporate those changes into the appropriate node-module.

5. A rough timeline for your progress with phases

Tentative

  • Week 1 : silpa_common + normalizer
  • Week 1 : transliteration + payyans
  • Week 2 : payyans (cntd..) + text-similarity
  • Week 3 : spellchecker
  • Week 4 : chardetails + indicngram
  • Week 5 : ucasort + shingling
  • Week 6 : syllabalizer
  • Week 7 : hyphenation + indicstemmer
  • Week 8 : indicstemmer (cntd..) + soundex
  • Week 9 : soundex (cntd..) + indicfortune (if time permits)
  • Week 10: { updating any changes,
  • Week 11: refactoring, any pending bugfixes etc... }

NOTE: I have left out some modules either because they are incomplete or because of my inability to include them in the timeline. I will attempt to do them if I finish the rest ahead of schedule.

6. Any other details you feel we should consider

Please take note of my internship dilemma I mentioned above.

7. Tell us about something you have created.

As mentioned above >> (https://github.com/allwinpb/Project-Obito). I also am part-creator of the group playlist app running at (http://thunder.dj). It is also running off Node.JS, and uses redis as it's storage to allow scaling.

8. Have you communicated with a potential mentor? If so, who?

Not yet, but soon.

9. SMC Wiki link of your proposal

http://wiki.smc.org.in/index.php?title=User:Allwin