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

<h2>Community Articles: Opinions, Interviews, Analyses</h2>
<p><i>Last updated 25 July 2001</i> </p>
<br>
<p>The following is a list of the "Editor's Columns" (now called: Community Articles) 
  that have appeared on OpenOffice.org. They are all still open for discussion. 
  If you wish to comment, critique, or otherwise engage the issues, please submit 
  your comments to the OpenOffice.org discuss list, which you can find on the 
  mailing list <a href="//mail_list.html">page</a>. To 
  post a message, however, you must first be subscribed.</p>
<p>I am also open to suggestions. Send your story or interview ideas to <a href="mailto:louis@openoffice.org">louis@openoffice.org</a>. 
  <br>
  <br>
<p>13 July 2001 <i><a href="ec13July.html" target="_blank">The 
  OpenOffice.org Infrastructure Upgrade, Part II.</a> An introduction to the upcoming 
  infrastructure upgrade.</i> 
<p>2 July 2001 <i> <a href="ec29June.html" target="_blank">The 
  OpenOffice.org Infrastructure Upgrade, I.</a> An introduction to the upcoming 
  infrastructure upgrade.</i></p>
<i> 
<p>8 June 2001 <i><a href="ec8June.html">Interview: Richard M.Stallman.</a></i> 
  A conversation with the brilliant and fascinating founder of the Free Software 
  movement. 
<p>31 May 2001 <i><a href="ec31May.html">Whiteboard Projects</a>. </i>The first 
  of a two-part examination of what could be called the people's project space: 
  the Whiteboard. 
<p>21 May 2001 <i><a href="ec21May.html">Interview: Kevin Hendricks.</a></i> A 
  conversation with one of OpenOffice.org's most interesting contributors.</p>
<p>11 May 2001 <i><a href="ec11May.html">Fear of an Open Source Community.</a></i> 
  What is Microsoft so afraid of? An analysis of Craig Mundie's Open Source fears. 
<p>1 May 2001 <i><a href="ec1May.html">Interview: Frank Hecker</a>.</i> Instrumental 
  in moving Mozilla code to an open-source framework, Frank Hecker discusses in 
  this interview the process and logic of the move. 
<p>23 April 2001 <i><a href="ec23Apr.html">Interview: Guy Capra, of the Francophone 
  Project</a>.</i> More than anyone, Guy Capra has spearheaded the creation of 
  the Native Language Development Project and of his Francophone module. His background 
  is also fascinating. 
<p>12 April 2001 <i><a href="ec12Apr.html">What Must Be Done: The Mac OS X Port</a>.</i> 
  A call to arms: Mac users and developers must unite to build the port of OpenOffice.org. 
</p>
<p>27 March 2001 <i><a href="ec27Mar.html">The International, II</a>.</i> An analysis 
  of the resolution of the issues surrounding the creation of the Native Language 
  Development project. Useful for anyone curious about OpenOffice.org's innovative 
  strategy in becoming truly global.</p>
<p>15 March 2001 <i><a href="ec15Mar.html">The International</a>.</i> 
  An analysis of the controversy relating the proposals for the Native Language 
  Development project, which is a step beyond mere localization.</p>
<p>9 March 2001 <i><a href="ec9Mar.html">Creating the 
  New Open Source</a>.</i> In which I debate some of Sander Vesik's views. </p>
<p>1 March 2001 <i><a href="ec1Mar.html">Interview: 
  Sander Vesik</a>.</i> Sander Vesik is one of the chief release engineers; he 
  is also forthright and direct in his opinions about Open Source and what needs 
  to be done.</p>
<p>22 February 2001 <i><a href="MSFTArticle.html">Allchin's 
  Demagoguery, by Bill Roth, guest contributor</a>.</i> A needed criticism of 
  Microsoft's new slick retreat of hoary anti-American propaganda.</p>
<p>15 February 2001 <a href="ec15Feb.html"><i>Interview 
  with Wilfredo S&aacute;nchez.</i></a> The former senior engineer of Apple's 
  Darwin project describes his work for Apple and his reasons for his involvement 
  in Open Source.</p>
<p>9 February 2001 <a href="ec8Feb.html" target="_blank"><i>Organizing 
  Open Source.</i></a> An analysis of what is entailed by "open sourcing" code. 
  If you are curious about the process of Open Source, start here.</p>
<p>1 February 2001 <i><a href="ec1Feb.html" target="_blank">Open 
  Source and Its Culture</a>.</i> A declaration of areas of interest. Open Source 
  is a large, catch-all term of recent vintage (1998); its community, its culture, 
  its process all need clarification and analysis. This essay sets the terms.</p>
<p>23 January 2001 <i><a href="communityaction.html" target="_blank">Community 
  Action</a>.</i> A brief, and somewhat controversial, description of the OpenOffice.org 
  community of developers in action, with comparisons to the Mozilla.org project.</p>
<p>16 January 2001 <i><a href="ec16Jan01.html" target="_blank">Quo 
  Vadis OpenOffice.org?</a></i> What are OpenOffice.org's goals? Its ambitions? 
  Its focus or foci? This essay briefly touches on these and other, related, points.</p>
<p>9 January 2001 <i><a href="thebuild.html" target="_blank">The 
  613 build:&nbsp; problems and opportunities</a>.</i> The 613 build was a bad-luck 
  build. But it also proved to be one of the most popular, as community members 
  rushed to the challenge. This essay explores that history.</p>
<p>3 January 2001 <i><a href="SunsOpenDoor.html" target="_blank">Sun's 
  open door</a>.</i> The inaugural essay, a reflection on Sun's ambitious project.</p>
</i>
</body>
</html>

