﻿<html>
<head>
<title>Summer of Code: Daniel Miller</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="spaced13">
<h2>Summer of Code: Daniel Miller</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, Daniel Miller 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 attend the University of South Florida, a research university. I am working on my graduate's degree in Engineering Management, a program that is a cross between Industrial Engineering and an MBA, and at my current age of 24, will have the degree in the coming summer. My background in becoming an Engineering Management student spawns from my drive to help people. </p>


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

<p> Since I first read the posting on Slashdot of "OpenOffice.org 1.0 stable released," my interest in the project has not waned.  At the time I was very impressed with the open source project that had been produced; I still am. At the time of OOo 1.0, I downloaded it and started making a case in the Civil Engineering office for this product; however, clients drove the market, and we stayed with Microsoft products. I continued to search for ways to assist the project that did not involve programming. I have been seeking graphic and industrial engineering requests on the lists, but after a number of searches, I just couldn't find anything that I could assist with. </p>

<p>Then came Summer of Code. </p>

<p> With a cash incentive, I could actually quit my job and learn how to program for OpenOffice.org under an education grant. When I came across the OpenOffice.org development of test cases, I realised that this might be the only project within all the Summer of Code projects that I could successfully create a work break down structure for and complete. With this in hand, I proudly applied for that one position wanting to be able to contribute alongside some of the other individuals around the globe contributing. Now, when people ask me what I did over the summer, I can tell them: "I helped OpenOffice become greater." When they ask me what OpenOffice.org is, I get to tell them and spread the word. </p>


<p> <i>And the project?</i> </p>


<p> I finished my work on the Summer of Code today and submitted it to my mentors via a project upload. When I initially looked into applying for the Summer of Code, I was a little anxious, as I do not have that high of a level in the programming department. So, when I saw that OpenOffice.org Calc needed to have a validation of its functions versus competing software, I applied for it. After the waiting for a week in which I had no idea if I would receive the project I was elated to receive the job. </p>


<p> Thankfully, I had created a work breakdown structure (WBS) within my proposal and started to execute it. My mentor, Niklas Niebel, contacted me the next day and informed me of the need for weekly reports/updates. About three weeks into my work, I started to get jealous of the other peoples' work schedules, as they programmed to a finite goal and could complete the projects by the beginning of August. To be honest, this really bothered me when people on the Google Group started to mention that their projects were completed after the first month, whereas I was only half-way. I set my nose to my WBS and plodded onward. Niklas went on vacation and I was put under Eike Rathke, who gave me a positive outlook on the project during the last three weeks of my drive to completion. I kept asking the two of them how the other projects were progressing and it disappointed me that some of the people selected for the Google Summer of Code had not contacted them back. Open source to my mind has always been about knowing that while you are working as hard as you can to complete a very specific and tedious task, there are others working just as hard on something else. When the parts are put together, the result is something magnificent. </p>

<p> When I finally completed my project, I uploaded the document via a neat uploading system through OpenOffice.org. My only guilty item is that I used OpenOffice.Calc to test the functions, but I used Word to write the document. After it all, I am much more open to using Calc and safely point others to using it as a viable alternative. Additionally, I hope that the results from my test cases are able to make a difference in future Calc developments. </p>


<p>Thanks to Daniel 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>
