﻿<html>
<head>
<title>Summer of Code: Cédric Bosdonnat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="spaced13">
<h2>Summer of Code: Cédric Bosdonnat</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  acquired and community 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.  I begin today with that of  Cédric Bosdonnat, who worked on an <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> plugin for OpenOffice.org. 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>Tell us about yourself and how you got interested and involved in OpenOffice.org....</p>

<p>I'm currently student at <a href="http://www.insa-lyon.fr/" target="_blank">INSA</a>, Computer Sciences department (National Institute of Applied Sciences) in Lyon, France. The day before I come to the <a href="http://marketing.openoffice.org/ooocon2005/index.html" target="_blank">OOoCon 2005</a>, I'll enter in the 5th and last year of this engineer school and have my twenty second birthday.  Outside my OOo investment I take care of my fiancée, learn rock n' roll, run, and do many other things.</p>

<p> Motivated by free software since four years, I have done some things at school to bring it to other students computers. All my OpenOffice.org investment story dates from December 2004, when I began to write an OOo document model with advanced macros. Afterwards, I got more and more contacts with the <a href="http://fr.openoffice.org/index.html" target="_blank">Francophone project and Jürgen community</a>. Only on the 16th of July (2 days before the Google SoC application deadline), did I read an email from Sophie Gautier presenting this project. It was the beginning of a beautiful story: Summer of Code. </p>

<p> I worked and work again on an Eclipse plugin that helps OpenOffice.org development. A t the beginning it was difficult to decide which end of the rope I had to take. Jürgen helps me a lot to define which features would be very important which could be implemented afterwards. </p>

<p> Now the plugin could be used for small projects and supports basic features like syntax highlighting, new project and file basic wizards and SDK configuration. The priority was given to the wizards and the User help: that is why there are many ways to configure the SDKs and OOo installations. The next steps until the end of the google summer of code will be to add a type browser to let the user choose among the OpenOffice.org services and interfaces describe in the API. This will lead to the creation of new wizards such new minimal component or new application. </p>

<p> I will continue to develop this plugin after the Google Summer of Code to bring it to a full-featured system. However, I will not continue to develop at such a speed because of all my other activities. There is an open door to people who wants to internationalise the plugin and help me to document it's use. I plan to write a how-to internationalise the plugin to help people in this task. Of course I will give them an example by providing the French language pack. </p>


<p>The developed plugin will help the developers create new <a href="http://udk.openoffice.org/" target="_blank">UNO Components</a>. For the moment, there is a basic component wizard and a new Service wizard. The code produced is a basis for further developments there are only a few steps to get a new interface wizard, for example. I'm working on this, but a new Calc or Draw add-on is planned. Some people on the dev@api.openoffice.org list are interested in helping me. In a conclusion, I'd say that this is good: I won't be the only developer for this project... </p>

<p><i> Why did you choose this topic?</i> </p>

<p> At the beginning I wanted to try to create some pieces of code to learn OOo Java programming. I checked if there was something existing to help me developing with Eclipse, and saw that there was already a project with NetBeans: thus I proposed the idea. </p>

<p><i> How did the mentoring work?</i> </p>

<p> I was fully autonomous on the Eclipse development, but Jürgen helped me for problems like Bootstrapping OOo for a Java program, how to integrate the SDK in the plugin. We often communicated with private email; however, some problems where submitted to dev@api.openoffice.org. Jürgen and Laurent Godard responded to me the problems they saw and helped me to improve the user interface of the plugin. </p>

<p> <i>What difficulties did you encounter?</i> </p>

<p> The main difficulties were with bootstrapping OOo, because I get some problems that Jürgen couldn't reproduce. This led me to find one or two bugs and submit them to Jürgen (or dev@api). </p>

<p> <i>What technologies did you need to know? </i></p>

<p> Java and the Eclipse API were the most important technologies to know. Afterwards, there were no really specific technologies to learn (of course I had to read the OOo 2.0 SDK). </p>

<p><i> Did the Google SoC work integrate with your schoolwork? </i></p>

<p> No.  There was no connection at all with my schoolwork: I simply had two jobs this summer: a mandatory internship (for school) and the Google Summer of Code. </p>

<p>Thanks to Cédric 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="index.html">Return to Articles</a>
</body>
</html>
