<div dir="ltr">


        
        
        
        <style type="text/css">P { margin-bottom: 0.21cm; }A:link {  }</style>


<p style="margin-bottom:0cm">Final GSOC proposal draft.<br></p><p style="margin-bottom:0cm"><i><u><b>Name:</b></u></i><span style="font-style:normal"><span style="text-decoration:none"><span style="font-weight:normal">
Mayank Jha</span></span></span></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><i><u><b>Email Address :</b></u></i><span style="font-style:normal"><span style="text-decoration:none"><span style="font-weight:normal">
</span></span></span><u><b><i><a href="mailto:mayank25080562@gmail.com">mayank25080562@gmail.com</a></i></b></u></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><i><u><b>Project Title: </b></u></i><span style="font-style:normal"><span style="text-decoration:none"><span style="font-weight:normal">
To make a testing application for assessing the quality of Open Type
fonts for Indic scripts.</span></span></span></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><i><u><b>Synopsis: </b></u></i>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
I am personally interested in doing this project because, I have been
using applications like MS Word, Photoshop, GIMP etc,  throughout and
require varied fonts with nice looks and appearance.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
However unfortunately whenever it came to Hindi my choices got
narrowed to 3 or 4 fonts only as compared to at least 40-50 choices
for the Roman script. Thus, making this tool would allow font
developers to contribute more good quality Open Type fonts for Indic
script. I am also willing to widen the scope so that the same could
be done for fonts of other languages scripts .  
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br><br>
</p>
<p style="margin-bottom:0cm"><i><u><b>How is your Project going to
benefit language Computing ?: </b></u></i>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
This project is going to benefit language computing by increasing the
number of OpenType fonts available, in turn increasing its usage in
mainstream.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><i><u><b>Any previous experience with
GSoC or similar program ?</b></u></i></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
None. This would be my first experience with GSoC.</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><i><u><b>Why would you like to do a
project with us?</b></u></i></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
Trying to increase the number of Hindi fonts in mainstream is what I
have wanted to do since long. I think this is an opportunity for me
to do this, and hence I am eager to do this project with you.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><i><u><b>How many hours per week can
you commit to the project?</b></u></i></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
I can devote 40 hours per week .</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><i><u><b>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</b></u></i></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
I have no other obligations during this summer and I would be able to
commit the said amount of hours to the project.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><i><u><b>Are you comfortable with
virtual communication using English as the primary language?</b></u></i></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
Yes.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><i><u><b>Implementation details of the
project:</b></u></i></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
I will be implementing the testing support for the Devanagri script.
There exists a current application called fontQA but that runs only
inside FontLabs, which is not freely available, therefore it is very
difficult to try, modify and test it.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
Therefore I plan to make a script to start with based on the Font
Forge framework. The idea of the script, would be extract the data
from the font in the following fashion:</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
We would be analysing the font's shaping engine algorithm, as to how
it actually parses the input from the user into glyphs by using the
GPOS & GSUB methods, to achieve this we can use a standard text
similar to “A quick brown fox jumps over the lazy dog.” which
uses the characteristic properties unique to the type of font.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
Standard properties of a font can't be altered by the developer,
while the dynamic properties are those which can be modified at
developer's will.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
I think the best way to test fonts based on these properties in the
script would be from <b>classes</b>, one for standard properties and
the other for dynamic properties, with appropriate methods built
inside to check for the properties and their values.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
Retrieving static properties would be easy, since most of them would
be numerical values like font weight, point size etc.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
To check for the dynamic properties, one needs to look at when and
how the actual shaping of the glyph takes place after the glyph
buffer for the text has been created.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
When a rendering engine handles a chunk of text (usually a syllable),
the processing is divided into a set of predefined “features”,
which are “applied” one after the other in a standardized way.
What differentiates one font from the other in the manner in which
these “features” are applied. We could implement this by making
methods inside the class to check for these. How one must go about
making these methods depends largely on the rendering engine used (I
would be using Pango for my case) and the parameters which exhibit
each instance of applying these features.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
These “features” for Devanagri script are well described for the
Uniscribe, W3C specifications! 
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
The points kept in mind would be the OpenType specifications for the
script, and will have scope for addition. These are again specified,
at the unicode standards.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm"><i><u><b>Phases/milestones with dates:</b></u></i></p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<i>May 27 - June 5</i>:  I am going to interact with the developers
about the better choices (if any ).</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<i>June 5 – June 10 :</i> Get to understand the codebase of Font
Forge scripting extension, make some scripts to get a feel as to how
it works.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<i>June 10 – June 17: </i>Read the documentation for GSUB and GPOS
tables, make scripts for modifying the fonts using them and have a
better understanding for how it works. 
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<i>June 18 – June 24 :</i> I would be making the first protoype of
the script, including the methods for, basic standard properties of
the script in my class .</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<i>June 25 – July 7 :</i> I would be making the first protoype of
the script, including the methods for, basic standard properties of
the script in my class .</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<i>July 8 – July 14 : </i> Testing the class with the basic methods
throroughly to avoid any crashes or bugs. See if the basic model of
the script works as intended.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<i>July 15 – August 1 : </i><span style="font-style:normal">Research
on the rule-sets to be used for better analysis of the fonts. </span>
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<i>July 15 – August 5:</i><span style="font-style:normal">Addition
of the methods based on the rule-sets for testing the dynamic methods
pertaining to the fonts. </span>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<i>August 6 – August 15 </i><span style="font-style:normal">: </span><i>
</i><span style="font-style:normal">Thorough testing of the script.
Check whether the script can differentiate between any two fonts of
the same script and resolve any discrepancy if any between the actual
and expected results.</span></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<i>August 15 – September 1 :</i><span style="font-style:normal">
Documenting of the entire code, to enable other developers extend
this by class inheritance for fonts of other scripts. Making the code
look neater and ordered to enhance readability of the code.</span></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
September 2 – September 22 : Backup time for unexpected and
unforeseen delays.</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<i>September 23: </i><span style="font-style:normal">Pencils down </span>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<i>September 23 – October 8 [after GSOC]: </i><span style="font-style:normal">The
script will be sent to the Font Forge community and reviewed.
Shortcomings if any would be taken care of. Efforts will be made for
people with knowledge of other Indic scripts to contribute to it and
include more testing rules and expand it. </span>
</p>
<p style="margin-bottom:0cm;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><i><u><b>About Me:</b></u></i></p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
I am Mayank Jha, a 2nd year undergraduate student pursuing Computer
Science and Engineering at National Institute of Technology,
Durgapur, India. I am a FOSS enthusiast, and contributor.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
I was introduced to the concept of Open Source an year ago by the
GLUG (GNU/Linux Users' Group) of our college and since then Ive tried
to actively associate with the same.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
My contributions to the open source world include making a plugin or
geany to submit codes to SPOJ from the editor itself.</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm"><a href="https://github.com/mjnovice/geany-plugins/tree/master/codesubmit">https://github.com/mjnovice/geany-plugins/tree/master/codesubmit</a><span style="font-style:normal"><span style="text-decoration:none"><span style="font-weight:normal">
</span></span></span>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
Ive also made a game using the pygame library called fierytower.</p>
<p style="margin-bottom:0cm"><a href="http://www.pygame.org/project-fierytower-2496-.html"><span style="font-style:normal"><span style="text-decoration:none"><span style="font-weight:normal">http://www.pygame.org/project-fierytower-2496-.html</span></span></span></a></p>

<p style="margin-bottom:0cm;font-style:normal;font-weight:normal;text-decoration:none">
<br>
</p>
<p style="margin-bottom:0cm">Apart from that Ive sent patches to
rekonq, konversation, kate, plasma-desktop and trojita.</p>
<p style="margin-bottom:0cm">I am skilled in C, C++, Qt, Python and
HTML. I have the experience of building font forge from source and
tried modifying a devanagri script font using it. 
</p>
<p style="margin-bottom:0cm">I am hardworking and passionate about
what I do,and  am confident of devoting 40 hrs a week to my work. To
avoid delays Ive kept some backup time. Even after the GSOC programme
I would be closely associated with my testing script and answer to
the queries of other developers  so that they too can contribute in
the languages they know well. 
</p>
<p style="margin-bottom:0cm"><br>
</p>
<p style="margin-bottom:0cm">Coding, Youtubing, Eating, Sleeping,
Movies, MJ music, - that pretty much sums up my life.</p><p style="margin-bottom:0cm"><br></p><p style="margin-bottom:0cm">Please point out any technical errors if any . <br></p><p style="margin-bottom:0cm"><br></p>
<p style="margin-bottom:0cm"><br>
</p>

</div>