﻿<html>
<head>
<title>Local Works</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h2>Updates: Spring 2005</h2>
<p class="spaced13"><a href="../lspintro.html">-Louis Suárez-Potts</a></p>
<p class="spaced13">2005-08-10</p>
<br />
<p class="Header">Local Works</p>

<p class="spaced13"> At the beginning of June this year one of the most important conferences concerning free and open-source software, the <a href="http://fisl.softwarelivre.org/6.0/" target="_blank">Sixth International Forum on Free Software</a> (Fórum Internacional Software Livre, or fisl), took place in Porto Alegre, Brazil. I was fortunate to be there along with hundreds of other speakers and thousands of participants, who ranged from students to government ministers to hackers to users to business people.  Free and open-source software, FOSS, or the more comprehensible term used in Brazil, software livre, has come of age: most of the panels were about successful migrations, plans for the future, and discussions not about whether software livre should be deployed or supported, but how; not if, but when.  And everyone understood that now is the time. </p>

<p class="spaced13"> That sentiment is perhaps strongest in Brazil and India, whose governments have shown extraordinary perspicacity and resolution, but it is also present in many other regions and countries throughout the world. From February to April representatives of OpenOffice.org presented or exhibited at conferences in the US, India, Germany, Turkey, Denmark, Australia, Russia--and I’m probably missing some; we’ve been busy. (And as I write this, <a href="http://www.linuxtag.org/2005/de/home.html" target="_blank">LinuxTag</a> just ended.)  Every region, every nation and language is of course unique: the issue of fonts in the Indic language groups is not particularly relevant to the Brazilians.  National priorities also obviously differ; one reason Brazil has chosen so strongly to back FOSS is because it is much cheaper--gratis--a consideration that did not affect Munich’s recent choice for free software. </p>

<p class="spaced13"> But regardless of the regional, economic, and linguistic differences, there is a simple unanimity in perceiving free and open-source software like OpenOffice.org as the logical and even necessary strategy for this century.  This is not blind optimism on my part.  It has to do more with the rhetoric of government and the actions of businesses.  Free software is gaining rapidly, OpenOffice.org in particular, and it is gaining in areas that were long seen as the stronghold of proprietary software (read: Microsoft): government, enterprises, education.  What has made the difference? </p>
<br />
<p class="Header">The Logic of Cycles</p>

<p class="spaced13"> In part, it’s the logic of cycles.  Now is the time for many chief information officers (CIOs) to opt for alternatives.   After first learning of it and then evaluating free software for years, testing to see if it really works as well as others have reported, and whether it is easy to use, many are opting out of expired license agreements and opting for free software and its security and flexibility--both financial and technical.  If caution is in order, it only makes sense: for many, this is the first time that they had any choice in the matter.  Until very recently, CIOs could only buy the flavors of software allowed them by a monopoly. “Choice” was not a word that made sense.  “Control” over one’s own work also made little sense. And drafting  an IT policy that actually served the citizens of a country by ensuring they have free to access to public national documents--that is, without requiring them to purchase expensive proprietary software--certainly made no sense at all. </p>

<p class="spaced13"> Free and open source software is changing the status quo by giving users and CIOs a realistic alternative on the desktop; it has been doing so now, with increasing momentum, for the last few years.  OpenOffice.org 2.0, due out later this year, exemplifies the move toward making free and open software (FOSS) more usable, more user-friendly, more interoperable, while preserving the things that make it strong:  it's open source and, increasingly, open standards. (Open standards have no necessary connection to open source, but they reflect a similar thrust toward software that is entirely open.)  </p>

<p class="spaced13">To give one example of the greater usability of FOSS works that I witnessed in Turkey, let's look at the work of the <a href="http://www.uludag.org.tr/"target="_blank">Ulusal Dağıtım Project</a>, a quasi-independent organization whose members all have positions in a government-sponsored enterprise.  As part of my visit to Istanbul, where I presented at the <a href="http://open.bilgi.edu.tr/freedays/program.php?lang=en" target="_blank">Free Software and Open Source Days</a> in Istanbul, organized in part by the the <a href="http://tr.openoffice.org/" target="_blank">Turkish Language Project</a>, led by Görkem Çetin, I was offered the <a href="http://www.uludag.org.tr/eng/urunler/pardus_calisan_cd_1.0.html"target="_blank">Pardus Live CD 1.0</a>, which contains LInux, the KDE desktop, plus the necessary desktop applications, including, of course, OpenOffice.org, all localized to Turkish.  As with other similar efforts, the CD de-mystifies Linux and FOSS technology; easy to use and easy to distribute, the CD brings free software to naïve users in a familiar form and in their language. </p>  the Ulusal project's goal was simple: make Linux usable by all and make it in Turkish. They succeeded.

<p class="spaced13"> The importance of having the software in one's native tongue cannot be underemphasized.  But who has localized OpenOffice.org to so many languages? Mostly, it’s the local communities, who want OpenOffice.org in their native language.  Working in, say, an English version when your native language is Brazilian Portuguese is not just disorienting, confusing, and difficult, it’s also a casual reminder of a kind of cultural imperialism, in which one’s language is regarded in purely market terms by a remote (always remote) corporation. </p>

<p class="spaced13"> Developers in Brazil, Turkey, Russia, and elsewhere, have created spell- and even grammar- checkers that make OpenOffice.org that much more usable not only by individuals but also government offices and corporations, and they have done so fairly independently. While I was in Istanbul, last March, where we announced the availability of OpenOffice.org 2.0, I was informed by Çetin that the Turkish spellchecker had just been completed.</p>

<p class="spaced13"> In Russia, last April, I found a similar story, where the St. Petersburg company of <a href="http://www.linux-ink.ru" target="_blank">Linux Ink</a> Indicated it would donate to the community a Russian spell checker. (For more information on OpenOffice.org in Russia, see the <a href="http://ru.openoffice.org/index.html" target="_blank">Russian Language Project</a>, led by Rail Aliev.) And in Brazil, for the recent fisl6.0, Carlos Menezes <a href="http://cogroo.incubadora.fapesp.br/portal" target="_blank">demonstrated</a> a nearly complete and quite elegant grammarchecker for Brazilian Portuguese.   At present, an estimated two million Brazilians use OpenOffice.org (estimates come from Claudo Filho, of the <a href="http://br-pt.openoffice.org/" target="_blank">Brazilian Portuguese Language Project</a>).  All these, and many more, are essentially local efforts, benefiting the local community (and anyone who uses the relevant language), conducted with minimal central control but using and adding to the resources of the overall community.  Local independence does not mean chaos or anarchy, however; it means rather that initiatives and solutions affecting the totality can come from the locality; or even just address the needs of that locality without necessarily touching on the totality.  The model here is <a href="http://www.uta.edu/english/apt/d&amp;g/arhizome.html" target="_blank">rhizomatic</a>:  a non-hierarchical network opposed to a tree-like hierarchy. </p>
<br />

<p class="Header">The Rhizome</p>
<p class="spaced13"> The rhizome emphasizes local work and distribution; it implicitly grounds power in the locality, and FOSS development would seem to be naturally rhizomatic. And for projects such as Linux (at least, in the abstract), Perl, and numerous others, the rhizome metaphor (which was coined by the philosophers Gilles Deleuze and Félix Guattari in <i>A Thousand Plateaux</i> well before Raymond's more mercantile "bazaar") would obtain, as would its subversive consequences.  But for projects such as Openoffice.org, whose source is monolithic and large (around 10 million lines of code), and whose licenses encourage commercialization of the code, a balance between tree-like central hierarchies and local efforts is desirable. Else--and to a degree this has already happened--one could envision the proliferation of manqué versions of OpenOffice.org, some better than others, none quite official and all confusing to would-be individual, corporate, and government users.  Each would be a more or less isolated fork and the great intellectual capital of the project would be diminished.  What is wanted, and what we have strived to achieve, is the reliable production of software that users of all sorts, including individuals, government offices, and corporations, can trust. </p>

<p class="spaced13"> Thus, the requirement that builds released by the project using its archipelago of servers must comply with our quite strict quality assurance (QA) standards, as well as be in license compliance.  In this manner we aim to ensure that code produced by any local community is of the same quality as all other releases.  This process was initiated more than a year ago but is still evolving, in part because nothing in IT is ever as simple as project managers would like, and there are always problems of communication to deal with, in part because OpenOffice.org is particularly complicated, in part because Sun's needs introduce vectors that alter regional logic. </p>

<p class="spaced13"> Those needs can be summarized by the simple fact that Sun Microsystems sells <a href="http://www.sun.com/software/star/staroffice/index.xml" target="_blank">StarOffice</a>, the proprietary derivative of OpenOffice.org, in, as of this writing, 11 languages.  Who does these translations? The short answer is that the effort is collaborative, in the sense that for the StarOffice languages Sun outsources the translations to select vendors and then makes those translations available to the community.  From there, it's up to the relevant community to further refine the localizations, QA them, etc. For those languages for which there is not native-language community, such as Swedish (Note, we just created that one, see <a href="http://sv.openoffice.org/" target="_blank">http://sv.openoffice.org/</a>), there are no further changes. </p>

<p class="spaced13">For those languages for which Sun does not provide localizations, i.e., those that are not included in the StarOffice 11, the work is entirely up to the community.  By "community" I do not mean only volunteer hobbyists. Most of that community is actually  composed of professionals who rightly see in OpenOffice.org business and social opportunity. </p>

<p class="spaced13"> If the logic of Sun paying for contract work seems to you to defy sense when the local community is more than willing and more than able to do the same (if not better) job, then you are not alone.  Within the last year, OpenOffice.org instituted the<a href="http://l10n.openoffice.org/localization/L10n_pilotprocess.html" target="_blank"> Pilot Process</a>, which aims to rationalize the localization to the StarOffice 11 languages, provide the necessary tools, and to establish a formal collaborative structure.  For the 11 languages, Sun will continue to pay for contractors, and their work will be reviewed and added to by the communities.  No one is taking advantage of anyone else; there is no corporate exploitation.  The idea is to be truly collaborative and to prevent confusion and duplication of effort.</p>

<p class="spaced13"> But what happens when the local community comes in conflict with Sun?  Say that a local community (one of the 11) prefers its own translations and would rather they became the official build? In such a scenario, there would then be parallel localizations, one destined for StarOffice, the other for OpenOffice.org.   This is obviously not a desirable solution; it's not really a solution at all.  It is however, what can and probably will eventuate in a few communities, where the goals of the groups are divergent.</p>

<p class="spaced13"> In the most direct sense, the purpose of the Pilot Process is precisely to forestall this scenario.  The immediate solution, then, would be to confirm that problems of communication are not in fact motivating the division.  But if there is no miscommunication, then the correct answer should be: so be it.  OpenOffice.org thrives by relying on local groups--that's why we have so many localizations of the software--but it also demands that local releases be of the quality that all have come to expect. Therefore, the only stipulations should logically be those that ensure quality and reliability: that any local release be of equal standard and pass the accepted QA tests, that it comply with our license scheme, and that patches, etc., be committed to the central repository. </p>
<br />
<p class="Header">Government Support</p>

<p class="spaced13"> First, this was my experience at the recent fisl6.0: As I mentioned at the start of this article, numerous panels on OpenOffice.org, its distribution and extension, and on the migration from Microsoft Office to OpenOffice.org took place at fisl6.0. All the panels were packed, especially those detailing how this or that government agency had migrated to OpenOffice.org or was planning on it. The Brazilian government, local, regional, and federal, is politically and in fact committed to open source, and OpenOffice.org is key to that commitment. </p>

<p class="spaced13"> Now the case of India.  As with Brazil, India represents a crucial field for OpenOffice.org. The reasons are not surprising:  India boasts what is likely the largest technologically educated labor force and a strong desire for national independence.   FOSS is taking off in India because it satisfies a need for technology that is free to modify as well as to use. </p>

<p class="spaced13"> If only last year the progress toward open source seemed slow to those of us in the vanguard, the pace in this spring has decidedly accelerated.  That said, there are still significant technical, logistical, and political issues to contend with.  But also is a real enthusiasm for and belief in the notion that FOSS is the ticket to make India (and for that matter, other nations, such as Brazil) technologically self-sufficient and a leader in software innovation and deployment this decade.  I confess my exposure to FOSS in India—primarily at the <a href="http://www.technetra.com/linuxasia2004/" target="_blank">Linux Asia 2004</a> and <a href="http://www.technetra.com/linuxasia2005/" target="_blank">2005</a> conferences—gave me a rosy view of the situation.  But i do not think it was inaccurate. I learned there of consortia forming to address the font and localization issues, of regional deployments among those otherwise unable to engage in “office” activities; and of real government interest. </p>

<p class="spaced13"> That interest was most manifest recently in April, on the occasion of the Tamil New Year, when the Indian government publicly--and with a lot of media coverage--<a href="http://news.zdnet.co.uk/software/applications/0,39020384,39199972,00.htm" target="_blank">distributed</a> thousands upon thousands of free CDs of Tamil-localized (translated and configured) versions of Firefox and OpenOffice.org, among other free applications.  At the inaugural event in Chennai, there was even a near <a href="http://www.hindu.com/2005/04/16/stories/2005041600292200.htm" target="_blank">riot of excitement</a>. Who made these CDs possible? The OpenOffice.org team: Bharateeyaoo, a group of <a href="http://www.cdac.in/" target="_blank">C-DAC</a> students and researchers operating with limited support but limitless enthusiasm.   On 21 June, Bharateeyaoo further released, once again amid great fanfare and government attention and interest, the Hindi version of OpenOffice.org, along with other useful free software, in a CDROM, to thousands of excited users. </p>

<p class="spaced13"> The Tamil and Hindi localizations are but two of OpenOffice.org's efforts to make the application available in the many official Indic languages. There are also Gujurati, Kannada, Bengali (led by Sankarshan Mukhopadhay of Red Hat), and numerous others on the way.  These projects are but a start. What is needed is an apparatus--political as well as financial and technical--that will allow the efforts to continue and release not just 1.1.4 but 2.0; not just 2.0 but 2.5, and so on. </p>

<p class="spaced13">In India, Brazil, Russia, Turkey--really, throughout the world--the development and deployment of OpenOffice.org is proceeding with the benevolent interest of national governments. Some nations express more, others less. Policies are being written, monies allocated, political rhetoric crafted.  OpenOffice.org stands to benefit tremendously from this interest, but only if we set up efficient processes for collaboration.  To a large degree, those are already in place and range from the l10n Pilot Process, which is designed to encourage collaboration, to the <a href="/projects/native-lang.html" target="_blank">Native Language Confederation</a>  projects, which give local efforts the necessary autonomy.  But more needs to be done: We need to improve communication, for starters, between the local efforts and the central project.   The interesting and excellent work, either in the form of patches or extensions to OpenOffice.org, being done now in Brazil or Russia or India or anywhere else needs to find its way into the central repository, so all can benefit.  We need further to improve the developer documentation so that developers throughout the world can actually start working on OpenOffice.org more easily.  And we need--and this has already begun-to improve the build process and ultimately to make the source more modular, more available to developers.</p>

<p class="spaced13">In the end, the point is to create and sustain a project that reflects the work of those who participate in it and that fulfills the claims of our vaunted <a href="/project/about/index.html#mission" target="_blank">mission statement</a>.  The stakeholders today in the project number in the thousands and if they are not independent or students are backed as much as by governments as by corporations: they have each local agendas, needs, concerns. But they make up a working network, a community that is also rhizomatic.  The future of OpenOffice.org is thus everyone's. </p>
<br />

<hr />

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