<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<h2>Community Stories</h2>
<br>
<h4>OpenOffice.org and the Promise of Collaboration</h4>
<p>2001 October 13 </p>
<p>-Jost Ammon, <a href="http://whiteboard.openoffice.org/marketing/">Marketing 
  Project Co-Lead</a> </p>
<br>
<p>I have ever been an addict to music. Of course I've always wanted to share 
  my experience with music. The &#145;Net offered me totally unexpected opportunities 
  to do so, first, by enabling me to participate in various mailing lists with 
  others who share the same interest as I, and whom I would never have met where 
  I live, later in getting acquainted with Lyle Mays, composer and keyboarder 
  to the Pat Metheny Group, who was open enough to enter an email relationship 
  with someone he didn't know. And when I thought of writing an essay about this 
  virtual/non-virtual acquaintance with Lyle and with others, I began to explore 
  this new medium which offered possibilities that go far beyond of what is possible 
  with the good old linear and two-dimensional text, based on black letters on 
  a white paper.</p>
<p>I wanted to create a website that would reflect my interests and allow me to 
  communicate with my virtual (and nonvirtual!) friends. And as I started my website 
  I realized I needed an HTML editor. I found some for free, but one of them vanished 
  after I had learnt to handle it, or rather it morphed into a bigger word processing 
  software I never really got to master. Then I needed software that could edit 
  graphics. I found one, but again it didn't have all the features I needed. Finally 
  I needed a database for all my emails, and again had to look for yet more software. 
  I don't know remember when it was, but one day I found a CD-ROM copy of StarOffice 
  in a magazine at the library. I copied it to my PC and started working with 
  it. </p>
<p>It could do everything I needed.</p>
<p>I could compose my website, write my stories, articles, letters; I could control 
  the website&#146;s design easily. I could update the source code of my website. 
  I could edit the graphics; and I also found that StarOffice contained the database 
  I wanted, one that allowed me to index and search through my emails by keyword. 
  The more I became attracted to this universal tool for a universal medium, the 
  more I learned about Open Source, since Sun Microsystems gave the code of its 
  StarOffice to the open-source community helping OpenOffice.org (the software) 
  get off the ground. I learned about the free and open spirit of the Internet 
  that still lives. And that it lives only through the idea of sharing. I learned 
  about OpenOffice.org (the Project), this international community that shares 
  the idea of putting the best of each together, in order to create a universal, 
  free and open tool for our daily work. And so I found not only the medium and 
  its tool but also the spirit that embraces it all.</p>
<p>OpenOffice.org is just more than just the best office suite, based on incredible 
  work by some of the brightest individuals the international &#145;Net community 
  has gathered together. And it&#146;s more than just the best software to express 
  the universality of the medium called the &#145;Net. Free, OpenOffice.org is 
  ultimately an expression of our will to grow on the grounds of sharing our freely 
  accessible knowledge. </p>
<p>Perhaps it is good to recall some facts about OpenOffice to get a grip on the 
  dimensions of OpenOffice.org. There are more than 3600 subscribers to the mailing 
  lists and contributors of code, documentation and bug identification. Over two 
  million downloads as of this day, not counting those of the mirrors. At least 
  twenty-three ongoing projects including, besides the technical features, things 
  like documentation, groupware, and even marketing. There are now open-source 
  functions such as printing, spellchecker, and thesaurus in English. We have 
  ports available for Linux, Solaris, Windows NT, 2000, 95/98/ME, Linux PPC, and 
  soon even Mac OS/X. And last but not least, OpenOffice.org receives nearly half 
  a million page hits a week.</p>
<p>All these open-source efforts remind me a bit of editing the French Encyclop&eacute;die. 
  Some 250 years ago the brightest spirits of the western world gathered to pool 
  their experiences for the largest status quo of knowledge ever recorded until 
  then. Its impact was inconceivable at the time and paved the way to the civilization 
  we know today. Today the same is certainly true for the Internet and maybe so 
  for the open-source movement. In this context the significance of OpenOffice.org 
  exceeds being "just another good software," but is rather a significant comment 
  on how we interpret progress. </p>
<p>For the full article, &quot;Halfway to Literacy,&quot; please go to Jost Ammon's 
  <a href="http://www.openbook.gmxhome.de/OO%20aniversary%20story.html">page</a>. 
</p>
</body>
</html>

