> On 08 Apr 2016, at 17:52, Mohit Kumra <[email protected]> wrote:
> 
> Reference: to the mail on 25th of March 2016
> 
> This is to bring to your notice that I have applied for GSOC 2016 with 
> Project Title-Output-Device use a Compilation Firewall for Libreoffice for  
> ORG:Libreoffice, under your Mentorship.
> 
> Kindly provide with the technologies to be used and a brief description of 
> the work to be done.So that I could start working on the Project right away 
> and showcase you the basic layout and some constructive work for the 
> Project.With this you will be able to decide whether you would consider 
> opting me for the Project.

Please look at the GSoC timeline, we are in a different phase now.

rgds
jan i
> 
> We can have a Skype session if you would feel suitable for an interactive 
> session.
> 
> Link to Application: 
> https://docs.google.com/document/d/1H3BfMBfTh8yHVpaGKfdfXtm_ZD6Mnd7impXOiRfpka4/edit?usp=sharing
> 
>> On Fri, Mar 25, 2016 at 1:31 PM, Mohit Kumra (via Google Docs) 
>> <[email protected]> wrote:
>> 
>> Mohit Kumra has invited you to comment on the following document:
>> 
>> GSOC_2016_proposal_Compilation_Firewall
>>      I am extremely interested in working for the OutputDevice class 
>> Compilation Firewall project I have C,C++,Java,scripting,Python,and have 
>> working proficiency of STL.
>> 
>> It is requested to review the Proposal for Output-Device use a Compilation 
>> Firewall for Libreoffice.
>> 
>> Thank you for the consideration.A quick reply is appreciated!!
>> Open in Docs
>> Snapshot of the item below:
>> Output-Device use a Compilation Firewall for Libreoffice
>> MOHIT KUMRA
>> MARCH 23rd 2016
>> MENTOR: Chris Sherlock
>> Student Name: MOHIT KUMRA
>> DATE: MARCH 23rd  2016
>> TITLE: Compilation firewall for Libreoffice and Modularizing the 
>> Output-Device class.
>> SYNOPSIS:
>> Data abstraction refers to, providing only essential information to the 
>> outside world and hiding their background details.With the introduction of 
>> this concept programs and developers now could easily write the code and had 
>> lesser chances of depiction of all the features to all thus minimizing the 
>> threat of code corruption.
>> I would recommend to make the compilation firewall for the Output-Device 
>> class and to split the functionality of the Output-Device class. This would 
>> minimize the massive load due to functionality being encapsulated into a 
>> dense form in the Output-Device class, thereby enabling programs to run 
>> faster with inclusion of the Compilation Firewall.
>> The Project:
>> In any programming language writing code does not imply that it is in 
>> alignment with the guidelines but one needs to ensure that the code is 
>> protected and secure against corruption/malwares thereby having zero or 
>> minimal code smells.
>> The concept of Data abstraction provides us with the feature of hiding the 
>> details and depicting only the essential details to the end user. For this 
>> we use the PIMPL Idiom (Pointer to IMPLementation) is a technique for 
>> implementation hiding in which a public class wraps a structure or class 
>> that cannot be seen outside the library the public class is part of. This 
>> hides internal implementation details and data from the user of the library.
>> These are the Benefits of using PIMPL Idiom:
>> Benefits:
>> Changing private member variables of a class does not require recompiling 
>> classes that depend on it, thus make times are faster, and the well known 
>> Fragile Binary Interface Problem() is reduced.
>> The header file does not need to #include classes that are used 'by value' 
>> in private member variables, thus compile times are faster.
>> This is sort of like the way Small Talk (a well known unusual syntax based 
>> language) automatically handles classes... more pure encapsulation.
>> The Implementation of making the Compilation Firewall file with the help of 
>> the pmlpl idom format is as follows:
>> How to do it:
>> Put all the private member variables into a struct.
>> Put the struct definition in the .cpp file.
>> In the header file, put only the Forward Declaration of the struct.
>> In the class definition, declare a (smart) pointer to the struct as the only 
>> private member variable.
>> The constructors for the class need to create the struct.
>> The destructor of the class needs to destroy the struct (possibly implicitly 
>> due to use of a smart pointer).
>> The assignment operator and Copy Constructor need to copy the struct 
>> appropriately or else be disabled.
>> To study for Compilation file links are:
>> http://c2.com/cgi/wiki?PimplIdiom
>> http://stackoverflow.com/questions/60570/why-should-the-pimpl-idiom-be-used
>> http://herbsutter.com/gotw/_100/
>> Example:
>> #include <iostream>
>> using namespace std;
>> class Adder1{
>>    public:
>>       // constructor
>>       Adder1(int i = 0)
>>       {
>>         total1 = i;
>>       }
>>       // interface to outside world
>>       void addNum1(int number)
>>       {
>>           total1 += number;
>>       }
>>       // interface to outside world
>>       int getTotal1()
>>       {
>>           return total1;
>>       };
>>    private:
>>       // hidden data from outside world
>>       int total1;
>> };
>> int main( )
>> {
>>    Adder1 a;
>>    
>>    a.addNum1(10);
>>    a.addNum1(20);
>>    a.addNum1(30);
>>    cout << "Total " << a.getTotal1() <<endl;
>>  system("pause");
>>    return 0;
>> }
>> The Output is : Total 60
>> Above class adds numbers together, and returns the sum. The public members 
>> addNum1 and getTotal1 are the interfaces to the outside world and a user 
>> needs to know them to use the class. The private member total1 is something 
>> that the user doesn't need to know about, but is needed for the class to 
>> operate properly.
>> Road-Map: 
>> For Project Development, following steps would be followed:
>> 1. Review: On acceptance of the proposal for the project I would review the 
>> code provided by the Mentors and try to analyse and familiarize with the 
>> Data members and Data functions being used in the code. (May 23rd - May 30th 
>> 2016)
>> 2. Refactor: After reviewing the code, I will use my skillset for 
>> refactoring the code. Thus making the code more effective and efficient in 
>> terms of complexity( Time + Space ) and would modularize the code as much as 
>> possible. This would take less than a week to complete.(June 2016)
>> 3. Step 2 would help in achieving the goal of reducing the massive 
>> Output-Device class code into modules and subclasses.
>> 4. Develop: Parallel to modularizing the Output-Device class code I would 
>> deduce and implement a methodology for making the compilation firewall for 
>> the Output-Device class of the LibreOffice.(June 20th - July 20th 2016 ) 
>> Design Strategy: 
>> Abstraction separates code into interface and implementation. So while 
>> designing the component, I will keep interface independent of the 
>> implementation so that if I change underlying implementation the interface 
>> would remain intact.
>> Steps to be followed would include:
>> a. Put all the private member variables into a struct.
>> b. Put the struct definition in the .cpp file.
>> c. In the header file, put only the Forward Declaration of the struct.
>> d. In the class definition, declare a pointer to the struct as the only 
>> private member variable.
>> e. The constructors for the class need to create the struct.
>> f. The destructor of the class needs to destroy the struct (possibly 
>> implicitly due to use of a smart pointer).
>> g. The assignment operator and Copy Constructor need to copy the struct 
>> appropriately or else be disabled.
>> 5. Reconcile:On achieving the goal of the project would Reconcile the work 
>> and provide the Mentor with all possible updates and features of the 
>> development with the help of DFD (Data flow Diagrams) and all the 
>> documentation required by the Mentor.(Last week of July- August 2016)
>> Conclusion:
>> When the Project would achieve the goals it would be suitable for 
>> implementation to the system. The Output-Device class would then be 
>> modularized and its compilation firewall would also be implemented 
>> effectively.
>> Proficiency:
>> I am proficient in C,C++,JAVA and have worked on developmental projects 
>> undertaking these languages.
>> Resume link: 
>> https://drive.google.com/file/d/0B7RrMabDB-4FU3VURDBMUlprU3M/view?usp=sharing
>> University Information:
>> University Name: JAYPEE INSTITUTE OF INFORMATION TECHNOLOGY
>> Major:COMPUTER SCIENCE ENGINEERING
>> Current Year and Expected Graduation date: 3rd YEAR & 31-06-2017
>> Degree (e.g. BSc, PhD):B.Tech
>> This is a courtesy copy of an email for your record only. It's not the same 
>> email your collaborators received. Click here to learn more.     
> 
> _______________________________________________
> LibreOffice mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/libreoffice
_______________________________________________
LibreOffice mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to