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

<h2>Spotlight: On Developers and Technology</h2>
<br>
<p>2001 November 19</p>
<h4>User List</h4>
<p>Do you have questions about using OpenOffice.org? Consider 
                    posing them to our excellent &quot;<a href="mailto:users@openoffice.apache.org">users</a>&quot; 
                    list. The list, moderated by Community Manager Max Lanfranconi, 
                    and populated by a large number of experienced OpenOffice.org 
                    users, works in the classic Open Source manner: you have a 
                    question and someone on the list has an answer they want to 
                    share with you. Of course, the answers come at no charge to 
                    you, and they come fast. But most important, they contribute 
                    to building a community: the next time some one has a question, 
                    it might be you who volunteers to share your knowledge and 
                    answer that question. You can post without being subscribed; 
                    but to avoid the delay imposed by moderation, please go to 
                    our <a href="../mail_list.html">Mail 
                    List</a> page and subscribe.</p>
<p>&nbsp;
<p><a href="spotlightindex.html">back to spotlight index</a>
</body>
</html>

