User:Jdev005/GSoC internationalize silpa

From SMC Wiki


Personal Information

Email Address                    ː jdev005@gmail.com
Phone No                         : 7795179931
Blog URL                         ː jdev005.wordpress.com/
Freenode IRC Nick                ː jdev005
University and current education ː 3rd year B.E in Information Science at R.V. College of Engineering,Bangalore


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

Swathanthra Malayalam Computing is at the forefront for Indic languages and language computing, i have been an open source contributor for two years now, but i never got a chance to contribute to a project which started in India and a project which i could relate to, Malayalam is also my mother tongue and I would love to help the community with my skills.


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

I am an open source enthusiast and I am an activist at Free Software Movement Karnataka (FSMK) since the past two years. I have been to various universities where I have conducted many workshops and also given various talks on various open source tools and open source developments as part of the FSMK team.

Sadly, i haven't got a chance to contribute to Swathanthra Malayalam Computing before but i have been a contributor to the Mozilla organization, i started out by fixing the following bugs

Bug 733826 [1]
Bug 781565 [2]
Bug 755374 [3]
Bug 762143 [4]
Bug 722804 [5]
I also help develop a new package mozfile [6]

My recent interests have been with the web development especially in technologies that use the web as a platform, I took part in the Firefox OS Hack Day held in ThoughtWorks Bangalore [7] and made Pitstop [8] ,which was one of the winning apps of the hack day.

Im also a Mozilla student rep for my college and a part of Mozilla Technical task force India


[1] https://bugzilla.mozilla.org/show_bug.cgi?id=733826
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=781565
[3] https://bugzilla.mozilla.org/show_bug.cgi?id=755374
[4] https://bugzilla.mozilla.org/show_bug.cgi?id=762143
[5] https://bugzilla.mozilla.org/show_bug.cgi?id=722804
[6] https://bugzilla.mozilla.org/show_bug.cgi?id=774916
[7] http://mozillaindia.org/node/708
[8] https://github.com/jdev005/pitstop


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

No, I've not participated in GSoC programs before.


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

I will be able to work for 40 hours a week or even more if the situation demands it. i do have my final exams during June, but they end before the official coding period starts. I am confident i can finish the work in time.


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

I will definitely continue contributing along with maintaining my project after GSoC. I have planned to extend my Gsoc project to others SMC projects not only SILPA.

Why should we choose you over other applicants?

I really love experimenting and exploring new technologies which uses the web as a platform. It has always been my dream to contribute a project that can reach out and help the people of my country, i believe the SMC projects have this power. I believe that the SILPA project is very innovative and creative and its true applications are possibilities are limitless. I too share a passion in building the web and exploring it creativity.


Proposal Description

An overview of your proposal

I am proposing the project titled "Internationalize SILPA project with Wikimedia jquery projects , Improve the webfonts module in Silpa using jquery.webfonts and provide more Indic and complex fonts as part of it". As most of the sites provide default input to be only in English, there are a lot of times (especially in SILPA projects) that we may need to input text in a language other than English. On the same line it would also be really helpful to provide the content present on a site in as many different languages as possible, so that its well understood by people who are unfamiliar with English. This Gsoc project deals with enabling a user to choose a language for his/her input text and providing the user a choice of switching between different languages to view the contents of the page for SILPA projects, this functionality must be available even to people who do not have the language fonts installed on their computer. Further the project also deals with adding more webfonts to the SILPA, which at present only provides 36 webfonts. Rewriting webfonts module to use the features of jquery.webfonts, also to provide a clean API for other websites to use our webfonts and provide font preview and download options.


The need you believe it fulfils

  • The content of the site are displayed in a user preferred language
  • Fonts on the site are available even if the user doesn't have the fonts installed on his/her computer.
  • Adding more webfonts to the SILPA, which at present only provides 36 webfonts
  • Provide a clean api so that other websites can use our webfonts in their websites
  • Provide font preview and download options.
  • It will provide a very good example for localization, that can be extend further to other projects as well.


Any relevant experience you have

I have worked on many projects in my college, and below I have listed some of the major projects I have worked on during my academic curriculum. I have used technologies like Python and JavaScript for these projects, which i would also be using for my Gsoc project.


  • I created a web app in Django that helps college faculty manage and query student result as part of my DBMS project in 5th sem. The web app has a smart search bar that understands English like statements then does a speech to text conversion and generates dynamic results as per the query.
  • I have also been working on a Named Entity Recognition Research Project with General Electric.
  • Made a Sticky notes web app, it uses html5 local-storage for saving the user's notes. The notes exists even if the browser is closed. The App also displays power of CSS3 animations.


How you intend to implement your proposal

At a very high level here is what needs to be done

We have to first get the translation for the page contents of the SILPA project, this can take a while as we will need some help from quite a few community members. Once the the translations are ready we will provide a method to switch between language fonts on the page without resending requests to the server ,this can be achieved using the jquery.i18n[1] library. Sometimes the users may not have the required font on his/her computer, hence we will also need to provide web fonts, we can use jquery.webfonts[2] for the same. Currently SILPA provides 36 webfonts, we'll add more fonts to this collection, create a repo as per jquery.webfonts specification,and then rewrite webfonts module to use the features of jquery.webfonts.


At its most basic, we declare a new custom remote font to be used like so:

@font-face { font-family:'Tagesschrift'; src: url('tagesschrift.ttf'); }


Then put it to use:

h1, h2, h3 { font-family:'Tagesschrift','Georgia', serif;}


The initial limitation of the above code was that it did not serve an EOT to IE 6-8. The proposed a way of solving this; a robust version follows.

@font-face {

font-family:'Tagesschrift';
src: url('tagesschrift.eot');/* IE 5-8 */
url('tagesschrift.woff') format('woff'),/* FF 3.6, Chrome 5, IE9 */
url('tagesschrift.ttf') format('truetype'),/* Opera, Safari */
url('tagesschrift.svg#font') format('svg');/* iOS */

}


We can also save the user preferences like the language they prefer using localStorage and utilize them the next time the user visits. Next we shall provide a clean API so that other websites can use our webfonts in their websites, and we can also provide font preview and download options.


I have also made a rough implementation of a web page that uses the techniques I mentioned above, and it also provides an option of downloading the Malayalam font used in the page http://jdev005.github.io/smc/


[1]https://github.com/wikimedia/jquery.i18n
[2]https://github.com/wikimedia/jquery.webfonts

A rough timeline for your progress with phases

Duration Description Mile Stone
Before May 27 Before Announcement of Candidates Get to know the community better, Learn more about the jquery.i18n, web-fonts, jquery.ime, and flask, also plan the implementation details with the community.
May 28 – June 16 Before Official Coding Period Starts Discuss with the community about the main languages that we will be handling, try to gather translation in parallel so that they can be implement by the coding period.
June 17 – July 3 Official Coding Period Starts The translations would be ready by now, so during this period we will provide switching options between the different languages in the SILPA pages, we shall implement this using jquery.i18n. We will aslo provide all the fonts that are used in the site as webfonts.


July 3 - July 31 Preparing for mid term evaluation Currently SILPA provides 36 webfonts, we'll add more fonts to this collection, create a repo as per jquery.webfonts specification,and then rewrite webfonts module to use the features of jquery.webfonts. Run test and make sure all the text conversions are working fine, also make sure all the translations are proper, get the code reviewed, write documentation.


Aug 1 - Aug 15 After mid term evaluation Remember user's preferences like the language preferred on the site using localStorage. We will also provide a clean API so that other websites can use our webfonts in their websites.
August 16 - August 29 Before Final stage Provide font preview and download options for all the fonts that have been used. Most of the time will be used for rigorous testing and to make sure everything is running fine, getting the code reviewed, improving its performance.
August 30 - September 10 Final Stage Documentation of the project.


September 10 onwards Post gsoc period Maintain the project code and also extend this to other projects as well.

A buffer of one week has been kept for unpredictable delay.



Tell us something about you have created

  • I made a Firefox OS App that made it to the top 8 winning Apps in the Firefox OS Hack Day. I had made a working prototype App which assists users in finding nearby locations to park their car and also provides parking details.

Technologies used : HTML5, JavaScript, jQuery Mobile, Google maps APIs, CSS

https://github.com/jdev005/pitstop

  • Created a web app that helps college faculty manage and query student result as part of my DBMS project in 5th sem.The web app has a smart search bar that understands English like statements and generates dynamic results as per the query.

Technologies used : Python , Django , HTML5 ,CSS3 ,JavaScript , xlrd libraries(for data extraction), Google voice recognition APIs

https://github.com/jdev005/query


  • Made a Google places web app and also wrote a Blog on how to make it. The App has a search bar where the user can input his search query. The user is then displayed with all the places that match his query with a marker for each place on the map. On clicking the place, a card is popped with all the details about the places like its Name, Phone number, Address, Website, etc.

Technologies used : HTML5 , JavaScript , CSS , Google maps API , Google places API

https://github.com/jdev005/placesApp

http://jdev005.wordpress.com/2013/02/20/making-google-places-web-app/


  • Made a WebRTC demo app showing the power of WebRTC and canvas filter, the apps take a video recording in real time from the users webcam and displays it on the webpage along with a black and white filter of the same video.

Technologies used : HTML5 , JavaScript , WebRTC

https://github.com/jdev005/camfilter


  • Made a Sticky notes web app, it uses html5 local-storage for saving the user's notes. The notes exists even if the browser is closed. The App also displays power of CSS3 animations.

Technologies used : HTML5 , JavaScript, CSS3

https://github.com/jdev005/stickynotes


  • Made a python script to organize music files

https://github.com/jdev005/organize


  • Made a light weight chat app as part of project in 4th sem.

Technologies used : C , Unix system commands , socket programming

  • Made a ambient light sensor using Arduino as part of Microprocessor project in 5th sem.

Technologies used : Arduino


Have you communicated with a potential mentor? If so who?

Im in contact with Hrishikesh K B. regarding the project.