<!DOCTYPE html>
<html><head>
<title>News 2000</title>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<p>2003-08-19</p>
<p>The following articles represent a selection of those pertaining to OpenOffice.org,
  Open Source, or the general IT industry that may be of interest to the community.
  If you would like to share an article with the community, please send the link
  to Louis Su&aacute;rez-Potts,  editor, at <a href="mailto:marketing@openoffice.apache.org">marketing@openoffice.apache.org</a>. </p>
<p><a href="../news.html">Back to News Index</a></p>
<hr>
<br>
<table width="100%" border="1" cellpadding="4" cellspacing="0" bordercolor="#99CCFF">
  
  <tr>
    <td colspan="2" bgcolor="#99ccff" valign="top">
      <h4>2000</h4>
    </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.informationweek.com" target="_blank">InformationWeek.com</a></td>
    <td class="alt9"><a href="http://www.informationweek.com/815/15uwbp.htm" target="_blank">The
        Case For Open Source<br>
      </a><i>December 4, 2000</i></td>
  </tr>
  <tr>
    <td class="alt9">Bill Portelli, CEO of CollabNet, Inc., gives a compelling
      account of why Sun Microsystems and a growing number of other companies
      have found the most profitable way to develop software is to give it away.</td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.batv.com">BusinessNow</a></td>
    <td class="alt9"><a href="http://www.batv.com/co_html/collabnet.html">CollabNet
        on TV!</a><br>
      <i>November 26, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">BusinessNow presents an illuminating look at CollabNet's
      work in creating the new model of software development. A must see for
      those curious about what goes on at a major open-source consulting office.</td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.linux-community.de">Linux
        Community </a></td>
    <td class="alt9"><a href="http://www.linux-community.de/News/story?storyid=617">Gewinner
        des Linux New Media Award 2000</a><br>
      <i>November 10, 2000</i></td>
  </tr>
  <tr>
    <td class="alt9">Am 9. November 2000 fand auf dem LinuxPark in M&uuml;nchen
      die Verleihung des ersten Linux New Media Awards statt. Vor einem illustren
      Publikum wurden acht Preise in den Kategorien Beste Web-Software, Innovativste
      Desktop-Software, Praktischstes Kommandozeilen-Werkzeug, Beste Linux-Distribution, <a href="//awards/awardpic.html">Innovativste
      Open Source Software einer Firma</a>, Bester vorkonfigurierter Linux-Rechner,
      Coolstes Embedded Linux System und Bestes Buch zum Thema Linux oder Open
      Source vergeben. </td>
  </tr>
  <tr>
    <td rowspan="2" width="25%" > <a href="http://www.sun.com">Sun Microsystems,
        Inc.</a> </td>
    <td class="alt9"><a href="http://www.sun.com/smi/Press/sunflash/2000-10/sunflash.20001016.4.html">The
        Sun Press Release on Making the Code Available</a><br>
      <i>October 16, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">Forty-five minutes after the code was released, the deluge
      of download requests was so great that the OpenOffice.org servers were
      brought down, if only temporarily. As analysts and officials have suggested,
      this demand for the StarOffice source code demonstrates the enthusiasm
      open-source developers have for OpenOffice and the potential of the project
      to succeed.</td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.zdnet.com">ZDNet News</a></td>
    <td class="alt9"><a href="http://www.zdnet.com/zdnn/stories/news/0,4586,2640108,00.html?chkpt=zdhpnews01">Sun
        Puts StarOffice into Open Source</a><br>
      <i>October 13, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">Sun Microsystems Inc. is billing it as the biggest project
      in open source history. As of today, developers interested in viewing,
      tinkering with, and/or licensing the StarOffice desktop office suite or
      its component parts are free to download the code. "This will be programming
      in the large made public for the first time," said Bill Roth, Sun group
      product manager. "This is nine times the size of Mozilla."</td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.linuxtoday.com">Linux Today</a></td>
    <td class="alt9"><a href="http://linuxtoday.com/news_story.php3?ltsn=2000-10-13-002-21-NW-DT-SW">StarOffice
        Code Released in Largest Open Source Project</a><br>
      <i>October 13, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">Sun Microsystems is taking huge steps into the world of
      open source software today, and at the same time is taking great pains
      not to make those steps awkward ones. Sun's joint effort with CollabNet
      kicked into high gear on the OpenOffice Web site at 5 a.m. PST this morning
      with the release of much of the source code for the upcoming 6.0 version
      of StarOffice. According to Sun, this release of 9 million lines of code
      under GPL is the beginning of the largest open source software project
      ever. </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.newsforge.com/" target="_blank">NewsForge</a> </td>
    <td class="alt9"><a href="http://www.newsforge.com/article.pl?sid=00/11/13/165203">Here
        and now with the sober-minded Sander Vesik</a><br>
      <i>November 14, 2000</i></td>
  </tr>
  <tr>
    <td class="alt9">Julie Bresnick interviews OpenOffice.org's Dublin-based
      release engineer about his background, thoughts, and work.</td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.wired.com">Wired</a></td>
    <td class="alt9"><a href="http://www.wired.com/news/technology/0,1282,39452,00.html">Sun
        Opens StarOffice Code</a><br>
      <i>Wired, October 13</i> </td>
  </tr>
  <tr>
    <td class="alt9">Sun Microsystems has turned its office-productivity software
      loose on the open-source community, hoping that programmers will do for
      it what they have done for Linux and Netscape 6. And if the stampede to
      download the source code for its StarOffice 6.0 application suite is any
      indication, that may very well happen. </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.devx.com/" target="_blank">DevX</a></td>
    <td class="alt9"><a href="http://linux.devx.com/articles/2000/interv082500-1.shtml">StarOffice
        Chief Offers Insights on Going Open Source </a> <br>
      <i>August 25, 2000</i></td>
  </tr>
  <tr>
    <td class="alt9">DevX Senior Editor Stefan Gr&uuml;nwedel speaks with StarDivision's
      founder Marco Boerries on OpenOffice.org, Open Source, and more.</td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.sun.com">Sun Microsystems,
        Inc.</a></td>
    <td class="alt9"><a href="http://www.sun.com/software/gnome">GNOME Foundation
        Adopts OpenOffice.org Productivity Software As The Core of The GNOME
        Office Suite</a><br>
      <i>August 15, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">GNOME Office will equip users with a wide array of compatible
      and intuitive productivity features, such as integrated mail, calendar,
      and address management; network configuration and management; a network-based
      file management system; internationalization; an object-oriented application
      framework; CORBA support for distributed software; layout and rendering
      of internationalized text; and much, much more. </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.linuxplanet.com">Linux
        Planet</a> </td>
    <td class="alt9"><a href="http://www.linuxplanet.com/linuxplanet/previews/2470/1/">A
        Hands-On Review of the Open Source OpenOffice: Building from the Source</a><br>
      <i>July 24, 2000</i></td>
  </tr>
  <tr>
    <td class="alt9">The big news today may be the unveiling of the OpenOffice
      web site, but lost in the shuffle has been any reporting on exactly what
      Sun and CollabNet are offering on OpenOffice.org. . . . As you might expect,
      Sun did more than just release an Open Source product: it also cleaned
      up the code and made some significant changes to the software. </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.computerworld.com">Computerworld</a> </td>
    <td class="alt9"><a href="http://www.computerworld.com/cwi/Printer_Friendly_Version/frame/0,1212,NAV47_STO47334-,00.html">Open-source
        Community Welcomes StarOffice Release Under GPL</a><br>
      <i>July 20, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">The announcement [of the release of the source code] received
      much attention at the O'Reilly Open Source Convention in Monterey, Calif.,
      yesterday, with many open-source luminaries applauding the move. Sun is
      positioning StarOffice as a replacement for Microsoft Office 2000. [StarOffice]
      runs on Windows, Linux, OS/2 and Solaris. StarOffice joins other open-source
      suites, including Gnome Office. </td>
  </tr>
  <tr>
    <td rowspan="2" width="25%" > <a href="http://www.eweek.com">eWeek</a> </td>
    <td class="alt9"><a href="http://www.zdnet.com/eweek/stories/general/0,11011,2605874,00.html">Open-Source
        StarOffice Earns Early Praise</a><br>
      <i>July 20, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">Sun Microsystems Inc.'s decision Wednesday to release the
      source code of its StarOffice productivity application suite to the open-source
      development community under the GNU General Public License is reaping early
      praise. </td>
  </tr>
  <tr>
    <td rowspan="2" width="25%" ><a href="http://www.linuxtoday.com">LinuxToday</a></td>
    <td class="alt9"><a href="http://linuxtoday.com/news_story.php3?ltsn=2000-07-19-016-04-PS-DT-SW">Smart
        Partner: Sun To Open StarOffice Code In October</a><br>
      <i>July 19, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">Sun also is creating an independent OpenOffice.org Foundation
      modeled on the Apache Foundation. Sun is funding the foundation to get
      it started but will hold a minority position and plans to name other partners
      soon. "Getting agreement inside Sun was an endeavor, but what I wanted
      to achieve was creating an open alternative to Microsoft Office, and that
      is bigger than GPLing the source code," Boerries said. "In my discussions
      with customers and communities and governments it became clear that for
      this project GPL was the right license, and it proves that Sun is an innovative
      and fast-moving company in doing the right thing. </td>
  </tr>
  <tr>
    <td rowspan="2" width="25%" > <a href="http://www.upsidetoday.com">UpsideToday</a> </td>
    <td class="alt9"><a href="http://www.upside.com/Open_Season/3976351f0.html">Sun
        spells out new license: G-P-L</a><br>
      <i>July 19, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">As Marco Boerries, VP of Sun Microsystems enunciated at
      the O'Reilly Open Source Conference : "Let me just say three letters: G-P-L," said
      Boerries, triggering a loud ovation. (For those not in the know, Boerries
      was speaking of the GNU General Public License -- the license that protects
      the Gnu/Linux operating system.) </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.theregister.com">The Register</a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/1/12041.html">Boerries
        confirms StarOffice to go GPL, Mac version</a><br>
      <i>July 19, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">StarOffice creator Marco Boerries has confirmed that Sun
      intends to GPL the productivity suite. Sun made the official announcement
      today, but leaking to reporters earlier, Boerries said that source code
      for the next version of StarOffice, 6.0, will be available for download
      from 13th October. </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.sun.com">Sun Microsystems,
        Inc.</a></td>
    <td class="alt9"><a href="//press/sun_release.html">The
        Sun Press Release on OpenOffice.org</a><br>
      <i>July 19, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">Today at the O'Reilly Open Source Convention in Monterey,
      California, Sun Microsystems, Inc. announced it will release the source
      code of its StarOffice (TM) Suite, a leading, high quality, office productivity
      application software suite, to the open source community under the GNU
      General Public License (GPL). Sun also announced OpenOffice.org will be
      formed and managed by Collab.Net and will serve as the coordination point
      for the source code, the definition of XML-based file formats, and the
      definition of language-independent office application programming interfaces
      (APIs.) </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.collab.net">CollabNet, Inc.</a></td>
    <td class="alt9"><a href="//press/collab_net_release.html">The
        CollabNet Press Release on OpenOffice.org</a><br>
      <i>July 19, 2000</i> </td>
  </tr>
  <tr>
    <td width="75%">Collab.Net, Inc., a leading provider of collaborative software
      development services, based on open source principles - today announced
      that Sun Microsystems has selected the Collab.Net SourcecastSM environment
      as the infrastructure for OpenOffice.org, the open source community site
      for its StarOffice product. Collab.Net is providing a global development
      platform and support for OpenOffice.org and consulting with Sun to establish
      OpenOffice.org as a key open source virtual community. </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www0.mercurycenter.com/svtech/">SiliconValley.com </a></td>
    <td class="alt9"><a href="http://www.mercurycenter.com/svtech/news/indepth/docs/sun071900.htm">Sun
        Looks To Boost StarOffice Suite by Opening Its Code</a><br>
      <i>July 18, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">Sun Microsystems Inc. will announce today that it plans
      to make the underlying code of its StarOffice suite, a set of office applications
      that compete directly with Microsoft Corp.'s popular Office suite, available
      for free to software developers. </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.infoworld.com">InfoWorld.com</a></td>
    <td class="alt9"><a href="http://www.maximumlinux.com/content/news/2000/07/17/11104">Sun
        Opens StarOffice Source Code</a><br>
      <i>July 17, 2000</i> </td>
  </tr>
  <tr>
    <td class="alt9">PALO ALTO, CALIF. (Reuters) - Sun Microsystems Inc., the
      owner of the free StarOffice suite of programs that competes with Microsoft
      Corp.'s Office programs, plans to make the source for StarOffice public,
      in an effort to give the fledgling program a boost with software developers. </td>
  </tr>
</table></body>
</html>

