<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>News 2003-01: January</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-01: January</td>
  </tr>
    
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://newsforge.com/">NewsForge</a></td>
    <td  class="alt9"> <a href="http://newsforge.com/newsforge/03/01/27/2324236.shtml?tid=4">Predicting
        the weather with Linux at the National Weather Service</a> <br>
              <em>2003-01-29</em></td>
  </tr>
  <tr>
    <td  class="alt9">Norbert Cartagena reports on the deployment not only of
      Linux but of OpenOffice.org by the National Weather Service. </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/01/25/167242.shtml?tid=23">LinuxWorld
        wrapup: The futility of trying to see it all </a> <br>
              <em>2003-01-25</em></td>
  </tr>
  <tr>
    <td  class="alt9">Robin Miller give the final report on LinuxWorld New York
      2003. </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-981287.html?tag=fd_lede1_hed"> It's
        a LinuxWorld, after all </a> <br>
              <em>2003-01-19</em></td>
  </tr>
  <tr>
    <td  class="alt9">Stephen Shankland writes that, "Linux advocates will convene
      at a trade show in New York this week to promote their wares, entice customers,
      swap business cards and make their case that the operating system is growing
      up."</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-981287.html?tag=fd_lede1_hed"> It's
        a LinuxWorld, after all </a> <br>
              <em>2003-01-19</em></td>
  </tr>
  <tr>
    <td  class="alt9">Stephen Shankland writes that, "Linux advocates will convene
      at a trade show in New York this week to promote their wares, entice customers,
      swap business cards and make their case that the operating system is growing
      up."</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.bizasia.com/">BizAsia.com</a></td>
    <td  class="alt9"> <a href="http://www.bizasia.com/internet_it_open_source_/dyi63/microsoft_dropped_by_2nd.htm">Largest
        Danish county selects text-standard supported by Open-Source software</a> <br>
              <em>2003-01-03</em></td>
  </tr>
  <tr>
    <td  class="alt9">An encouraging report on the move by Denmark's largest
      county to adopt OpenOffice.org in lieu of MS Office.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.linuxquestions.org/">LinuxQuestions</a></td>
    <td  class="alt9"> <a href="http://www.quiknet.com/~frcn/Computer.html">OpenOffice.org
        Nominated for 2002 LinuxQuestions.org Members Choice Awards</a> <br>
              <em>2003-01-02</em></td>
  </tr>
  <tr>
    <td  class="alt9">OpenOffice.org has been nominated for the Members Choice
      Award at LinuxQuestions. Please <a href="http://www.linuxquestions.org/quest...p?s=&amp;forumid=21" target="_blank">vote</a>.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.ap.org">AP
        Tech News</a></td>
    <td  class="alt9"> <a href="http://www.quiknet.com/~frcn/Computer.html">Sun
        Gives Away New Version of StarOffice </a> <br>
              <em>2003-01-02</em></td>
  </tr>
  <tr>
    <td  class="alt9">Jan Olsen reports on the latest move by Sun to further
      distribute StarOffice, Sun's proprietary derivative of OpenOffice.org.</td>
  </tr>
  <!--cut here-->
  <tr>
    <td rowspan="2" class="alt8"> <a href="http://www.quiknet.com/~frcn/Computer.html">Feather
        River Canyon News</a></td>
    <td  class="alt9"> <a href="http://www.quiknet.com/~frcn/Computer.html">Concow
        Computer Chronicles: That's No Help</a> <br>
              <em>2003-01-01</em></td>
  </tr>
  <tr>
    <td  class="alt9">Columnist Randy Glass discusses OpenOffice.org and Open
      Source.</td>
  </tr>
 
</table>
</body>
</html>

