<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>News 2003-03: March</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">2003-03: March</td>
  </tr>
  <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-1046-994264.html?tag=fd_top">OpenOffice
        ready for world tour</a> <br>
              <em>2003-03-26</em></td>
  </tr>
  <tr>
    <td  class="alt9">David Becker reports on the newly released OpenOffice.org
      1.1beta.</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/03/21/1130206.shtml?tid=11">Open
        Source in Government Conference Wrapup </a> <br>
              <em>2003-03-24</em></td>
  </tr>
  <tr>
    <td  class="alt9">Robin "Roblimo" Miller wraps up his reportage on the international <a href="http://www.egovos.org/march-2003/index.html" target="_blank">EGovOS
        conference</a> in Washington, D.C., at which OpenOffice.org presented
        a popular paper.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://searchenterpriselinux.com/">SearchEnterpriseLinux</a></td>
    <td  class="alt9"> <a href="http://searchenterpriselinux.techtarget.com/qna/0,289202,sid39_gci888081,00.html">OpenOffice.org,
        StarOffice gaining momentum, expert say </a> <br>
              <em>2003-03-24</em></td>
  </tr>
  <tr>
    <td  class="alt9">In an interview with Jan Stafford, Solveig Haugland, who
      has written the <i>OpenOffice.org 1.0 Resource Kit</i>, <i>StarOffice 5.2
      Companion,</i> and <i>StarOffice 6.0 Office Suite Companion</i>, discusses
      OpenOffice.org and its future. Worth reading.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.internetnews.com/">Internetnews</a></td>
    <td  class="alt9"> <a href="http://www.internetnews.com/dev-news/article.php/2109101">Will
        Office 2003 Lead to Lock-in? </a> <br>
              <em>2003-03-13</em></td>
  </tr>
  <tr>
    <td  class="alt9">Thor Olavsrud analyzes Microsoft Office's XML implementation.
      OpenOffice.org's Gary Edwards, the Project's representative to the <a href="http://www.oasis-open.org/committees/office/" target="_blank">OASIS
      Open Office XML Format Technical Committee</a>, insightfully discusses
      the implications and shortcomings of Microsoft's strategy.</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/29635.html">Oregon
        considers Open Source software legislation </a> <br>
              <em>2003-03-07</em></td>
  </tr>
  <tr>
    <td  class="alt9">Robin Miller, NewsForge.com, reports on Oregon's move to
      require state government to consider Open Source software (not necessarily
      use it).</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/print_article/0,3668,a=38162,00.asp">Sun
        Set to Release StarOffice Beta</a> <br>
              <em>2003-03-06</em></td>
  </tr>
  <tr>
    <td  class="alt9">Peter Galli reports on the new beta of StarOffice 6.1;
      also discusses the upcoming beta of OpenOffice.org 1.1. Worth reading.</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,910475,00.asp">Take
        on the Challenge to Invest Technology</a> <br>
              <em>2003-03-03</em></td>
  </tr>
  <tr>
    <td  class="alt9">Eric Lundquist introduces a series of interesting articles
      on Sun's strategies for the future. Good mention 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/29587.html">Open
        Source puts down roots in Finland</a> <br>
              <em>2003-03-05</em></td>
  </tr>
  <tr>
    <td  class="alt9">Bruce Tober writes on Finland's embrace of Open Source
      technologies, including SOT Office, which is based on OpenOffice.org.</td>
  </tr>
  
</table>
</body>
</html>

