<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>Community  Articles: Opinions, Interviews, Analyses</h2>
<p>Editor: <a href="../lspintro.html">Louis Su&aacute;rez-Potts</a>
<br>
<p>2002 February 25</p>

<br>
<h4>Interview: Timon Schroeter</h4>


<p> Timon Schroeter is a familiar presence to OpenOffice.org community members. 
  Not only is he a key contributor to the <a href="http://whiteboard.openoffice.org/marketing/">Marketing 
  Project</a>, but also a co-founder of the new <a href="http://de.openoffice.org/">Germanophone 
  Project</a>. As well, he is a strong member of the <a href="http://distribution.openoffice.org/mirrors/">Mirrors 
  Project</a> (and has an excellent mirror) and his contributions to the "<a href="mailto:users@openoffice.apache.org">users@openoffice.apache.org</a>" 
  list are frequent and substantial. The interview below was conducted via e-mail 
  earlier this year; I edited the interview only very slightly. </p>

<p>&nbsp; </p>
<p><i>Your command of technical issues suggests that you are a programmer... Are 
  you?</i> </p>

<p> No. I have set up and maintain a couple of desktops and servers, but my last serious programming attempts I made on a <a href="http://cia.c64.org/">Commodore 64</a>. </p>

<p> Outside OpenOffice.org I spend most of my time studying chemistry at <a href="http://www.rwth-aachen.de/">RWTH-Aachen</a>, which roughly translates into Aachen University of Technology, located in this Region: <a href="http://www.technologieregion-aachen.de">http://www.technologieregion-aachen.de</a>. </p>


<p> <i>OpenOffice.org is a great project and product, but--oddly--not everyone yet knows about it.  How did you get interested in OpenOffice.org? </i></p>

<p> I started using Linux two and half years ago and have used <a href="http://www.sun.com/staroffice/">StarOffice 5.2</a> since that day. In connection with my studies, I often use complex Microsoft Office Documents, and was not satisfied with SO5.2's MS Word compatibility. So I started looking for another office suite running on Linux. I found that OpenOffice.org  had problems with MS-Office compatibility and filed two or three issues. I was extremely impressed by the fact that these bugs were fixed within two weeks. </p>

<p> <i>It used to be accepted wisdom that Open Source works in a sort of "<a href="http://www.firstmonday.dk/issues/issue3_12/barbrook/">gift economy</a>." Lately, that wisdom has been <a href="http://firstmonday.dk/issues/issue6_12/lancashire/index.html">critiqued</a>. But the existence of the idea does raise a question: What do you hope to get out of OpenOffice.org? Of course, asking this question is sort of like asking a musician what he or she hopes to get out a band...</i> </p>

<p> Some key experiences made me an Open Source fan, looking for a project to contribute to. One time I had trouble getting <a href="http://www.mostang.com/sane/">SANE</a> to work with my scanner. After having read the Readmes and FAQs I asked the programmer of that SANE backend what the problem could be. Within ten minutes I got an answer: A detailed analysis of the page of console output I had sent, three ideas what the problem could be and ways to check which was true. Half an hour later we knew that there were some timing problems introduced by the switch to <a href="http://www.linuxhq.com/kernel/v2.4/">kernel 2.4</a>. He told me how to fix this and recompile, or I could wait for my distributor to post the new package, which they did within two days. I was impressed, and started looking for a project to contribute to. I considered writing or translating documentation for <a href="http://www.kde.org/">KDE</a>, but came across OpenOffice.org before I got involved with any other project. </p>

<p> <i>Beside the opportunity to contribute to an Open Source project, what do you get out of OpenOffice.org?</i> </p>


<ol>
	<li>A good  office-suite for my personal use.</li>
	<li>A multiplatform office-suite that lets Windows-users make the switch to an Open Source platform much easier.</li>
	<li>Tremendous feedback: The community lets its active members know it appreciates their engagement . Result: Satisfaction. To everybody out there: I can only recommend you try this, it is simply great!</li>
</ol>

<p><i>As longtime community members will <a href="ec23Apr.html">recall</a>, last spring Guy Capra successfully launched his <a href="http://fr.openoffice.org/">Francophone project</a> and helped to create the <a href="http://native-lang.openoffice.org/">Lang,</a> or Native Development Project, as it is more formally known. Some of the OpenOffice.org community was initially reluctant to embark on any new such projects, for it was felt that the risk of fragmentation and balkanization was too great. But OpenOffice.org has evolved, and you, along with Jost Ammon [and now Manfred Reiter] recently created the very popular and successful Germanophone project, which is part of the Lang project. </i></p>


<p><i>What are your expectations for the project? And how would you measure its progress? As well, what strategies have you used for bringing people in to the OpenOffice.org community? And, how are you preventing members from ignoring the remainder of the project and developing the project on their own? Or is this an issue at all?</i></p>

<p>The <a href="http://de.openoffice.org/">Germanophone Project</a> provides information, documentation and active help for Germanophone users in their native language and serves as an entry point for Germanophone developers. We establish and maintain a mirror-network to spread both the original software from OpenOffice.org and localized Germanophone versions. We  keep contact with  local CD-ROM-distributors  and will establish and keep contact with the local computer-related press. </p>

<p>
Who is "we"? We are a group of 12 volunteers, five of whom introduced themselves on our mailing list within the first two weeks of our projects existence. How did they hear about it? Jost [Ammon, the leader then] is well know in certain German StarOffice newsgroups, where he announced the project and invited people to join us. 
</p>

<p> Possible progress indicators for our project are: Number of users(downloads, subscribers), posts, number of active members, pages of documentation written, number and quality of  servers carrying localized builds... </p>

<p> The numbers speak for themselves:  In January we counted 1500 downloads of localized builds, 400 posts to our mailing lists, written by 70 subscribers, 100 and some pages of documentation written by 12 active members, a primary server and 5 mirrors carrying localized builds, all with high bandwidth . </p>

<p> Using the publicity generated by Sun for StarOffice 6.0 and the OpenOffice.org marketing group, we can enlarge our (StarOffice and OpenOffice.org) user base and the number of developers by a lot. Since StarOffice  was initially developed in Germany, there is a large number of people who know and like StarOffice. OpenOffice.org 1.0 will be available two or three weeks before the launch of SO 6.0, so if we actively get the community to help us promote OpenOffice.org 1.0, the increase in the number of users and developers can be extreme</p>

<p> Lang/de is not supposed to be an island, of course. We tell our subscribers about interesting threads on other mailing lists, inviting them to join the discussions and ask the posters of very interesting messages to post them to the english lists, too. I smile every time I see one of our subscribers post messages to one of the 12 OpenOffice.org lists which  I myself read--and I smile a lot lately :-) </p>

<p><i>This brings us to another point, one that is increasingly important to Open Source projects: their international appeal. OpenOffice.org is intensely international and the native language projects speak to that. But so do the mirrors, which are now available throughout the world. Most community members may not be aware that you have been one of the most active and important contributors to the <a href="http://distribution.openoffice.org/mirrors/">Mirrors Project</a>. In fact, because of your help, OpenOffice.org counts more than twenty sites mirroring our binaries, source, and contributor files; and many of these also offer localized versions of the code.</i> </p>

<p> Too much honor--I set up our primary download site and mentioned that we need mirrors.  Four out of the five mirrors carrying localized builds have been organized by Marco Huggenberger. </p>

<p> <i>So, my question:  What do you feel needs to be done to further the international acceptance of OpenOffice.org? This is of course a hopelessly broad and even silly question--it covers so much ground. For OpenOffice.org is more than a product, it is a community project. And, when companies and governments use us, they may be also validating the community process that created the product and will provide active support and development of it....</i> </p>

<p> I believe that most users wish to use a product which &bdquo;speaks&ldquo; their native language. This means: Localized builds with localized help systems, documentation, mailing lists for discussion and user support. Of course this introduces difficulties: We invite people to participate in other parts of the project, which some will do, but there are also those who do speak english barely if at all. This, of course, is part of why we need lang projects in the first place- not only to attract those who speak English, too, but also to support those who don't. Our user supporters will pick interesting posts and lift them across the language barrier and enter issues themselves, if necessary. Which leads to another point: IssueZilla is an important tool:Can it be localized? </p>

<p><i>Finally, how would you recommend interested individuals get started in OpenOffice.org? </i></p>

<p> Browse the Web page. Check out the software, find bugs, <a href="../project_issues.html">file issues</a>. Subscribe to <a href="../mail_list.html">discuss and other mailing lists</a> with topics that interest you. Use mail filters. Look at the <a href="../dev_docs/todos.html">todo page(s)</a>, follow the discussions- you will find something useful you can do. If so, don't hesitate. </p>

<p><i> I leave with that question. Feel free to add anything you wish to the interview; don't hesitate to rant, if you wish. </i></p>

<p> A big "Thank you" to Jost, Manfred, Marco, Christian, Andreas, 
  Harald, Johannes, J&ouml;rg , Helga, Franz, Ren&eacute;, Friedemann, Armin(!), 
  and all other members and supporters! </p>

<hr>
<br>
<p>
<a href="index.html">Previous articles</a>
</p>




</body>
</html>

