﻿<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>The New Project Leads: NAKATA, Maho</title>
</head>
<body>
<div class="spaced13">
  <h2>The New Project Leads:  NAKATA, Maho</h2>
  <p>2007-01-04</p>
  <p>-<a href="htp://homepage.mac.org/luispo">Louis Suarez-Potts</a></p>
  <br />
<p>Late last year, the leadership of several important core <a href="/projects/accepted.html" target="_blank">projects</a> changed hands. Some of the new leads have been leads in other projects and take on new responsibilities; others are new to the job. What does a project lead do? That depends on the project, but it's usually considered role that combines administrative, managerial, and leadership duties, and represents a very high level of trust.  The project leads for the accepted technical projects are in particular important to OpenOffice.org, for they are largely responsible for what makes up the source to the application, as well as for reaching out to developers. </p>
The following set of short interviews, of which this is the first (others will follow over the next week), is meant to introduce them to the community.  As with all of OpenOffice.org's leads, they are open to the community and welcome developer interest and contact. </p>

<p>I was set to ask Maho NAKATA, the new lead of the <a href="http://framework.openoffice.org/" target="_blank">QA Project</a> (Joost Andrae and <a href="new_leads_cds.html" target="_blank">Caio Tiago Oliveira de Sousa</a> are the co-leads) more or less the same questions I asked the others; however, Nakata-san beat me to the point and volunteered his own questions and answers.  Nakata-san, I should add, has been a longtime developer associated with OpenOffice.org almost since its beginning, and has recently been re-elected lead of the <a href="http://ja.openoffice.org/" target="_blank">Japanese Language project</a>, which he founded, and which is one of the largest and most active projects in the OpenOffice.org rhizome. Late last year, he took over the leadership of QA from the longstanding lead, André Schnabel.</p>

<p>Other mini-interview in this series:</p>
<ul type="circle">
	<li><a href="new_leads_mb.html" target="_blank">Mathias Bauer, New Lead</a> of <a href="http://sw.openoffice.org/" target="_blank">Writer</a>, Co-Lead of <a href="http://framework.openoffice.org/" target="_blank">Framework</a></li>
	<li><a href="new_leads_cd.html" target="_blank">Carsten Driesner, New Lead</a> of the <a href="http://framework.openoffice.org/" target="_blank">Framework Project</a></li>
	<li><a href="new_leads_fm.html" target="_blank">Frank Meies, New Co-Lead</a> of <a href="http://sw.openoffice.org/" target="_blank">Writer</a></li>
	<li><a href="new_leads_cds.html" target="_blank">Caio Tiago Oliveira de Sousa</a>, New Co-Lead of <a href="http://qa.openoffice.org/" target="_blank">QA Project</a></li>
</ul>


<p> My name is NAKATA, Maho (Maho is my first name please call me maho, and NAKATA is my family name), living in Tokyo, Japan. I'm a post doctoral fellow in chemistry at the <a href="http://www.chem.s.u-tokyo.ac.jp/indexE.htm" target="_blank">University of Tokyo</a>. I'm interested in theory and doing chemistry with computers. Next year still I'm a postdoc at <a href="http://www.riken.go.jp/engn/index.html" target="_blank">Riken</a>. I'm programming for my researches for proof of concept, using C++, Fortran and Perl, etc. Some of you may be surprised still we are using Fortran77. Would you believe that there are some 30 years old codes that are still alive and very, very much trusted? </p>

<p> For my OpenOffice.org activities, my first commit is <a href="http://www.freebsd.org/" target="_blank">FreeBSD</a> porting then founded <a href="http://ja.openoffice.org/" target="_blank">ja.openoffice.org</a>, also <a href="http://porting.openoffice.org/mac/" target="_blank">Mac OS X porting</a> a bit (thus I created several <a href="http://wiki.services.openoffice.org/wiki/CWS" target="_blank">CWS's</a> and sometimes I was chosen as QA representative for some CWS's; many thanks to Pavel Jan√≠k). For Mac OS X, currently I'm providing builds for QA. </p>

<p> I'm interested in <a href="http://wiki.services.openoffice.org/wiki/Category:Quality_Assurance" target="_blank">QA</a>, and my first interest maybe automated <a href="http://qa.openoffice.org/qatesttool/" target="_blank">QAtesttool</a>. It is very impressive tool. I don't remember correctly, though, I saw a demonstration at OOoCon2003 or 2004. Also I wrote a page for FreeBSD, <a href="http://porting.openoffice.org/freebsd/QA.html" target="_blank">http://porting.openoffice.org/freebsd/QA.html</a> in which many errors were identified, but these have not yet been fixed[!].</p>

<p> Also I'm interested in <a href="http://l10n.openoffice.org/" target="_blank">L10N</a>, perhaps because Japanese is (IMHO) one of the most difficult languages in the world. Our language is so complicated, and has many problems within computer processing that it is natural for me to find l10n issues interesting. </p>

<p> As the lead [of QA], I must think about deeply about what is the quality, what the QA project should/can do, etc. </p>

<p> My first job might be coordinating QA of 2.1. As I wrote before, I'm interested in writing documents. So that *EVERYONE* can participate this QA project. </p>

<p> I also thank all of you in this community. I need your helps. I'm really appreciated for your helps. </p>

<p> Thanks again for Andre Schnabel. </p>
<hr />

<p>To learn more about the QA project, visit the <a href="http://qa.openoffice.org/" target="_blank">site</a>, look over the mail list <a href="http://qa.openoffice.org/servlets/SummarizeList?listName=dev" target="_blank">archives</a>, subscribe to the <a href="mailto:dev-subscribe@qa.openoffice.org" target="_blank">qa@openoffice.apache.org</a> list, and dive in!  I should add that the QA project is generally thought of as our starting point for contributors. It's where community members go to file bug reports, requests for enhancement (RFE), and so on. The project, in short, is very important.</p>


<p>Developers--and just about anyone else interested--can start learning more about OpenOffice.org by visiting our <a href="http://wiki.services.openoffice.org/wiki/Main_Page" target="_blank">wiki</a>.</p>



</div>
<br />
<hr />
<a href="index.html">Return to Articles</a>
</body>
</html>
