﻿<html>
<head>
<title>Summer of Code: Majid Ali  Khan</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="spaced13">
<h2>Summer of Code: Majid Ali Khan</h2>
<p><a href="../lspintro.html">-Louis Suárez-Potts</a></p>
<p >2005-09</p>
<br />




<p></p>

<p>Google's Summer of Code program (SoC) was "designed to introduce students to the world of open source software development", and it worked.  Successful participants were given a cash reward, but  from the accounts provided by those participants, the cash was the least of the reward.  The knowledge acquired and community participated in came in first.  OpenOffice.org was and is not only a fascinating if challenging codebase to work with but the community made the effort fun, stimulating, and in the words of one respondent, "the best summer of my life."</p>

<p>Over the next week and half, I'll be publishing a short series of accounts by the participants. To read other accounts, visit the <a href="articles.html" target="_blank">Articles</a> page.  Today, Majid Ali Khan discusses the work done during his Google Summer of Code.  As in the previous interview, I asked a set of questions via email over a period of several weeks, the first asking about the Google SoC project, the remainder follow-ups.</p>

<p><i>Tell us about yourself and how you got interested and involved in OpenOffice.org....</i></p>

<p> I am currently a Ph.D. student at <a href="http://www.ucf.edu/" target="_blank">University of Central Florida</a>. My research area is distributed systems (specifically multi-agent systems) and my research focus is on team formation among these autonomous agents. So in real life, I am still a student.</p>

<p><i> What got you interested in OpenOffice.org?</i></p>

<p> The motivation to work on open-source projects was mainly derived from my keenness to learn new technologies and increase my skill set in the process. My specific project (OpenDocument format export) introduced me to the world of OpenDocument format standard. I learned about the specifications and incorporated them in JasperReports (which is also a wonderful project; see below for more explanation). </p>

<p> <i>Describe your project....</i> </p>

<p> My project (<a href="http://netmoc.cpe.ucf.edu/Projects/jasper.html" target="_blank">http://netmoc.cpe.ucf.edu/Projects/jasper.html</a>) was to develop an export utility to generate open document (oasis) format documents from JasperReports.  I worked on this project with Frank Schönheit  as my mentor. We have been constantly in touch since the project beginning and I am thankful to Frank for his timely guidance and technical support during the whole process.  We agreed on creating OpenDocument file with separate content, style, settings and meta information files. </p>

<p>We divided the overall task in following subtasks: </p>
<ol>
	<li>Study the Jasper Report tool and determine its key functionalities</li>
	<li>Study the overall architecture of Open document format</li>
	<li>Determine the mapping between elements of JasperReports to open document</li>
	<li>Implementation of the exporter</li>
</ol>

<p> What is JasperReports? </p>

<p> <a href="http://jasperreports.sourceforge.net/" target="_blank">JasperReports</a>  is a Java-based report creation tool. The reports are designed in XML format (JRXML) using the <a href="http://jasperreports.sourceforge.net/dtds/jasperreport.dtd" target="_blank">http://jasperreports.sourceforge.net/dtds/jasperreport.dtd</a> document structure. It supports several backend data-retrieval mechanisms. Along with simple textual data, it also supports rich contents and styles. It further supports tables, images, drawing shapes, hyperlinks, page anchors, etc. </p>


<p> What is Open Document format? </p>

<p> The <a href="http://www.oasis-open.org/home/index.php" target="_blank">Organization for the Advancement of Structured Information Standards</a> (OASIS) is a not-for-profit, international consortium that drives the development, convergence, and adoption of e-business standards. Open document format is an effort towards developing an XML based standard for office applications. It is supported by the current version 2.0 of OpenOffice.org. The specifications are provided at <a href="http://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.%200-os.pdf" target="_blank">http://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1. 0-os.pdf</a>. The specifications are based on Relax-NG schema language. </p>


<p>At a minimum, I learned from this project the following:</p>

<ul>
	<li>Open document structure</li>
	<li><a href="http://www.relaxng.org/" target="_blank">Relax NG Schema </a>language</li>
	<li>How document contents, styles and formatting be cleanly separated</li>
	<li>JasperReports internal structure and its operations</li>
</ul>

<p>Other than technical issues, I received Google recognition  (... certificate, T-shirt and money... :-) ), which open-source projects are out there and how can I contribute to them, and how to collaborate and work with a mentor remotely.</p>


<p> <i>What is the current status of the project?</i></p>

<p> We have now completed the project--it is on SourceForge, under the LGPL--and the exported open document file exports: </p>

<ul>
	<li>Jasper reports (multiple reports can be exported in one document)</li>
	<li>support page styles (page size and format)</li>
	<li>table creation with multiple column and row spanning</li>
	<li>text export (paragraph, alignments, margins, colors, text direction, etc.)</li>
	<li>styled text (font size, style, colors, rotation etc.)</li>
	<li>batch report handling (with different page sizes)</li>
	<li>image, anchors, hyperlink  </li>
	<li>Unicode</li>
</ul>


<p> Some other key design features included: </p>

<ul>
	<li>in order to be able to handle large amounts of data, we did not create in-memory model of data. The data was written to files as soon as it became available.</li>
	<li>to reduce redundant styles, we used a 'style identifier' mechanism which enforced that a previously written style is not re-written</li>
	<li>the et of files were zipped together to create final output document files (.odt file)</li>
</ul>

<p>Thanks to Majid and Google for sponsoring the (Northern Hemisphere) Summer of Code!  In the next few days, leading up to OOoCon 2005, I'll publish other interviews of student developers who had a great summer with OpenOffice.org thanks to Google's Summer of Code.</p>

</div>
<br />

<hr />

<a href="articles.html">Return to Articles</a>
</body>
</html>
