User:Jdev005/GSoC internationalize silpa: Difference between revisions

From SMC Wiki
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 12: Line 12:
=== Why do you want to work with the Swathanthra Malayalam Computing? ===  
=== 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 a 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.   
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.   




Line 19: Line 19:
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.
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
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]<br />
Bug 733826 [1]<br />
Line 28: Line 28:
I also help develop a new package mozfile [6]
I also help develop a new package mozfile [6]
   
   
My recent interests have been with the web development especially in tools and frameworks 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.
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
Im also a Mozilla student rep for my college and a part of Mozilla Technical task force India
Line 56: Line 56:
=== Will you continue contributing/ supporting the Swathanthra Malayalam Computing after the GSoC 2013 program, if yes, which area(s), you are interested in? ===
=== 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 SCM projects not only SILPA.
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? ===
=== Why should we choose you over other applicants? ===


I really love experimenting and exploring the 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.
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 ==
== Proposal Description ==
=== An overview of your proposal ===


=== 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.


I am proposing the project titled "Internationalize SILPA project with Wikimedia jquery projects".
As most of the sites  provide default input to be only in English, but there are a lot of times (especially in SILPA projects) that we may need to input text in a language other than English. It would also be really helpful to provide text content present in a site in as many languages as possible, so that its well understood by people unfamiliar with English. This Gsoc project deal with enabling a multilingual input text and displaying the site content text in many languages for the SILPA project.


=== The need you believe it fulfills ===
=== The need you believe it fulfils ===


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




=== Any relevant experience you have ===
=== Any relevant experience you have ===


I have worked on many projects in my college, and below I have listed some of the major projects and achievements during my academic curriculum.
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 won first place for web development in the 27th CSI (Computer Society of India) convention.
*I also won the best paper award during the 27th CSI convention for my paper on “An automated system as an alternative to radio diagnosis”.
*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 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.
*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.




Line 94: Line 95:
At a very high level here is what needs to be done
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, In parallel we have to get the modules and their template up to date.  
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 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.  
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.
The next part of the project involves in providing users option to input the text in their desired language, this can be done using jquery.ime[3], we can also save the user preferences using localStorage and reutilizes them the next time the user visits
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.


i have also made a rough implementation of a web page that would use the following techniques http://jdev005.github.io/svmdemo/examples/
@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<br />
[1]https://github.com/wikimedia/jquery.i18n<br />
[2]https://github.com/wikimedia/jquery.webfonts<br />
[2]https://github.com/wikimedia/jquery.webfonts<br />
[3]https://github.com/wikimedia/jquery.ime<br />


== A rough timeline for your progress with phases ==
== A rough timeline for your progress with phases ==
Line 121: Line 152:
|-
|-
| June 17 – July 3 || Official Coding Period Starts
| June 17 – July 3 || Official Coding Period Starts
  || create templates and separate them in appropriate modules, the translations would be ready by now, so we will provide options to switch between the different languages in the SILPA pages, we shall implement this using jquery.i18n and also provide all the fonts as webfonts.
  || 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  
| July 3 - July 31 ||  Preparing for mid term evaluation  
  || 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.
  || 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
| Aug 1 - Aug  15 || After mid term evaluation
  || provide an input to enter text different languages using jquery.ime, remember user's preferences using localStorage.
  || 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 || 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 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.
| August 30 - September 10 || Final Stage  || Documentation of the project.
Line 144: Line 176:


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




Line 150: Line 185:
*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.
*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
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.
*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
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.
*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
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.
*Made a light weight chat app as part of project in 4th sem.

Latest revision as of 19:10, 3 May 2013


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.