<!DOCTYPE html>
<html><head>
<title>News 2002</title>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>News 2002</h2>
<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" class="alt4">2002</td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.eweek.com/">eWeek</a></td>
    <td  class="alt9"> <a href="http://www.eweek.com/article2/0,3959,798173,00.asp">2002:
        The Tech Good, Bad and Ugly</a> <br>
      <em>2002-12-23</em></td>
  </tr>
  <tr>
    <td  class="alt9">eWeek writer Jason Brooks writes that the "most impressive" gains
      in tech were OpenOffice.org and other open-source endeavors.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://newsforge.com/">NewsForge</a></td>
    <td  class="alt9"> <a href="http://newsforge.com/newsforge/02/12/09/1630252.shtml?tid=11"> Grid
        computing from Sun - Open Source and proud of it </a> <br>
      <em>2002-12-16</em></td>
  </tr>
  <tr>
    <td  class="alt9">Robin 'Roblimo' Miller reports on Sun's Open Source <a href="http://gridengine.sunsource.net/" target="_blank">GridEngine</a>,
      writing that "Sun's open source Grid Engine software currently runs over
      7000 grids with an average of 47 CPUs per grid, and a steadily increasing
      percentage of the grids it powers run Linux, according to John Tollefsrud,
      Sun's Grid marketing manager."</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://news.com.com/">c|net</a></td>
    <td  class="alt9"> <a href="http://news.com.com/2100-1001-977880.html?tag=fd_lede1_hed"> How
        open is the new [MS} Office? </a> <br>
      <em>2002-12-16</em></td>
  </tr>
  <tr>
    <td  class="alt9">Joe Wilcox writes, "Microsoft says it's opening its Office
      desktop software by adding support for XML--a move that should help companies
      free up access to shared information. But there's a catch: It has yet to
      disclose the underlying XML dialect." A useful and interesting assessment.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.theregister.co.uk">The
        Register</a></td>
    <td  class="alt9"> <a href="http://www.theregister.co.uk/content/7/28462.html">Scott
        McNealy on: Sun's secret weapon and its biggest mistake (not you, Apple)</a> <br>
      <em>2002-12-06</em></td>
  </tr>
  <tr>
    <td  class="alt9">Andrew Orlowski spends an hour with Scott McNealy of Sun.
      This is his trenchant account.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://news.com.com/">c|net</a></td>
    <td  class="alt9"> <a href="http://news.com.com/2100-1040-976239.html?tag=fd_top">Sony
        dumps Microsoft for StarOffice</a> <br>
      <em>2002-12-05</em></td>
  </tr>
  <tr>
    <td  class="alt9">Staff writer David Becker reports on Sony's switch to StarOffice.
      Why the switch? because it is much cheaper and perfectly interoperable
      with Microsoft Office. StarOffice is Sun's proprietary derivation of OpenOffice.org.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.theregister.co.uk/">The
        Register</a> </td>
    <td  class="alt9"> <a href="http://www.theregister.co.uk/content/4/28358.html">Wanted:
        ISPs to flog StarOffice</a> <br>
      <em>2002-12-02</em></td>
  </tr>
  <tr>
    <td  class="alt9">ComputerWire reports that " Sun Microsystems Inc is in
      talks with some of the major internet service providers regarding possible
      tie-up agreements through which the ISPs will distribute and offer services
      around Sun's StarOffice productivity office software suite." </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.theinquirer.net/">The Inquirer</a> </td>
    <td  class="alt9"> <a href="http://www.theinquirer.net/?article=6492">Open
        Office for Windows</a><br>
      <em>2002-12-01</em></td>
  </tr>
  <tr>
    <td  class="alt9">Mike Magee reviews OpenOffice.org 1.0 and <i>likes</i> it. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://techupdate.zdnet.co.uk/">ZDNet
        UK Tech Update</a> </td>
    <td  class="alt9"> <a href="http://techupdate.zdnet.co.uk/story/0,,t481-s2126606,00.html">OpenOffice.org
        gives MS Office a run for no money</a> <br>
      <em>2002-11-27</em></td>
  </tr>
  <tr>
    <td  class="alt9">Jack Wallen, Jr., writes that: "The OpenOffice.org office
      suite has come a long way -- so much so that it's now a viable alternative
      to MS Office. See how this open source application fares against the Goliath." Useful
      reading. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://news.com.com/">c|net</a> </td>
    <td  class="alt9"> <a href="http://news.com.com/2100-1001-966691.html?tag=fd_top"> Group
        tackles OpenOffice desktop spec</a> <br>
      <em>2002-11-21</em></td>
  </tr>
  <tr>
    <td  class="alt9">Margaret Kane of c|net writes that "A group of companies
      working on Web services specifications is calling for a new standard to
      handle desktop application documents." Worth reading. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.linuxworld.com.au/">LinuxWorld
        (Australia)</a> </td>
    <td  class="alt9"> <a href="http://www.linuxworld.com.au/news.php3?tid=1&nid=2021">OpenOffice,
        OASIS aim to create office standard </a> <br>
      <em>2002-11-21</em></td>
  </tr>
  <tr>
    <td  class="alt9">Matt Berger, of IDG News Service, reports further on the
      Oasis effort "develop a standard file format that would allow office documents
      such as spreadsheets and word processing files to be opened by applications
      from different vendors." </td>
  </tr>
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.newsforge.com/">Newsforge</a> </td>
    <td  class="alt9"> <a href="http://newsforge.com/article.pl?sid=02/10/15/1459259&mode=thread&tid=11">OpenOffice.org
        as a 2-year-old: Still aiming to catch MS Office</a> <br>
      <em>2002-10-16</em></td>
  </tr>
  <tr>
    <td  class="alt9">Grant Gross interviews Marketing Co-Lead Sam Hiser for
      Newsforge. A useful, informative interview. Worth reading. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.linuxjournal.com/">Linux
        Journal</a> </td>
    <td  class="alt9"> <a href="http://www.linuxjournal.com/article.php?sid=6437&mode=thread&order=0">OpenOffice.org
        Project Update</a> <br>
      <em>2002-11-09</em></td>
  </tr>
  <tr>
    <td  class="alt9">Sam Hiser, Co-Lead of the Marketing Project, provides an
      update on the Project. Worth saving. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.infoworld.com/">InfoWorld.com</a> </td>
    <td  class="alt9"> <a href="http://www.infoworld.com/articles/op/xml/02/11/11/021111opsource.xml">Pavlicek
        on The Open Source: Switching Offices</a> <br>
      <em>2002-11-13</em></td>
  </tr>
  <tr>
    <td  class="alt9">Contributing InfoWorld editor Russell Pavlicek weighs in
      on the reason to switch Offices. Worth reading. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.newsfactor.com/">NewsFactor</a> </td>
    <td  class="alt9"> <a href="http://www.newsfactor.com/perl/story/19961.html">The
        Case for OpenOffice[.org]</a> <br>
      <em>2002-11-13</em></td>
  </tr>
  <tr>
    <td  class="alt9">Lisa Gill presents a compelling case for OpenOffice.org.
      Worth reading. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.business2.com/">Business
        2.0</a> </td>
    <td  class="alt9"> <a href="http://www.business2.com/articles/mag/print/0,1643,44531,FF.html">Linux
        for the Rest of Us</a> <br>
      <em>2002-11-06</em></td>
  </tr>
  <tr>
    <td  class="alt9">Eric Schonfeld boldly writes that: "With the long-awaited
      emergence of dirt-cheap new applications, the desktop alternative to Microsoft
      finally has emerged." OpenOffice.org is prominently mentioned. Case examples,
      cost analyses presented. Worth reading. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.guardian.co.uk/">Guardian
        Unlimited</a> </td>
    <td  class="alt9"><a href="http://www.guardian.co.uk/online/businesssolutions/story/0,12581,834027,00.html">Knowledge
        is power</a><br>
      <em>2002-10-31</em></td>
  </tr>
  <tr>
    <td  class="alt9">Ben Hammersely writes incisively on what has made OpenOffice.org
      successful. Worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.theage.com.au">The Age</a> </td>
    <td  class="alt9"> <a href="http://www.newsfactor.com/perl/story/19792.html">The
        OpenOffice Experiment</a> <br>
      <em>2002-10-28</em></td>
  </tr>
  <tr>
    <td  class="alt9">Insightful and topical, this article by Lisa Gill of NewsFactor
      addresses the opportunities now being presented to enterprise companies.
      The lead of the article: "What is most likely, Yankee Group senior analyst
      Laura DiDio said, is that companies disgruntled with Microsoft and willing
      to test alternative waters will install open software alongside Windows
      products."</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.theage.com.au">The Age</a> </td>
    <td  class="alt9"> <a href="http://www.theage.com.au/articles/2002/10/15/1034561142387.html">OpenOffice.org
        releases beta for Mac OS X</a> <br>
      <em>2002-10-15</em></td>
  </tr>
  <tr>
    <td  class="alt9">From Australia, an article on the release of the Mac OS
      X port and 643, the developer port.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.eweek.com/">eWeek</a> </td>
    <td  class="alt9"> <a href="http://www.eweek.com/article2/0,3959,633897,00.asp">Linux
        Is Ready to Roll, With or Without [MS] Office</a> <br>
      <em>2002-10-14</em></td>
  </tr>
  <tr>
    <td  class="alt9">Peter Coffee writes on Linux' suitability--and that it
      is ready for all users. "The bargain-priced applications available today
      for Linux are more than enough to get the job done--and it's time for those
      who pay the bills to say so."</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.eweek.com/">eWeek</a> </td>
    <td  class="alt9"> <a href="http://www.eweek.com/article2/0,3959,633905,00.asp">OpenOffice
        Releases New Developer Version</a> <br>
      <em>2002-10-14</em></td>
  </tr>
  <tr>
    <td  class="alt9">Peter Galli reports on the new developer releases.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://news.com.com">c|net</a> </td>
    <td  class="alt9"> <a href="http://news.com.com/2009-1001-961354.html">A
        Mortal Microsoft. Open source: Rebels at the gate</a> <br>
      <em>2002-10-14</em></td>
  </tr>
  <tr>
    <td  class="alt9">In the first of a series of articles examining the state
      of Microsoft today, Mike Ricciuti analyzes the threat to MS posed by Open
      Source technologies, including OpenOffice.org. Worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.oreillynet.com">O'Reilly
        Network</a> </td>
    <td  class="alt9"> <a href="http://www.oreillynet.com/pub/wlg/2097">OpenOffice/NeoOffice
        on Mac OS X</a> <br>
      <em>2002-10-04</em></td>
  </tr>
  <tr>
    <td  class="alt9">Tim O'Reilly sends his weblog from the Mac OS X conference
      session where Ed Peterlin presented the results of the Mac OS X porting
      team's work.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.newsfactor.com/">Newsfactor</a> </td>
    <td  class="alt9"> <a href="http://www.newsfactor.com/perl/story/19532.html">What's
        New on the Open Source Front?</a> <br>
      <em>2002-09-30</em></td>
  </tr>
  <tr>
    <td  class="alt9"> An informed and intelligent analysis by Masha Zager of
      Open Source efforts, touching on OpenOffice.org, among other projects.
      Worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.newsfactor.com/">Newsfactor</a> </td>
    <td  class="alt9"> <a href="http://www.newsfactor.com/perl/story/19512.html">The
        State of Linux in 2002</a><br>
      <em>2002-09-26</em></td>
  </tr>
  <tr>
    <td  class="alt9"> Masha Zager intelligently analyzes the state of Linux
      today and its character in light of the push by large companies to capitalize
      on Linux. Worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.nytimes.com">The New York
        Times.com</a><br>
      (Free registration required) </td>
    <td  class="alt9"> <a href="http://www.nytimes.com/2002/09/18/technology/18SUN.html">Sun
        Ready to Push Linux as Alternative to Microsoft</a><br>
      <em>2002-09-18</em></td>
  </tr>
  <tr>
    <td  class="alt9"> John Markoff reports on Sun's efforts to position Open
      Source technologies, among them Linux and StarOffice (which uses the same
      code base as OpenOffice.org), as alternatives to Microsoft's products.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.iht.com/">International
        and Herald Tribune</a> </td>
    <td  class="alt9"> <a href="http://www.iht.com/cgi-bin/generic.cgi?template=articleprint.tmplh&ArticleId=70026">IT
        managers cite security and competition when choosing a Linux system</a><br>
      <em>2002-09-09</em></td>
  </tr>
  <tr>
    <td  class="alt9"> In a special article to the IHT, Nick Selby reports on
      the factors influencing IT managers' choice for Linux. Among those cited,
      Martijn Dekkers, chief enterprise architect for the prime minister's office
      in Malta.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://nytimes.com/">The New York Times</a><br>
      (Free registration required) </td>
    <td  class="alt9"> <a href="http://www.nytimes.com/2002/09/05/technology/05CODE.html">An
        Alternative to Microsoft Gains Support in High Places</a><br>
      <em>2002-09-05</em></td>
  </tr>
  <tr>
    <td  class="alt9"> Steve Lohr writes on how governments throughout the world
      are increasingly turning to Open Source software.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://seattletimes.nwsource.com/">NewsForge</a></td>
    <td  class="alt9"> <a href="http://newsforge.com/newsforge/02/08/29/2314224.shtml?tid=11">Commentary:
        Making the Openoffice.org file format the standard</a> <br>
      <em>2002-08-30</em> </td>
  </tr>
  <tr>
    <td  class="alt9"> Ryan Leduc persuasively argues that &quot;The first step
      in breaking the Microsoft Office monopoly is to replace the Office file
      formats as the de facto file interchange standard.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://seattletimes.nwsource.com/">Seattle
        Times</a></td>
    <td  class="alt9"><a href="http://seattletimes.nwsource.com/html/businesstechnology/134516651_mcnealy19.html">Q&A:
        No standing in shadows for Sun Microsystems chief </a><br>
      <em>2002-08-19</em> </td>
  </tr>
  <tr>
    <td  class="alt9"> The Seattle <i>Times'</i> Brier Dudley interviews Sun's
      CEO Scott McNealy, and it's worth reading. Insight on Sun's Open Source
      strategy, among other things.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://news.com.com/">c|net</a></td>
    <td  class="alt9"><a href="http://news.com.com/2100-1001-949913.html">Verizon
        switches programmers to Linux [and OpenOffice.org]</a><br>
      <em>2002-08-15</em> </td>
  </tr>
  <tr>
    <td  class="alt9"> As Stephen Shankland writes from San Francisco, "The company
      [Verizon] cut costs by replacing programmers' Unix and Windows workstations
      with Linux systems that run OpenOffice instead of Microsoft Office, said
      George Hughes, a Verizon executive overseeing the work. The average desktop
      cost dropped from $20,000 to $3,000 per developer, he said in a talk at
      the LinuxWorld Conference and Expo." </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://techupdate.zdnet.com/">ZDNet:
        TechUpdate</a></td>
    <td  class="alt9"><a href="http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2877182,00.html">Sun
        readies open source desktop</a><br>
      <em>2002-08-14</em> </td>
  </tr>
  <tr>
    <td  class="alt9">Columnist Dan Farber analyzes Sun's plans for Linux and
      the desktop as revealed by Scott McNealy's keynote speech at Linux World
      Expo. Interesting article; insightful.</td>
  </tr>
  <!--cut here-->
  <!--cut here-->
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.newsforge.org/">NewsForge</a></td>
    <td  class="alt9"><a href="http://newsforge.com/newsforge/02/08/14/1633231.shtml?tid=23">LinuxWorld
        diary, part two: not for the fun of it</a><br>
      <em>2002-08-14</em> </td>
  </tr>
  <tr>
    <td  class="alt9">Roblimo continues his wry and trenchant account of this
      years more sober but more trafficked LWE.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk/">The
        Register</a></td>
    <td  class="alt9"> <a href="http://www.theregister.co.uk/content/4/26672.html">Sun
        Makes Licensing Peace Offering to OpenOffice.org</a><br>
      <i>2002-08-14</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Reporter Justin Clift writes on OpenOffice.org's new license
      structure. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.newsforge.org/">NewsForge</a></td>
    <td  class="alt9"> <a href="http://www.nytimes.com/2002/08/12/technology/12SUN.html">LinuxWorld
        diary part one</a><br>
      <i>2002-08-13</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Robin (Roblimo) Miller writes on LWE's first full day;
      interesting and worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.nytimes.com/">The New York
        Times.com</a><br>
      (Free registration required)</td>
    <td  class="alt9"> <a href="http://www.nytimes.com/2002/08/10/technology/10LINU.html">Microsoft
        and Free Software at the Same Show? It's True</a><br>
      <i>2002-08-09</i></td>
  </tr>
  <tr>
    <td  class="alt9"> John Markoff discusses the upcoming Linux World Expo and
      writes on the peculiar presence of Microsoft at the show. Worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://news.com.com/">c|net</a></td>
    <td  class="alt9"> <a href="http://news.com.com/2100-1001-949241.html?tag=fd_top">Open
        source's new weapon: The law?</a><br>
      <i>2002-08-09</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Michael Kanellos and Stephen Shankland write that: &quot;Open-source
      software advocates will unfurl a legislative proposal next week to prohibit
      the state of California from buying software from Microsoft or any other
      company that doesn't open its source code and licensing policies.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.pcmag.com/">PC Magazine</a></td>
    <td  class="alt9"> <a href="http://www.pcmag.com/article2/0,4149,427069,00.asp">OpenOffice
        Appears Dept.</a><br>
      <i>2002-08-06</i></td>
  </tr>
  <tr>
    <td  class="alt9"> As the much-respected columnist John C. Dvorak writes, &quot;Much
      of the recent buzz among computer users has been around the release of
      the all-free office suite OpenOffice.org 1.0, available for download at
      www.openoffice.org. This open-source spin-off of Sun's StarOffice might
      become the biggest threat yet to the Microsoft Office suite monopoly.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://msnbc.com/">MSNBC</a></td>
    <td class="alt9"> <a href="http://www.msnbc.com/news/788759.asp?0dm=N14OT&cp1=1">An
        alternative to Microsoft Office</a><br>
      <i>2002-08-02</i></td>
  </tr>
  <tr>
    <td  class="alt9"> In a very positive article, AP journalist Matthew Fordahl
      reviews OpenOffice.org 1.0 and finds it &quot;sleek&quot; and a real threat
      to Microsoft Office. Worth reading. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://news.com.com/">c|net</a></td>
    <td class="alt9"> <a href="http://news.com.com/2100-1001-947746.html?tag=fd_top">Sun
        muddies StarOffice plans for OS X</a><br>
      <i>2002-08-01</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Writer Joe Wilcox reports on the misunderstanding regarding
      Sun's statements about the possibility of a Mac OS X build of Star Office. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://newsforge.com/">NewsForge</a></td>
    <td class="alt9"> <a href="http://newsforge.com/newsforge/02/07/27/1458204.shtml?tid=1931.staroffice.php">Why
        StarOffice for Mac is Important to Linux</a><br>
      <i>2002-07-31</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Robin &quot;Roblimo&quot; Miller writes compellingly on
      the important relation between the Mac OS X port of OpenOffice.org and
      Linux. Quote: &quot;The Mac OpenOffice release is also a great opportunity
      for corporate IT managers to test the idea of using a truly cross-platform
      office suite without investing in license purchases.&quot; </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://maccentral.macworld.com/">MacCentral</a></td>
    <td class="alt9"> <a href="http://maccentral.macworld.com/news/0207/31.staroffice.php">No
        StarOffice planned for Mac OS X</a><br>
      <i>2002-07-31</i></td>
  </tr>
  <tr>
    <td  class="alt9"> John Dalrymple writes on the port for Mac OS X. Front
      page on MacCentral, the article provides a just account. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://story.news.yahoo.com/">Reuters:
        Technology </a></td>
    <td class="alt9"> <a href="http://story.news.yahoo.com/news?tmpl=story2&cid=569&ncid">Microsoft
        Shifts Licensing Plan</a><br>
      <i>2002-07-30</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Reed Stevenson writes on Microsoft's new licensing plan
      (pay for your life with Office). He also points out that as a result, Linux
      and other open-source software (which is free) is more and more popular. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.newsfactor.com/">Newsfactor</a></td>
    <td class="alt9"> <a href="http://www.newsfactor.com/perl/story/18805.html">OpenOffice
        Gets Its Story Straight</a><br>
      <i>2002-07-30</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Masha Zager, provides an insightful and accurate account
      of reportage on the new Mac OS X port. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.newsfactor.com/">Newsfactor</a></td>
    <td class="alt9"> <a href="http://www.newsfactor.com/perl/story/18763.html">OpenOffice
        for Mac OS X Goes Alpha</a><br>
      <i>2002-07-26</i></td>
  </tr>
  <tr>
    <td  class="alt9"> An excellent article and summary by Masha Zager on the
      newly released port to Mac OS X. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk/">The
        Register</a></td>
    <td class="alt9"> <a href="http://www.theregister.co.uk/content/4/26371.html">OpenOffice
        bats for the Mac</a><br>
      <i>2002-07-25</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Andrew Orlowski reports on the latest port of OpenOffice.org
      for Mac OS X. As he phrases it, &quot;[the port] prints and saves, so there's
      been much progress since a very rough cut appeared early this year.&quot; </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.eweek.com/">eWeek</a></td>
    <td class="alt9"> <a href="http://www.eweek.com/article2/0,3959,392848,00.asp">Red
        Hat Shows a More Limber Linux</a><br>
      <i>2002-07-22</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Jason Brooks writes on the new, improved RedHat 8 (still
      in testing) which will include OpenOffice.org.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://news.com.com/">c|Net</a> </td>
    <td class="alt9"> <a href="http://news.com.com/2100-1023-945406.html">Real
        takes the open-source route </a><br>
      <i>2002-07-22</i></td>
  </tr>
  <tr>
    <td  class="alt9"> As Jim Hu writes, &quot; RealNetworks on Monday unveiled
      a new open-source version of its streaming media technology that supports
      multiple file formats for audio and video, including those that use Microsoft's
      Windows Media technology.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.penguinista.org/">Penguinista
        News </a> </td>
    <td class="alt9"> <a href="http://www.penguinista.org/cgi-bin/article?articleId=2726&showBody=Y">EU
        White Paper On Open Source and Asian Development</a> <br>
      <i>2002-07-10</i></td>
  </tr>
  <tr>
    <td  class="alt9"> In a strong white paper, the EU AsiaITC presents the case
      for &quot;the use and distribution of Free Open Software as a valid and
      necessary official development aid [ODA] tool in developing countries.
      Its benefits are manifold and it may be the only option available for developing
      countries not to miss the 'information technology (IT) revolution,' without
      infringing copyright laws.&quot; Although the author confuses Open Source
      with GNU, the paper is still quite important.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk/">The
        Register</a> </td>
    <td class="alt9"> <a href="http://www.theregister.co.uk/content/23/26081.html">EU
        calls for open source e-government</a> <br>
      <i>2002-07-08</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Electricnews.net reveals that in a &quot;report published
      by the European Commission is encouraging EU governments to share open
      source software resources as a way to cut down on e-government costs.&quot; </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://newsforge.com/">NewsForge</a> </td>
    <td class="alt9"> <a href="http://newsforge.com/article.pl?sid=02/06/17/0153254&mode=nocomment">OpenOffice.org
        seeks P2P technology to help with distribution</a> <br>
      <i>2002-06-17 (posted 07-03)</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Anne Zieger writes on OpenOffice.org's consideration of
      using p2p technology, including that of <a href="http://www.jxta.org/">jxta.org</a>.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk/">The
        Register</a> </td>
    <td class="alt9"> <a href="http://www.theregister.co.uk/content/4/25956.html">MS
        security patch EULA gives Billg admin privileges on your box</a><br>
      <i>2002-06-30</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Characteristically trenchant and sarcastic, the Reg sheds
      light on what Microsoft would rather were kept dark.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.oreillynet.com/">O'Reilly
        Network </a> </td>
    <td class="alt9"> <a href="http://www.oreillynet.com/pub/a/network/2002/06/28/vendor.html">The
        Strange Case of the Disappearing Open Source Vendors</a><br>
      <i>2002-06-28</i></td>
  </tr>
  <tr>
    <td  class="alt9"> Tim O'Reilly writes incisively on the state of Open Source
      vendors. There are some sterling successes, but as O'Reilly writes, &quot;Open
      source is ultimately about empowering users, not vendors.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.nytimes.com/">The New York
        Times</a><br>
      (Free registration required)</td>
    <td class="alt9"> <a href="http://www.nytimes.com/2002/06/20/technology/circuits/20STAT.html">The
        Office Software That Roared</a><br>
      <i>2002-06-20</i></td>
  </tr>
  <tr>
    <td height="104" class="alt9">David Pogue, the <em>Times' </em>chief technology
      columnist, writes a brilliant article extolling OpenOffice.org--and mentioning
      just why it poses such a threat to Microsoft's Office. As he puts it, &quot;The
      world waited for a contender that was so compelling, people might actually
      consider filing for Microsoft divorce. Now there is one. It's called OpenOffice,
      and it has a killer feature: it's free.&quot; A must read.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.linuxtoday.com">LinuxToday</a></td>
    <td class="alt9"> <a href="http://linuxtoday.com/news_story.php3?ltsn=2002-05-20-004-26-NW-DT-SW">PR:
        Ximian To Bundle StarOffice 6.0 with Desktop Offerings </a><br>
      <i>2002-05-20</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;Ximian, Inc. today announced it will bundle the Sun
      StarOffice 6.0 productivity suite across a range of its desktop and software
      management products and services for Linux.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.slashdot.org">Slashdot</a></td>
    <td class="alt9"> <a href="http://interviews.slashdot.org/article.pl?sid=02/05/09/0242219">Danese
        Cooper (of Sun) Finally Answers</a> <br>
      <i>2002-05-09 (posted 6-20)</i></td>
  </tr>
  <tr>
    <td class="alt9">Danese Cooper, Sun's Open Source Diva, answers questions
      posed to her by the Slashdot community. Worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://news.bbc.co.uk/">BBCNews</a></td>
    <td class="alt9"> <a href="http://news.bbc.co.uk/hi/english/business/newsid_2023000/2023127.stm">IBM
        signs Linux deal with Germany</a><br>
      <i>2002-06-03</i></td>
  </tr>
  <tr>
    <td class="alt9">Yet another blow to the hegemon: &quot;IBM announced it
      will offer German Government offices deep discounts on computer systems
      based on Linux, rather than Microsoft's near-ubiquitous Windows operating
      system.&quot; </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.nytimes.com">The New York
        Times</a></td>
    <td class="alt9"> <a href="http://www.nytimes.com/2002/05/20/technology/20SUN.html">Sun
        Takes On Microsoft's Office Software</a> (Requires free registration)<br>
      <i>2002-05-20</i></td>
  </tr>
  <tr>
    <td class="alt9">Laurie J. Flynn reports on Sun's StarOffice release and
      on the chances of Sun's strategy. Given Microsoft's new licensing scheme,
      the timing of Sun's release of StarOffice is quite good; especially in
      places such as Europe, where &quot;resistance [to Microsoft's licensing
      strategy] is especially strong.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.computerworld.com">Computerworld</a></td>
    <td class="alt9"> <a href="http://www.computerworld.com/managementtopics/management/opinion/story/0,10801,71242,00.html">IT
        Buyers Can Cash in - to a Point</a><br>
      <i>2002-05-20</i></td>
  </tr>
  <tr>
    <td class="alt9">Dan Gillmor examines the state of the IT industry and thinks
      that it actually augurs well for IT managers; he then suggests now is the
      time to consider the &quot;increasingly interesting&quot; StarOffice.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.bloomberg.com">Bloomberg.com</a></td>
    <td class="alt9"> <a href="http://quote.bloomberg.com/fgcgi.cgi?T=marketsquote99_news.ht&s=APOHfDhWUU3VuIE1p">Sun
        Micro Targets Top Microsoft Product With Office Program</a><br>
      <i>2002-05-14</i></td>
  </tr>
  <tr>
    <td class="alt9">Describing StarOffice as a &quot;latest attack&quot; by
      the beleaguered company, Bloomberg writer Dan Goodin portrays Sun as deploying
      StarOffice as infantry in a war against Microsoft.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://techupdate.zdnet.com/">ZDNet: Tech Update</a></td>
    <td class="alt9"> <a href="http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2865704,00.html">Considering
        OpenOffice.org</a><br>
      <i>2002-05-15</i></td>
  </tr>
  <tr>
    <td class="alt9">Writes Dan Farber: &quot;A few weeks ago I joined the free
      software camp, replacing my trusty and mostly reliable, Microsoft Office
      with the 1.0 release of OpenOffice.org. By free, I mean OpenOffice.org
      is an open source, zero-cost replacement for Microsoft Office with a comparable
      feature set. My verdict so far: OpenOffice.org rates a 7 on a scale of
      10 from the perspective of an individual user untethered from corporate
      manacles.&quot; </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://techupdate.zdnet.com/">ZDNet:
        Tech Update</a></td>
    <td class="alt9"> <a href="http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2865668,00.html">OpenOffice.org--the
        people's StarOffice</a><br>
      <i>2002-05-15</i></td>
  </tr>
  <tr>
    <td class="alt9">An excellent article by Todd&nbsp;Volz that briefly touches
      on the history of the project, it's constituent projects and on the software
      itself, what it does, how it differs from StarOffice 6.0, and what its
      promise is.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.idg.net.nz/">Computerworld
        New Zealand</a></td>
    <td class="alt9">All eyes on Linux: Microsoft absent as free OS dominates
      show [Link unavailable]<br>
      <i>2002-05-13</i></td>
  </tr>
  <tr>
    <td class="alt9">An examination of the strong open-source realities and possibilities
      represented in the recent Auckland, NZ, Computerworld Expo.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.infoworld.com">InfoWorld</a></td>
    <td class="alt9"> <a href="http://www.infoworld.com/articles/op/xml/02/05/13/020513opsource.xml?0515weli">Opening
        the desktop</a><br>
      <i>2002-05-13</i></td>
  </tr>
  <tr>
    <td class="alt9">A characteristically excellent analysis of the current state
      of Open Source, in this case, of the real possibilities of the open-source
      desktop. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.tandemnews.com">The Washington Post </a> </td>
    <td "54" class="alt9"> <a href="http://www.washingtonpost.com/wp-dyn/articles/A4246-2002May11.html">The
        Office Suite That Lets You See Past Redmond</a> <br>
      <i>2002-05-12</i></td>
  </tr>
  <tr>
    <td class="alt9">As columnist Rob Pegoraro writes, &quot;OpenOffice.org 1.0
      arrived, and Microsoft Office's long winning streak may finally screech
      to a halt. OpenOffice is what many computer users have been waiting and
      wishing for: It's free, open-source, Office-compatible and cross-platform
      (Windows, Linux and Solaris, with a Mac OS X version in early development).&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.tandemnews.com">Tandem </a> </td>
    <td "54" class="alt9"> <a href="http://www.tandemnews.com/viewstory.php?storyid=1305&page=1">A
        free alternative to Microsoft: The New OpenOffice.org 1.0 has finally
        been released to public</a><br>
      <i>2002-05-12</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;The good news.... After a lengthy wait, one of the
      best alternatives to proprietary formats, Openoffice.org, is finally reaching
      maturity. Some weeks ago, in fact, the OpenOffice.org community released
      version 1.0 of the well-known open-source suite.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.slashdot.org">Slashdot</a></td>
    <td "54" class="alt9"> <a href="http://interviews.slashdot.org/article.pl?sid=02/05/09/0242219">Danese
        Cooper (of Sun) Finally Answers</a><br>
      <i>2002-05-09</i></td>
  </tr>
  <tr>
    <td class="alt9">Danese Cooper, Sun's Open Source manager, answers questions
      posed to her from the Slashdot community. Very interesting reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.zdnet.com.com">ZDNet News</a> </td>
    <td "54" class="alt9"> <a href="http://zdnet.com.com/2100-1104-902358.html">Free
        office suite heads to the Mac</a><br>
      <i>2002-05-08</i></td>
  </tr>
  <tr>
    <td class="alt9">Matthew Broersma (of ZDNet UK) writes, &quot;OpenOffice.org,
      the open-source office suite project, has reached a milestone in porting
      the software to Mac OS X with an early release for Mac developers.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.eweek.com">eWeek</a></td>
    <td class="alt9"> <a href="http://www.eweek.com/article/0,3658,s%253D708%2526a%253D26349,00.asp">OpenOffice.org:
        Serious Suite Alternative</a><br>
      <i>2002-05-06</i></td>
  </tr>
  <tr>
    <td class="alt9"> &quot;...Enter OpenOffice.org 1.0, which became available
      for download last week. OpenOffice.org--or OOo, as it has become known--is
      a freely available, open-source office productivity suite that delivers
      enough functionality and Office file format compatibility to make it a
      compelling replacement for the Microsoft suite and a good option for Linux
      and Solaris users.&quot; </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.linuxformat.co.uk/">LinuxFormat </a></td>
    <td class="alt9"> <a href="http://www.linuxformat.co.uk/modules.php?op=modload&name=News&file=article&sid=433">OPENOFFICE.ORG
        COMMUNITY ANNOUNCES OPENOFFICE.ORG 1.O</a><br>
      <i>2002-05-02</i></td>
  </tr>
  <tr>
    <td class="alt9">News from the <a href="/about_us/ooo_release.html">press
        release</a>.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://news.zdnet.co.uk/">ZDNet UK </a></td>
    <td class="alt9"> <a href="Http://news.zdnet.co.uk/story/0,,t269-s2109551,00.html">Free
        office suite reaches milestone release</a><br>
      <i>2002-05-02</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;OpenOffice.org developers have put the finishing touches
      on their productivity suite, which provides users and businesses with an
      alternative to Microsoft's Office suite. The free OpenOffice uses the same
      code base as the StarOffice software for which Sun Microsystems charges
      a fee.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://zdnet.com.com/">ZDNet News </a></td>
    <td class="alt9"> <a href="http://zdnet.com.com/2100-1104-897370.html">Free
        OpenOffice picks up from StarOffice</a><br>
      <i>2002-05-02</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;[C]ongratulations[...,] people. We'll download it
      as soon as we can get in.&quot; The article is interesting, and examines
      the nuances of the nature of 1.0.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.computerworld.com/">Computerworld</a></td>
    <td class="alt9"> <a href="http://www.computerworld.com/softwaretopics/os/story/0,10801,70710,00.html">Gartner:
        Microsoft licensing could push users to StarOffice</a><br>
      <i>2002 May 01</i></td>
  </tr>
  <tr>
    <td class="alt9">Patrick Thebodeau reports on the prestigious and Gartner
      report which opines that, &quot;End-user unrest over Microsoft Corp.'s
      enterprise licensing plan may prompt some companies to move from Microsoft
      Office suite to rival Sun Microsystems Inc.'s personal productivity suite,
      StarOffice, predicts Gartner Group Inc. &quot; </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.computerworld.com/">Computerworld</a></td>
    <td class="alt9"> <a href="http://www.computerworld.com/softwaretopics/software/appdev/story/0,10801,70703,00.html">OpenOffice.org
        releases Version 1.0 of its free office suite</a><br>
      <i>2002 May 01</i></td>
  </tr>
  <tr>
    <td class="alt9">As Todd Weiss writes, &quot;After 18 months of development,
      Version 1.0 of the open-source OpenOffice.org productivity suite was released
      today for free download.&quot; </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.bityard.com">bityard</a></td>
    <td class="alt9"> <a href="http://www.bityard.com/article.php?sid=259">OpenOffice
        1.0 Unleashed against MS Office</a><br>
      <i>2002 May 01</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;Amid the dominance found in the office productivity
      sector, Sun Microsystems through it OpenOffice.org project has released
      the first version of a community based effort to unseat Microsoft&#8217;s
      massive stranglehold.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.theregister.co.uk/">LinuxWorld.com.au</a></td>
    <td class="alt9"> <a href="http://www.linuxworld.com.au/news.php3?nid=1458&tid=1">OpenOffice
        1.0 available for free download</a> <br>
      <i>2002 May 01</i></td>
  </tr>
  <tr>
    <td class="alt9">Featuring commentary by OpenOffice.org's own Zaheda Bhorat
      and Sam Hiser.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.itworld.com">ITworld.com</a></td>
    <td class="alt9"> <a href="http://www.itworld.com/App/891/020501openoffice/">OpenOffice
        1.0 available for free download</a> <br>
      <i>2002 May 01</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;A free version of Sun Microsystems Inc.'s StarOffice
      business productivity suite is now available for download from OpenOffice.org,
      an open-source developer community sponsored by Sun.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://weblog.flora.ca">Flora</a></td>
    <td class="alt9"> <a href="http://www.theregister.co.uk/content/4/25112.html">OpenOffice.org
        Community announces OpenOffice.org 1.0: Free office productivity </a><br>
      <i>2002 May 01</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;Global Community builds full-featured office suite
      with revolutionary momentum.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"


Index

Documents

Courses

><a href="http://www.geek.com">Geek.com</a></td>
    <td class="alt9"> <a href="http://www.theregister.co.uk/content/4/25112.html">OpenOffice
        1.0 </a><br>
      <i>2002-05-02</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;OpenOffice has reached the 1.0 release, meaning it's
      stable and ready for prime-time. &quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.cnet.com">c|Net</a></td>
    <td class="alt9"> <a href="http://news.com.com/2100-1001-897986.html">Sun's
        OpenOffice open for business</a> <br>
      <i>2002-05-02</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;Sun Microsystems and its open-source allies have released
      version 1.0 of OpenOffice, a free version of Sun's StarOffice desktop software
      and a competitor to Microsoft Office.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.wininformant.com/">WinInfo</a></td>
    <td class="alt9"> <a href="http://www.wininforma%0Dhttp://www.wininformant.com/Articles/Index.cfm?ArticleID=25072nt.com/Articles/Index.cfm?ArticleID=25072%0Dhttp://www.wininformant.com/Articles/Index.cfm?ArticleID=25072">Free
        Office Suite Now Shipping</a><br>
      <i>2002-05-02</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;The OpenOffice.org community has finally unleashed
      the long-awaited initial release of OpenOffice.org 1.0, a full-featured,
      free Microsoft Office alternative.&quot;</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.oregonlive.com/">Slashdot</a></td>
    <td class="alt9"><a href="http://slashdot.org/articles/02/05/01/1232239.shtml?tid=162">OpenOffice.org
        Team Releases Version 1.0</a><br>
      <i>2002 May 01</i></td>
  </tr>
  <tr>
    <td class="alt9">Slashdot congratulates OpenOffice.org and there are many,
      many responses.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk/">The
        Register</a></td>
    <td class="alt9"> <a href="http://www.theregister.co.uk/content/4/25112.html">OpenOffice
        suite goes 1.0</a><br>
      <i>2002 May 01</i></td>
  </tr>
  <tr>
    <td class="alt9">&quot;[C]ongratulations[...,] people. We'll download it
      as soon as we can get in.&quot; The article is interesting, and examines
      the nuances of the nature of 1.0.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.oregonlive.com/">Oregon<i>Live</i></a></td>
    <td class="alt9"> <a href="http://www.oregonlive.com/news/oregonian/steve_duin/index.ssf?/xml/story.ssf/html_standard.xsl?/base/all_wire_stories/101386428029222529.xml">Microsoft
        puts the squeeze on NW schools</a><br>
      <i>2002 April 25</i></td>
  </tr>
  <tr >
    <td class="alt9"> Microsoft exists to make money. Any doubts? Then read this
      article.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://newsforge.com">NewsForge</a></td>
    <td class="alt9"> <a href="http://newsforge.com/newsforge/02/04/21/149237.shtml?tid=19">Klez
        and OpenOffice should both spur Linux use</a> <br>
      <i>2002 April 22</i></td>
  </tr>
  <tr >
    <td class="alt9">Reasons to use Linux and OpenOffice.org abound. But as Robin
      Miller points out, a compelling reason is: viruses. If M$ can think of
      Linux and GPL as a pox on capitalism, we can think of M$ as a vector to
      truly destructive viruses. </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register </a></td>
    <td class="alt9"> <a href="http://www.theregister.co.uk/content/4/24970.html">Gates:
        GPL will eat your economy, but BSD's coo</a>l<br>
      <i>2002 April 22</i></td>
  </tr>
  <tr >
    <td class="alt9">Surprise! As John Lettice figures it, Bill G is paranoid!
      Seriously, Bill's opposition to Linux and GPL is legendary; and his recent
      performance in front of Congress a deeply unsettling vision of how Microsoft
      sees the world.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://seattletimes.nwsource.com/html/home/">seattletimes.com</a></td>
    <td class="alt9"> Feds
        might use Microsoft product for online ID<br>
      <i>2002 April 15</i></td>
  </tr>
  <tr >
    <td class="alt9">Brier Dudley reports on how the federal government &quot;might
      use Microsoft's Passport technology to verify the online identity of America's
      citizens, federal employees and businesses, according to the White House
      technology czar.&quot; </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://news.com.com/">c|net</a></td>
    <td class="alt9"> <a href="http://news.com.com/2010-1075-882846.html">The
        Microsoft penalty that isn't</a><br>
      <i>2002 April 15</i></td>
  </tr>
  <tr >
    <td class="alt9">Bruce Perens writes that, &quot;In its antitrust settlement
      with the Justice Department and nine states, Microsoft promised to publish
      technology that would allow competing products to interoperate with Windows.
      But Microsoft has sidestepped the penalty by crafting a technology license
      that excludes the company's only viable competitor.&quot;</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.dailystarnews.com/magazine/">Star
        Weekend Magazine</a></td>
    <td class="alt9"> <a href="http://www.dailystarnews.com/magazine/2002/03/03/opinion.htm">How
        Microsoft will Kill Bangladesh</a> <br>
      <i>2002 March 22</i></td>
  </tr>
  <tr >
    <td class="alt9">In a compelling article, Zeeshan Hasan analyzes the situation
      facing Bangladesh in regards to Microsoft.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.consultingtimes.com">Consulting
        Times </a></td>
    <td class="alt9"> <a href="http://www.consultingtimes.com/articles/staroffice/sobusiness.html">StarOffice
        Rolls Out Its Business Mode</a>l<br>
      <i>2002 April 03</i></td>
  </tr>
  <tr >
    <td class="alt9">Stephen E. Harris, Publisher, ConsultingTimes, discusses
      Sun's Mike Rogers, vice president and general manager of desktop and office
      productivity at Sun. A must read.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://news.zdnet.co.uk">ZDNet.UK</a></td>
    <td class="alt9"> <a href="http://news.zdnet.co.uk/story/0,,t269-s2107509,00.html">Eric
        Raymond: Why open source will rule</a><br>
      <i>2002 April 02</i></td>
  </tr>
  <tr >
    <td class="alt9">Matthew Broersma interviews noted Open Source theorists
      and polemicist on his favorite subject. Fine quote on OpenOffice.org.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.vnunet.com">vnunet.com</a></td>
    <td class="alt9"> <a href="http://www.vnunet.com/News/1130353">Councils want
        an Office alternative</a><br>
      <i>2002 March 22</i></td>
  </tr>
  <tr >
    <td class="alt9">Sarah Arnott writes that &quot;UK councils are talking to
      Microsoft's rivals about developing a genuine open-source alternative to
      MS-Office.&quot;</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.vnunet.com">vnunet.com</a></td>
    <td class="alt9"> <a href="http://www.vnunet.com/News/1130353">Councils want
        an Office alternative</a><br>
      <i>2002 March 22</i></td>
  </tr>
  <tr >
    <td class="alt9">Sarah Arnott writes that &quot;UK councils are talking to
      Microsoft's rivals about developing a genuine open-source alternative to
      MS-Office.&quot;</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.sun.com/">Sun Microsystems,
        Inc.</a></td>
    <td class="alt9"> A Closer Look at Linux: Sun's Open Source Strategy<br>
      <i>2002 March 22</i></td>
  </tr>
  <tr >
    <td class="alt9">As detailed in this press release, &quot;Sun vice president
      and general manager, Anil Gadre, joined with Stephen DeWitt, vice president
      and general manager of Content Delivery and Edge Computing at Sun Microsystems,&quot; speak
      on Sun's Open Source strategy. </td>
  </tr>
  <!--cut here-->
  <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/smi/Press/sunflash/2002-03/sunflash.20020319.1.html">SUN
        EXPANDS STAROFFICE[TM] SOFTWARE OFFERING<br>
      Customer and Partner Feedback Drives Increased Services and Support Low
      Cost Payment Model to be Introduced</a><br>
      <i>2002 March 21</i></td>
  </tr>
  <tr >
    <td class="alt9">In this press release, Sun briefly explains its policy regarding
      StarOffice and OpenOffice.org</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://news.com.com/">c|net</a></td>
    <td class="alt9"> <a href="http://news.com.com/2009-1001-866026.html">Commentary:
        StarOffice is now more viable</a><br>
      <i>2002 March 21</i></td>
  </tr>
  <tr >
    <td class="alt9">Michael Silver, Gartner analyst, argues that StarOffice &quot;yet
      may [...] pose the greatest threat to Microsoft Office.&quot; </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://news.zdnet.co.uk/">ZDNetUK</a></td>
    <td class="alt9"> <a href="http://news.zdnet.co.uk/story/0,,t269-s2106859,00.html">MandrakeSoft
        adds office software to Linux</a><br>
      <i>2002 March 20</i></td>
  </tr>
  <tr >
    <td class="alt9">As Matthew Broersma writes, the French Linux distributor
      adds OpenOffice.org to its latest release.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.linuxworld.com.au/">LinuxWorld
        (Australia) </a></td>
    <td class="alt9"><a href="http://www.linuxworld.com.au/news.php3?tid=2&nid=1356">StarOffice
        goes commercial, and stays open-source </a><br>
      <i>2002 March 20</i></td>
  </tr>
  <tr >
    <td class="alt9">Tom Krazit, IDG News Service, writes on Sun's plans for
      StarOffice and OpenOffice.org, and says nice things about OpenOffice.org.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/24395.html">Would
        you pay $5 to rescue Mandrake?</a><br>
      <i>2002 March 12</i></td>
  </tr>
  <tr >
    <td class="alt9">Mandrake calls on the Open Source community for help. Thomas
      Greene writes on what one can do to help this fine, community-oriented
      Open Source company survive. </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/24397.html">Cost
        the key factor in pushing business to open source</a><br>
      <i>2002 March 12</i></td>
  </tr>
  <tr >
    <td class="alt9">John Lettice reports on a survey of business leaders and
      their views on Open Source.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.linuxplanet.com">LinuxPlanet</a></td>
    <td class="alt9"><a href="http://www.linuxplanet.com/linuxplanet/reviews/4078/1/">The
        StartX Files: Between the Sheets Roundup</a><br>
      <i>2002 March 01</i></td>
  </tr>
  <tr >
    <td class="alt9">Briann Proffitt continues his very favorable comparison
      of Linux desktop applications. Guess which app comes out ahead?</td>
  </tr>
  <!--cut here-->
  <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/4/24258.html">UK
        Gov deal opens up 2m desktops to MS rivals</a><br>
      <i>2002 March 01</i></td>
  </tr>
  <tr >
    <td class="alt9">Be proud if your British: According to John Lettice, &quot;The
      UK Government's Office of Government Commerce has struck a &quot;ground-breaking&quot; three-cornered
      deal covering the use of desktop productivity software in Government departments.&quot; This
      deal allows the government to obtain StarOffice--in vast quantities.</td>
  </tr>
  <!--cut here-->
  <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/55/24248.html">PHP
        flaws pose hacker risk</a><br>
      <i>2002 February 28</i></td>
  </tr>
  <tr >
    <td class="alt9">John Leyden reports that &quot;Flaws in the popular open
      source scripting language PHP could allow crackers to execute arbitrary
      code on a victim's system or crash a Web server, security clearing house
      CERT has warned.&quot; </td>
  </tr>
  <!--cut here-->
  <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/4/24192.html">Sun
        to charge for StarOffice (Linux and Windows</a>)<br>
      <i>2002 February 25</i></td>
  </tr>
  <tr >
    <td class="alt9">John Leyden writes on the report by <a href="http://www.heise.de/newsticker/data/db-24.02.02-000/" target="_blank">Heise
        Online</a> that Sun will charge for the Windows and Linux but not Solaris
        versions of its proprietary <a href="http://www.sun.com/staroffice/">StarOffice</a>.
        OpenOffice.org will of course remain free--as in beer and as in speech.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.infoworld.com">InfoWorld.com</a></td>
    <td class="alt9"><a href="http://www.infoworld.com/articles/op/xml/02/02/18/020218opsource.xml">The
        Open Source: Column</a><br>
      <i>2002 February 20</i></td>
  </tr>
  <tr >
    <td class="alt9">Columnist Russel Pavlicek analyzes the tension between Sun's <a href="http://www.netbeans.org">Netbeans</a> and
      IBM's <a href="http://www.eclipse.org">Eclipse</a>. An excellent account
      of Open Source.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/24131.html">Danish
        local govt. rebels against MS license terms</a><br>
      <i>2002 February 19</i></td>
  </tr>
  <tr >
    <td class="alt9"> As John Leyden reports, the Danish government is seriously
      considering Open Source alternatives to Microsoft software because of the
      Redmond company's pricing scheme.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/24048.html">Report
        favours open source, Windows mix for Bundestag</a><br>
      <i>2002 February 13</i></td>
  </tr>
  <tr >
    <td class="alt9"> John Lettice reports on the latest developments regarding
      Open Source in one of Europe's most interesting parliaments, the Bundestag. </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.gcn.com">GCN.com</a></td>
    <td class="alt9"><a href="http://gcn.com/vol1_no1/daily-updates/17874-1.html">Microsoft
        stops new work to fix bugs</a> <br>
      <i>2002 February 04</i></td>
  </tr>
  <tr >
    <td class="alt9"> As William Jackson reports, Microsoft has stopped work
      on its software to finally get rid of all its bugs. </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://desktoplinux.com">DesktopLinux.com</a></td>
    <td class="alt9"><a href="http://news.com.com/2100-1001-832463.html">Open
        Source on the Business Desktop</a> <br>
      <i>2002 February 08</i></td>
  </tr>
  <tr >
    <td class="alt9"> In Part 3, Adam Wiggins examines the desktop offerings
      for Linux users. And guess what program is the &quot;critical application&quot; for
      Linux users? </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.cnet.com">c|net</a></td>
    <td class="alt9"><a href="http://news.com.com/2100-1001-832463.html">Linux-loving
        McNealy dons penguin outfit</a> <br>
      <i>2002 February 08</i></td>
  </tr>
  <tr >
    <td class="alt9"> As Stephen Shankland writes from San Francisco, &quot;In
      a move to erase doubts about the sincerity of Sun Microsystems' move to
      embrace the Linux operating system, Chief Executive Scott McNealy took
      the stage Thursday wearing a penguin suit.&quot; </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/23964.html">MS
        chief lashes out at German Free Software petition</a><br>
      <i>2002 February 07</i></td>
  </tr>
  <tr >
    <td class="alt9"> John Lettice writes on Microsoft's reactionary politics
      regarding Open Source in Germany.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/23978.html">Stallman
        issues Porto Alegre clarification</a><br>
      <i>2002 February 07</i></td>
  </tr>
  <tr >
    <td class="alt9"> Intrepid Register reporter in the US Andrew Orlowski reports
      on Stallman's clarification regarding his seemingly harsh words regarding
      GNOME. (He was quoted out of context.) Of interest because it signals the
      travails of mapping Open Source/Free Software to business.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.zdnet.com">ZDNet News </a></td>
    <td class="alt9"><a href="http://zdnet.com.com/2100-1104-828802.html">Q&amp;A:
        Red Hat CEO says Linux won't rule desktop</a><br>
      <i>2002 February 04</i></td>
  </tr>
  <tr >
    <td class="alt9"> In an interview with Matthew Broersma, &quot;Red Hat Chairman
      Bob Young explains why converting Unix customers is easy; why open source
      will win the day on the Internet; and why Linux will never replace Windows
      on the desktop.&quot;</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.vnunet.com">vnunet.com</a></td>
    <td class="alt9"><a href="http://www.newsforge.com/article.pl?sid=02/02/04/2355205">Controversy
        brews in Linux camp</a><br>
      <i>2002 February 04</i></td>
  </tr>
  <tr >
    <td class="alt9"> James Middleton reports on the controversy surrounding &quot;vnunet.com's
      article on the higher number of vulnerabilities found in Linux last year
      as opposed to Windows.&quot;</td>
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.cnet.com">c|net</a></td>
    <td class="alt9"><a href="http://news.com.com/2100-1001-828152.html">The
        week in review: Penguin power</a><br>
      <i>2002 February 03</i></td>
  </tr>
  <tr >
    <td class="alt9"> Steven Musil reports on last week's LinuxWorld Expo in
      New York, where OpenOffice.org had one of the more interesting exhibits.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register &nbsp; </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/53/23905.html">US
        mulls Linux for world's biggest computer</a><br>
      <i>2002 January 27</i></td>
  </tr>
  <tr >
    <td class="alt9"> As The Register's US reporter Andrew Orlowski reports from
      NY LinuxWorld, Linux may be the operating system of choice for the vast
      new computer (&quot;Purple&quot;) being planned. Size of computer? not
      more than half an acre. </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.cnet.com">c|net</a></td>
    <td class="alt9"><a href="http://news.com.com/2100-1001-823734.html">Ximian
        changes open-source license</a><br>
      <i>2002 January 27</i></td>
  </tr>
  <tr >
    <td class="alt9"> Ximian's Open Source license has gotten less restrictive,
      Stephen Shankland reports.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.cio.com">CIO &nbsp; </a></td>
    <td class="alt9"><a href="http://www.cio.com/archive/011502/meter.html">The
        Meter is Running</a> <br>
      <i>2002 January 15</i></td>
  </tr>
  <tr >
    <td class="alt9"> Scott Berinato writes on how CIOs are balking at Microsoft's
      2001 licensing scheme. </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.cnet.com">c|net</a></td>
    <td class="alt9"><a href="http://www.cnet.com/software/0-811003-8-8581076-1.html">StarOffice
        6.0 Beta (Review)</a> <br>
      <i>2002 January 25</i></td>
  </tr>
  <tr >
    <td class="alt9"> Gregg Keizer reviews the latest software offering from
      Sun and ignores Openoffice.org.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://business-times.asia1.com.sg">The
        Business Times (Singapore) &nbsp; </a></td>
    <td class="alt9"><a href="http://business-times.asia1.com.sg/news/story/0,2276,33706-1011643140,00.html?">Civil
        service eyes non-Microsoft software</a> <br>
      <i>2002 January 21</i></td>
  </tr>
  <tr >
    <td class="alt9"> Tang Weng Fai reports on the possible move by the Singapore
      civil service to StarOffice.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register &nbsp; </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/7/23746.html">Who
        wins if AOL swallows RedHat?</a><br>
      <i>2002 January 21</i></td>
  </tr>
  <tr >
    <td class="alt9"> Andrew Orlowski trenchantly analyzes the possible merger
      between behemoth AOL/Time Warner and RedHat.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register &nbsp; </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/23694.html">Borland
        CEO recants, rallies nation</a><br>
      <i>2002 January 16</i></td>
  </tr>
  <tr >
    <td class="alt9"> In an update to the story below (&quot;Borland demands
      users pay for license audit&quot;), Andrew Orlowsky reports that Dale Fuller
      has apologized for the language and stricken it as a mistake.</td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register &nbsp; </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/23658.html">Borland
        demands users pay for license audit</a><br>
      <i>2002 January 14</i></td>
  </tr>
  <tr >
    <td class="alt9"> As Andrew Orlowsky reports, &quot;Borland reserves the
      right, for one year after the license expires, to enter your home and access
      your system and accounts to perform an audit.&quot; What next? </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register &nbsp; </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/23655.html">Settlement
        terms nixed by Judge</a><br>
      <i>2002 January 11</i></td>
  </tr>
  <tr >
    <td class="alt9"> Andrew Orlowsky reports on the nixing of Microsoft's wish
      to absolve itself by supplying its products free to young children in school.
      As the presiding judge described the terms of the agreement, &quot;Microsoft's
      $1.1 billion giveaway of computers software to US schools would constitute
      'court-approved predatory pricing,'if approved, said Judge Motz.&quot; </td>
  </tr>
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.theregister.co.uk">The Register &nbsp; </a></td>
    <td class="alt9"><a href="http://www.theregister.co.uk/content/4/23653.html">UK
        fails to make the most of open source</a><br>
      <i>2002 January 11</i></td>
  </tr>
  <tr >
    <td class="alt9"> John Leyden writes that &quot;UK firms are failing to exploit
      open source software as much as they might because of uncertainty about
      its business benefits.&quot; </td>
  </tr>
  <!--cut here-->
  <!--cut here-->
  <!--cut here-->
  <tr >
    <td rowspan="2" class="alt8"><a href="http://www.govtalk.gov.uk/howitworks/howitworks.asp">UKGovTalk &nbsp; </a></td>
    <td class="alt9"><a href="http://www.govtalk.gov.uk/interoperability/egif_document.asp?docnum=430">Analysis
        of the Impact of Open Source Software</a> <br>
      <i>2002 January 02</i></td>
  </tr>
  <tr >
    <td class="alt9"> This paper examines how the OSS movement could impact the
      UK Government's policy towards the worldwide market in software infrastructure
      and software applications.</td>
  </tr>
  <!--cut here-->
  
</table></body>
</html>

