<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<h2>Spotlight: On Developers and Technology</h2>
<p><i>2002-02-02</i>
<p>&nbsp; 
<h4>Spotlight 19: On Viewers and Porting</h4>
<p>This week we focus first on the Porting project. Work on the Irix and FreeBSD 
  ports of OpenOffice.org moved significantly forward, and Nick Blievers was able 
  to <a href="http://porting.openoffice.org/servlets/ReadMsg?msgId=211994&listName=dev">announce</a> 
  that the team was &quot;getting close to building 641C out of the box!&quot; 
  Around the same time, Tim Tretyak <a href="http://porting.openoffice.org/servlets/ReadMsg?msgId=217117&listName=dev">posted 
  a message</a> that the FreeBSD build of OpenOffice.org 641C was done. And Vicky 
  Chan <a href="http://porting.openoffice.org/servlets/ReadMsg?msgId=211139&listName=dev">announced</a> 
  that the OpenOffice.org build on Tru64 was complete. This news was greeted with 
  delight by several community members; read <a href="http://porting.openoffice.org/servlets/BrowseList?listName=dev&by=thread&from=5143">why</a>. 
  There is more. The Mac OS X effort is <a href="http://porting.openoffice.org/servlets/BrowseList?listName=dev&by=author&from=5254&to=null&count=35&first=22">gaining 
  momentum</a>--but more on that later.</p>
<p>In the discuss list, the most popular thread concerned the issue of an OpenOffice.org 
  viewer that would further extend the functionality already present in the suite. 
  <a href="//servlets/ReadMsg?msgId=217224&listName=discuss">Martin 
  Bretschneide </a>initiated the <a href="//servlets/BrowseList?listName=discuss&by=thread&from=5377">discussion</a>, 
  and the community <a href="//servlets/BrowseList?listName=discuss&by=thread&from=5377"> 
  ran with it</a>, with end-users and developers debating the merits of the idea.</p>
<p>Finally, Marketing Project co-lead Josh Berkus today presented before the community 
  the new <a href="//about_us/numbering_proposal.html">numbering 
  proposal</a>. This proposal is important. Please review the proposal and send 
  in your votes to this list by February 8. </p>
<p>Remember, if you want the work your are doing featured here, please send me 
  a note. Send it to <a href="mailto:dev@openoffice.apache.org">dev@openoffice.apache.org</a>.</p>
<p>&nbsp;</p>
<p><a href="spotlightindex.html">Spotlight Index</a></p>
</body>
</html>

