User:Psbots/gsoc2014

From SMC Wiki

Personal Information

  • Current Education : 3rd year, B.Tech [Mechanical Engineering] from School of Engineering, CUSAT, Kochi


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

I have been involved with SMC recently for the "Workshop on Open Mobile Platforms" at ICFOSS, where I had the opportunity to take a session on Firefox OS. I'm also part of the Diaspora Yatra Campaign planned by the SMC members.

I'm also a contributor to various Mozilla projects, especially Gaia, which is the UI of the Firefox OS platform.


  • Why do you want to work with the Swathanthra Malayalam Computing?

I firmly believe that language should not be a barrier for interaction with technology. I am sure that with SMC, I can work for the benefit of the Indian Society at large while learning more about Indian Language Computing and various open source technologies.


  • Do you have other obligations between May and August ?

I have my college holidays during May and June, during which I'll be fully devoted for the project. Even after the college reopens in August, I'm sure I'll be able to devote more than 40 hours a week for the project at hand.


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

I'm proud that SMC is promoting Indian Language Computing and is striving to remove the language barrier to technology. I'll definitely continue contributing to the community both by development as well as events and other activities of the Organisation. Infact, during the course of preparing this proposal, I've identified 2 projects related to language computing which are out of scope of GSoC, which I'd love to work on.


  • Why should we choose you over other applicants?

I am a strong supporter of open technologies - both software and hardware. I believe that my project proposal has a good value for the community. I have good command over Javascript and problem solving in general, which make me an ideal choice for the project at hand.


Implementing support for various regional language IMEs in Firefox OS.  : Project Abstract

The advent of 'smartphones' have changed the way people interact with technology. But language is still a barrier for many people to engage with the Web. Firefox OS is a new platform, built with the technology of the "Open Web". During GSoC, my project would be to implement various local Language input support to the core Firefox OS codebase. Different mobile specific IME implementations will be researched on and implemented. The jquery.ime library, which has a wide collection of input methods in 60+ languages will be used as a reference point. The deliverable will include complete support for Indic languages (with feedback from the local Mozilla community) and experimental extension to more than 60+ regional languages of the world. An automated syncing mechanism will also be implemented to leverage the active community development and extension of the jquery.ime and keep the Firefox OS IME implementation updated.


The Problem

Language is a very big barrier for users to engage with technology. There is currently not much support for many regional Languages on Firefox OS. Most of the currently supported languages are limited to latin origin. Owing to its philosophy of targeting lower end, low cost hardware, in order for it to be successful, Firefox OS must have support for the various local languages of the world. This is the basic problem that the project intends to solve. Apart from this, there is a need for exploration of different types of Touch-based input methods. This project also acts as a starting point for optimisation of Mobile-specific input methods and their applicability.


The Solution

The User Interface of Firefox OS, called Gaia is written entirely in HTML5/CSS and Javascript. This enables the use of jquery.ime library. But since Firefox OS runs Gecko, there is no use of the extra code that jquery provides for browser support. Also the library is designed for input based on latin keyboard layout for computers. Hence the project would involve using jquery.ime library only as a reference to create a new mobile optimized Input Method engine in Javascript. A sysncing mechanism to update changes in input rules of jquery.ime library will also be developed.


Implementation Details

Deliverable 1 : Regional Language IMEs for Firefox OS

  • The default Gaia Keyboard in Firefox OS can be configured and modified to include different Language IMEs.
  • For phonetic/transliteration based input methods, the layout.js specified in Gaia Keyboard needs to be updated with the different language IM engines and dictionaries. Dictionary suggestions can be displayed as an overlay just above the keyboard. Such type of IME have been implemented in Chinese and Japanese languages for Firefox OS.
  • For InScript Keyboard, a new layout needs to be designed and implemented to include the various characters of the languages. This is supported by the new KeyboardIME API of Firefox OS. More details on Gaia Keyboard can be found on MDN.
  • The final Indic IMEs will be pushed to the core Gaia repositories, maintained by Mozilla.
  • The remaining lanugage IMEs will be released for feedback from the various communities and further development/improvement.

Deliverable 2 : Syncing mechanism An automatic/semi-automatic syncing mechanism to maintain the frequent community updates of jquery.ime input method collection.


Miscellaneous

  • Apart from the above mentioned deliverables, the remaining languages in jquery.ime input methods will be supported for Firefox OS and released for feedback from the local communities and subsequently developed.
  • Input suggestions and other input methods are also an area to be tapped into and projects like Sipla and Varnam can be suitably adapted for Touch-input and further refinement of the project can be done post GSoC.


Previous Experience

I am an open web enthusiast and part of the Mozilla Community. I have contributed to Mozilla projects, especially the Gaia, which is the UI of Firefox OS. I also help in fixing bugs for the platform. I've also done a feasibility study of the project by implementing a crude IME for Hindi which can be read on my blog.


Tentative Timeline

During Community Bonding Period  :

  • April 21 - May 11 : Study the implementation and architechture of jquery.ime library.
  • May 11 - May 19 : Improve upon the Proof of Concept made before application proposal and learn about IME's in other platforms.

Coding Period Begins

  • May 19 - May 28  : Commence development of the IME engine using jquery.ime as a reference. Research on different implementations of Keyboard layouts.
  • May 29 - June 4  : Build on the developed engine and optimize it for a single language initially. Extend the engine to support support layout rearrangement and key label rendering.
  • June 5 - June 19  : Continue implementation of the various languages, all the while taking feedback from the various communities.
  • June 20 - June 23 : Apply the input method engine to the default Firefox OS keyboard by using the layout.js keyboard structure as specified in Gaia.
  • June 24 - June 27 : Optimization of the engine, first round of bugfixing.

Mid-Term Evaluation

  • June 28 - July 12  : Implement testing methods for the engine, adapting the large test cases in jquery.ime ; Research on inscript and other keyboard layout implementations in Gaia.
  • July 13 - July 29  : Thorough testing of the IME. Begin documentation phase. Tweaking the code to improve its quality.
  • July 30 - August 1  : Get review from SMC for keyborad layouts implemented and improve on it. Finish and extend complete support to all Indic languages.
  • August 2 - August 5  : Push the code to core Gaia codebase maintained by Mozilla. Documentation, fine-tuning and bug-fixing. Release IMEs of different languages for review by respective communities
  • August 5 - August 19 : General bugfixing and Buffer time for unforeseen delays.

End-Term Evaluation


I have discussed the project with Anivar, Hrishikesh and Santhosh. Santhosh originally designed the jquery.ime library, and has helped me review my Concept.