<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>News 2003-02: February</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 height="24" colspan="2"  class="alt4">2003-02: February</td>
  </tr>  
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.aaxnet.com/editor/editidx.html">Andrew
        Grygus: Opinions</a></td>
    <td  class="alt9"> <a href="http://www.aaxnet.com/editor/edit029.html">2003
        And Beyond</a> <br>
              <em>2003-02-28</em></td>
  </tr>
  <tr>
    <td  class="alt9">Andrew Grygus's informed and informing opinion on the state
      and future of IT. Favorable mention of OpenOffice.org.</td>
  </tr>
  <!--cut here-->
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.usatoday.com/">USA Today.com</a></td>
    <td  class="alt9"> <a href="http://www.usatoday.com/money/industries/technology/2003-02-26-desktop_x.htm">Rivals
        chip away at Microsoft's dominance</a> <br>
              <em>2003-02-28</em></td>
  </tr>
  <tr>
    <td  class="alt9"> Byron Acohido writes on the increasing threat posed to
      Microsoft Office by Open Source alternatives, such as OpenOffice.org</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.bangkokpost.com/">Bangkok
        Post</a></td>
    <td  class="alt9"> <a href="http://search.bangkokpost.co.th/bkkpost/2003/feb2003/bp20030212/database/12feb2003_data53.html">Support
        growing for free Thai office suite</a> <br>
              <em>2003-02-12</em></td>
  </tr>
  <tr>
    <td  class="alt9"> Karnjana Karnjanatawe writes that, "Use of the free Thai-language
      office suite, Pladao Office, is starting to catch on among corporate users,
      which are attracted to the alternative to the Microsoft Office suite as
      a way to reduce investment costs." [Pladao Office is Thai OpenOffice.org
      -Ed.] Worth reading.</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/03/02/18/1540254.shtml?tid=11">Interview:
        OpenOffice.org is gaining momentum </a> <br>
              <em>2003-02-19</em></td>
  </tr>
  <tr>
    <td  class="alt9"> Robin 'Roblimo' Miller interviews Marketing Co-Lead Sam
      Hiser. "This article is a lightly-edited transcript of [an IRC] conversation.
      It sounds like the already excellent OOo is getting even better -- and
      more popular -- every month." </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=7832">Swiss
        tax office distributes open source software</a> <br>
              <em>2003-02-17</em></td>
  </tr>
  <tr>
    <td  class="alt9">The original article is in <a href="http://www.heise.de/newsticker/data/pmz-14.02.03-000/" target="_blank">German</a>,
      but the British Inquirer has a pointed account of the Tax Office's use
      of OpenOffice.org.</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/03/02/09/2138247.shtml?tid=51">Anger
        spews over Microsoft appearance at yet another Open Source event</a> <br>
              <em>2003-02-11</em></td>
  </tr>
  <tr>
    <td  class="alt9">Tina Gasperson reports that "Now that some people in the
      Free Software community have discovered Microsoft's Shared Source guru
      Jason Matusow is slated to speak at the Open Source for National and Local
      eGovernment Programs in the U.S.and EU conference, they are gunning for
      the show's organizer." Read more; the issues are interesting and have recently
      consumed the Marketing <a href="http://marketing.openoffice.org/servlets/BrowseList?listName=dev&amp;by=thread&amp;from=24140&amp;to=null&amp;count=26&amp;first=22">list</a>. </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/03/02/10/0238202.shtml?tid=11">Open
        Source in Mexico</a> <br>
              <em>2003-02-04</em></td>
  </tr>
  <tr>
    <td  class="alt9">Robin 'Roblimo' Miller writes on the state of Open Source
      in Mexico. Worth reading. </td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.linuxworld.com/">c|net</a></td>
    <td  class="alt9"> <a href="http://www.linuxworld.com/2003/0207.barr.html">Trail
        of tears: MySQL, ODBC & OpenOffice 1.0</a> <br>
              <em>2003-02-07</em></td>
  </tr>
  <tr>
    <td  class="alt9">Joe Barr gives some excellent tips for integrating OpenOffice.org
      with databases.</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-983315.html?tag=fd_top">South
        Africa embraces open source </a> <br>
              <em>2003-02-04</em></td>
  </tr>
  <tr>
    <td  class="alt9">Paul Festa writes on the exciting news that Sout Africa
      has embraced Open Source Software. Worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www-106.ibm.com/developerworks/xml">IBM
        Developer Works</a></td>
    <td  class="alt9"> <a href="http://www-106.ibm.com/developerworks/xml/library/x-think15/">Thinking
        XML: The open office file format </a> <br>
              <em>2003-02-04</em></td>
  </tr>
  <tr>
    <td  class="alt9">Uche Ogbuji writes a very positive review of OpenOffice.org
      and its XML file format. Here's the lead: "OpenOffice.org is a mature,
      open source, front office applications suite with the advantage of a saved
      file format based on an open XML DTD. This gives users and developers an
      extraordinary amount of flexibility and power in dealing with work produced
      in 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-1001-983204.html">Advocates
        join to promote desktop Linux </a> <br>
              <em>2003-02-03</em></td>
  </tr>
  <tr>
    <td  class="alt9">Stephen Shankland reports on the new Desktop Linux Consortium,
      of which OpenOffice.org is a founding member.</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,857673,00.asp">Microsoft
        Warns SEC of Open-Source Threat </a> <br>
              <em>2003-02-03</em></td>
  </tr>
  <tr>
    <td  class="alt9">As reported by Peter Galli, Microsoft has stated in an
      SEC filing that OSS may lower its bottom line because it may have to charge
      less.</td>
  </tr>
 
</table>
</body>
</html>

