User:Mjnovice: Difference between revisions

From SMC Wiki
No edit summary
No edit summary
Line 27: Line 27:


  '''Short Description:'''
  '''Short Description:'''
I am wanting to make a web interface for a font aesthetics analyzer for Indic scripts, FontCompare. FontCompare is a plugin for fontforge, which provides assistance to the font developers in assessing the aesthetics of a font, based on the standard set of parameters and their values. It uses the python scripting extension of fontforge. However it currently it has very basic features implemented. I plan to add in advanced tests, and also building a web interface for the same.
FontCompare was a tool developed for aesthetically, analysing the fonts of Indic scripts primarily, and give them scores. However it is very basic and naive in its current phase taking into the standard fonts, extracting their standard properties and then comparing with them. I plan to add in advanced features such as print preview of the text, compatibility with the various glyph sets, such as the AGL etc. It also currently lacks support for other Indian languages, hence it is planned to include languages like Malayalam, Telugu, Tamil and Bengali with help from the people having the language knowledge.
In general it would be a real help, and it would eliminate the dearth of good quality open type fonts for Indic scripts, which was the main motive of behind FontCompare. By making a web interface this would indirectly propel the creation, of good quality stylish fonts for Indic scripts, which is limited to 2-3 per language as of now!


  '''Synopsis:'''
  '''Synopsis:'''
The web interface would be having two main parts, one is the User feedback area, and the other being the Font Developers testing area. The interface would thus serve dual purpose, of conveying the feedback of the font users to the font devs, and a testing platform for the font developers to test out their fonts based on the set of standard tests performed by the FontCompare application based on set of standards.
FontCompare currently provides very basic features of giving aesthetic analysis on fonts. It is aimed to add in more advanced tests, such as making the GPOS/GSUB testing more robust, adding multilingual support, for Bengali, Malayalam, Telugu and Tamil. Also we would have a rendering viewport where font devs can type and test the rendering results on the fly, upto 500 characters.
 


  '''Implementation details:'''
  '''Implementation details:'''
I would be using Django as the web framework, for making the web interface alongwith JS/jQuery/BootstrapCSS for styling purpose.
To add in the GPOS/GSUB testing we would making a list of those features as shown below, and add in to a sqlite database, then
Collecting of meta information would be done primarily from fontbook written and compiled by santhosh thottingal, and by interacting with the font developers, of the said languages. Compatibility with the various platforms of the developing font, can be done by collecting the relevant data for each platform, say the Adobe Glyph List.
User feedback region:
This would allow the user to test out new fonts of any language with his custom text. Since this would be difficult to do realtime, so we have to render the text in the said font on the server side and then push it on the client, this can be easily done with any fontrendering tool. Preferably harfbuzz, which is used by fontcompare, would be used to render the fonts, something similar to 1001fonts.com. There would be a feedback form, wherein he would enter the characters he did not find good/ugly and also the reason for the same. He could also give in sample text, sentences which do not render properly or incorrectly upon, using the font.


Font testing region:
For making the rendering viewport we can use a QPainter widget for output, KTextEditor for input, and hb-view for rendering the fonts.
Here the font developers would be uploading their font files, and the font file would be used to perform the tests, and the results of the tests, would be sent to the client, to be displayed in a nice manner. He/She could either set his own standards by uploading a sample standard file (for e.g lohit.ttf for devanagari script), or rely on the default standards, thus making the tool flexible.
 
FontCompare would be running tests based on Glyph consistency, Kerning, GPOS/GSUB completeness, Text beauty, Bitmap Similarity etc.
Apart from developing the web interface, the fontCompare also needs some improvements, and changes. It currently is a Qt app, with no command line features. Support would be needed to allow it to function on command line interface. Also the set of standards need to be updated
The Automate-rendering-tests for Harfbuzz rendering engine is command line based. So, it would be great to have the test results of the rendering engine, alongwith the aesthetic analyzer displayed in conjunction, to give an overall picture to the font developer about the quality of the fonts.
 
Adding advanced tests to FontCompare:
This would inadvertently mean adding a good set of standards to the current codebase. In other words identifying good fonts and adding it to the database of the fonts.




Line 57: Line 45:
21 April - 28 April :  I am going to re-discuss my implementation plans with the font developers community, incorporating in the suggestions recieved, into the FontCompare application (if any).
21 April - 28 April :  I am going to re-discuss my implementation plans with the font developers community, incorporating in the suggestions recieved, into the FontCompare application (if any).


29 April - May 11 : Getting familiar with the tests of HarfBuzz, and see if needs tweaking to be sent via a web interface.
29 April - May 11 : Researching the possibility of adding in more advanced tests, to improve the font aesthetics analysis, and font compatibility across varying platforms.


May 07 - May 14 : Planning out the UI, see if any changes needed. Writing basic code for the django models, and see if it works.
May 07 - May 14 : Collecting the meta-information about the glyphs and demarcating them categorically into vowels, consonants, marks etc. for languages, like Malayalam, Telugu etc., and also include GPOS/GSUB completeness for a font.


May 15 - May 18 : Discuss and get an early feedback on the UI
May 15 - May 18 : Discuss and get an early feedback on the UI, of the WYSIWIG font display unit.


------------:Coding Period Begins:-------------
------------:Coding Period Begins:-------------


May 19 - May 26 : Make changes to the UI and the django models, based on the feedback. Implement the basic developer account using the django OAuthAdmin.
May 19 - May 28 : Make changes to the UI and implement the basic, text editor using QPainter for output and KTextEditor for the input, wherein the user would type in the input, and the viewport would render the font.


May 27 - June 4 : Implementing the basic django models and their views for the User, and the user feedback region.
May 29 - June 4 : Adding in support to judge the overall GSUB/GPOS completeness, without relying on the fontforge plugin, making it more real, than vague.


June 5 - June 19 : Make the basic developer testing area. Integrate the rendering tests of harbuzz for display.
June 5 - June 19 : Converting the meta information about Devanagari, and Malyalam, into quantifiable measures and adding them to the set of standards. Adding support for CDAC fonts, with atleast 50+ fonts for each language.


June 20 - June 23 : Testing for consistency and efficiency of the models used. Check for consistency in coding style/conventions. Try and deploy to test the interface developed so far.
June 20 - June 23 : Testing for consistency and efficiency of the models used. Check for consistency in coding style/conventions. Try and deploy to test the interface developed so far.
Line 76: Line 64:


------------Mid term deliverables------------------
------------Mid term deliverables------------------
The web interface would be having the basic developer area ready with rendering tests for display.
FontCompare would have GPOS/GSUB completeness in a more complete way,and have support for Malayalam as well, with an attached rendering viewport.
 
June 28 - July 12 : Add, in support for making fontcompare a command line tool.


June 28 - July 12 : Add, in FontCompare tests to the developer area, by making fontcompare a command line tool.
July 13 - July 29 : Converting the meta information about Telugu, Tamil, and Bengali into quantifiable measures and adding them to the set of standards.


July 13 - July 20 : Updating the set of standards to be used by fontcompare, taking in good quantity/quality of fonts, for each script.
July 30 - August 1 : Getting reviews/feedbacks from font developer community.


July 21 - August 1 : Getting reviews/feedbacks from font developer community.
Deploying it and making any changes if required taking into account performance and consistency.
Deploying it and making any changes if required taking into account performance and consistency.


Line 90: Line 79:


------------------End term deliverables-------------------
------------------End term deliverables-------------------
A full fleged web interface for FontCompare and Harfbuzz rendering tests
FontCompare, with multilingual support and a rendering viewport with multilingual support.


Post GSoC ----------> Maintain the web interface, and be the system admin in general listening to day to day issues. Become a part of the telepathy community.
Post GSoC ----------> Maintain the fontforge plugin, and test out the tool with font developers, taking in their feedback.


  '''About Me:'''
  '''About Me:'''

Revision as of 11:50, 18 March 2014

Name: Mayank Jha
IRC Nicks: mjnovice,mapyth on freenode
Email: mayank25080562@gmail.com
Blog: http://mjnovice.wordpress.com/


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

I wish to work with SMC because it is an organization which helps create language tools, and helps in internationalization of content in Indian languages, which is one of my central aims.

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

I have developed FontCompare a font aesthetics analyzer, for Indic scripts. Apart from that I have been a regular open source contributor.

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

I participated in GSoC 2013, developing FontCompare with Ankur India.

Do you have other obligations between May and August ?

I have no commitments whatsoever between May and July. Once my college reopens I would still be able to contribute 40 hours a week.

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

I will certainly want to continue working with SMC after GSoC. I would like to be a part of Fonts Improvement and Text Rendering in general.

Why should we choose you over other applicants?

I am passionate about whatever I do. I strongly believe in the principles of FOSS, and love contributing to the Open Source world, since I was introduced to it. I am very keen about fonts since I believe it is the very window or medium by which we read or infact do anything. I also possess sound technical skills, required for the project.



Short Description:

FontCompare was a tool developed for aesthetically, analysing the fonts of Indic scripts primarily, and give them scores. However it is very basic and naive in its current phase taking into the standard fonts, extracting their standard properties and then comparing with them. I plan to add in advanced features such as print preview of the text, compatibility with the various glyph sets, such as the AGL etc. It also currently lacks support for other Indian languages, hence it is planned to include languages like Malayalam, Telugu, Tamil and Bengali with help from the people having the language knowledge.

Synopsis:

FontCompare currently provides very basic features of giving aesthetic analysis on fonts. It is aimed to add in more advanced tests, such as making the GPOS/GSUB testing more robust, adding multilingual support, for Bengali, Malayalam, Telugu and Tamil. Also we would have a rendering viewport where font devs can type and test the rendering results on the fly, upto 500 characters.

Implementation details:

To add in the GPOS/GSUB testing we would making a list of those features as shown below, and add in to a sqlite database, then Collecting of meta information would be done primarily from fontbook written and compiled by santhosh thottingal, and by interacting with the font developers, of the said languages. Compatibility with the various platforms of the developing font, can be done by collecting the relevant data for each platform, say the Adobe Glyph List.

For making the rendering viewport we can use a QPainter widget for output, KTextEditor for input, and hb-view for rendering the fonts.


Phases/milestones with dates:

:Community Bonding Period:----------

21 April - 28 April : I am going to re-discuss my implementation plans with the font developers community, incorporating in the suggestions recieved, into the FontCompare application (if any).

29 April - May 11 : Researching the possibility of adding in more advanced tests, to improve the font aesthetics analysis, and font compatibility across varying platforms.

May 07 - May 14 : Collecting the meta-information about the glyphs and demarcating them categorically into vowels, consonants, marks etc. for languages, like Malayalam, Telugu etc., and also include GPOS/GSUB completeness for a font.

May 15 - May 18 : Discuss and get an early feedback on the UI, of the WYSIWIG font display unit.


:Coding Period Begins:-------------

May 19 - May 28 : Make changes to the UI and implement the basic, text editor using QPainter for output and KTextEditor for the input, wherein the user would type in the input, and the viewport would render the font.

May 29 - June 4 : Adding in support to judge the overall GSUB/GPOS completeness, without relying on the fontforge plugin, making it more real, than vague.

June 5 - June 19 : Converting the meta information about Devanagari, and Malyalam, into quantifiable measures and adding them to the set of standards. Adding support for CDAC fonts, with atleast 50+ fonts for each language.

June 20 - June 23 : Testing for consistency and efficiency of the models used. Check for consistency in coding style/conventions. Try and deploy to test the interface developed so far.

June 24 - June 27 : Discussing with the mentors about the current development, and getting their reviews/comments.


Mid term deliverables------------------

FontCompare would have GPOS/GSUB completeness in a more complete way,and have support for Malayalam as well, with an attached rendering viewport.

June 28 - July 12 : Add, in support for making fontcompare a command line tool.

July 13 - July 29 : Converting the meta information about Telugu, Tamil, and Bengali into quantifiable measures and adding them to the set of standards.

July 30 - August 1 : Getting reviews/feedbacks from font developer community.

Deploying it and making any changes if required taking into account performance and consistency.

August 2 - August 5 : Documenting the code. Testing the code for any nitpicks if required.

August 5 - August 22 : Backup time for unforeseen delays.


End term deliverables-------------------

FontCompare, with multilingual support and a rendering viewport with multilingual support.

Post GSoC ----------> Maintain the fontforge plugin, and test out the tool with font developers, taking in their feedback.

About Me:

I am a FOSS enthusiast and a rabid open source contributor. I am currently a 3rd yr undergraduate pursuing Computer Science at NIT, Durgapur, India . I believe in the core principle of FOSS. Since I was introduced to the warm, loving and inspiring world of Open Source I am in love with it, as they offer great opportunity to both learn and teach. I was a student for the Google Summer of Code 2013, with Ankur India and developed a font-metric tool for Indic fonts which could differentiate fonts on the basis of their aesthetic quality and allow font developers to contribute more and better fonts. I have regularly contributed patches to applications like Konversation, Kate, Telepathy, Trojita, Rekonq. I also made a plugin for the Geany IDE, which would allow people to submit their code online at SPOJ through the editor. I have also explored the Telepathy source code, and submitted few patches too on the same. I am skilled in C/C++, Qt, Python, HTML, JAVA, CSS and PHP. I am very passionate and done to the task I take under, and I can devote 40 hours a week, to my work. After GSoC I would continue and maintain my code and be a part of the font developer community, helping and incorporating in new suggestions to my tool. Apart from remaining stuck to my laptop, I love to eat chocolates, listen to Michael Jackson, sleeping and eating.

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

I have communicated with Vasudev, and he was interested in mentoring this project, alongwith Santhosh. -- Mayank Jha