Posted it on the melange!
On Wed, Apr 24, 2013 at 1:53 PM, Mayank Jha <[email protected]>wrote: > Final GSOC proposal draft. > > *Name:* Mayank Jha > > > *Email Address :* *[email protected]* > > > *Project Title: * To make a testing application for assessing the > quality of Open Type fonts for Indic scripts. > > > *Synopsis: * > > 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. > > 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 . > > > > *How is your Project going to benefit language Computing ?: * > > This project is going to benefit language computing by increasing the > number of OpenType fonts available, in turn increasing its usage in > mainstream. > > > *Any previous experience with GSoC or similar program ?* > > None. This would be my first experience with GSoC. > > > *Why would you like to do a project with us?* > > 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. > > > *How many hours per week can you commit to the project?* > > I can devote 40 hours per week . > > > *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 have no other obligations during this summer and I would be able to > commit the said amount of hours to the project. > > > *Are you comfortable with virtual communication using English as the > primary language?* > > Yes. > > > > > *Implementation details of the project:* > > > > 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. > > 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: > > > 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. > > 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. > > > I think the best way to test fonts based on these properties in the > script would be from *classes*, one for standard properties and the other > for dynamic properties, with appropriate methods built inside to check for > the properties and their values. > > > Retrieving static properties would be easy, since most of them would be > numerical values like font weight, point size etc. > > 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. > > > 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. > > > These “features” for Devanagri script are well described for the > Uniscribe, W3C specifications! > > > 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. > > > > > > > > *Phases/milestones with dates:* > > > *May 27 - June 5*: I am going to interact with the developers about the > better choices (if any ). > > > *June 5 – June 10 :* Get to understand the codebase of Font Forge > scripting extension, make some scripts to get a feel as to how it works. > > > *June 10 – June 17: *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. > > > *June 18 – June 24 :* I would be making the first protoype of the > script, including the methods for, basic standard properties of the script > in my class . > > > *June 25 – July 7 :* I would be making the first protoype of the script, > including the methods for, basic standard properties of the script in my > class . > > > *July 8 – July 14 : * 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. > > > *July 15 – August 1 : *Research on the rule-sets to be used for better > analysis of the fonts. > > > *July 15 – August 5:*Addition of the methods based on the rule-sets for > testing the dynamic methods pertaining to the fonts. > > > *August 6 – August 15 *: * *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. > > > *August 15 – September 1 :* 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. > > > September 2 – September 22 : Backup time for unexpected and unforeseen > delays. > > > *September 23: *Pencils down > > > *September 23 – October 8 [after GSOC]: *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. > > > *About Me:* > > 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. > > 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. > > My contributions to the open source world include making a plugin or geany > to submit codes to SPOJ from the editor itself. > > > https://github.com/mjnovice/geany-plugins/tree/master/codesubmit > > > > Ive also made a game using the pygame library called fierytower. > > http://www.pygame.org/project-fierytower-2496-.html > > > Apart from that Ive sent patches to rekonq, konversation, kate, > plasma-desktop and trojita. > > 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. > > 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. > > > Coding, Youtubing, Eating, Sleeping, Movies, MJ music, - that pretty > much sums up my life. > > > Please point out any technical errors if any . > > > >
_______________________________________________ Project-ideas mailing list [email protected] http://lists.ankur.org.in/listinfo.cgi/project-ideas-ankur.org.in
