> 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
