An Antic Disposition
+1 for Apache OpenOffice 3.4

Read more in the official announcement. You can download Apache OpenOffice 3.4 now, from http://download.openoffice.org/ Tell your friends. And welcome home.
Related posts:
- An Invitation to Apache OpenOffice
- Apache OpenOffice: How to Get Involved
- First release of the Apache ODF Toolkit
Gorilla Free Software Marketing, Chapter 8: Community Metrics
The Importance of Metrics
Revolutionary movements require revolutionary progress. However, at the start of a Movement, such progress may not be immediately evident to those whose views of progress have been tainted by commercial software, where progress is measured by feature enhancements, quality improvements and user satisfaction. These are false idols and the shallow view of progress they support are irrelevant for true free software.
Rejecting the repressive capitalist view of progress-as-production and production-as-consumption, and the doctrinaire emphasis on results-oriented metrics, we instead adopt the dialectic of progress-as-being and being-as-becoming, with metrics illustrating not what is produced, but what is willed. Rather than galley slaves, prodded by whip lashes to “row harder!”, our motto shall be: “row louder!”
As Mark Twain famously wrote, “There are three kinds of lies: lies, damned lies, and statistics.” Our aim in developing metrics is to avoid the taint of this condemnation by avoiding the statistical sciences entirely.
Two metrics that any free software marketeer must be able to produce are:
- A measure of the size of the community, in order to demonstrate the overwhelming strength and vigorous growth of our Movement.
- A measure of the diversity of the community, in order to demonstrate that it is a true People’s Movement with a broad base of support.
Community Size
A metric that can never disappoint is “cumulative number of developers” on the project. Calculating this metric is simple: count the total number of individuals who have contributed to the project since it started. You are not concerned with the number of contributions, the quality of contributions, whether the person did one patch and then was never seen again, or any other extraneous detail. You’re just counting names. Any project can use this metric to show month-after-month steady improvements.
The genius of this metric is that it can never decrease. It is mathematically impossible! Once a name is added to your list, it is never removed. One a contributor, always a contributor, at least on paper. Worst case, even if an asteroid should hit your next project conference and kill every one of your developers, you could still report that your numbers were flat. Unfortunately, your developers would be as well.
Advanced marketeers should also note the following additional techniques, which can be used to generate even more impressive numbers without additional effort:
- Don’t just count those who are writing code. Almost anyone can be called a “developer” these days. Translators (“Localization Engineers”), build lab guys (“Configuration Management Engineers”), testers (Software Quality Engineers), etc. Include all of their contributions.
- Don’t limit yourself to those who actively contributed code to your project. You can also include developers who contributed to precursor versions of your code, or who contributed to 3rd party modules. They might not even know that their code is in your product, but that doesn’t matter. We appreciate their “contribution” nonetheless and should acknowledge them as an integral part of our thriving community, in spirit at least.
- One you have made the novel step of counting non-project members as developers, there is nothing in principle against extending this even further to the developers of the tool set and libraries you are using. Credit them all, living, dead and legendary. Larry Wall, Dennis Ritchie, Alan Turing, and St. Hubertus, patron saint of mathematicians, can all be listed as developers on your project.
- With some advance planning your project’s development team can help increase these numbers even more. Have them think of some simple text manipulation tasks that can be done by volunteers with little knowledge or understanding of the code. For example, have them do things like reformat code, spell check comments, alphabetize include directives, ensure that every C/C++ file ends with a newline character, etc. Although this will not improve the product for your users, it will enable a much larger group of contributors to get involved so we can add their name to our list. And once on the list, it stays on the list forever. I am told on reliable authority that such code changes are perfectly safe and cannot have a negative impact on product quality.
But be warned: use of these advanced techniques might open you up to criticism of promoting numbers that are meaningless, that they saying nothing about the actual size or composition of your development community. Such criticism can easily be dismissed by feigning to be insulted and responding along the lines, “How could you possibly suggest that we not recognize the hard-working {translators | build lab guys | testers | dead mathematicians | patron saints} who {contributed to|had stuff we took without their knowledge for} our project?”. This argument will almost win, since no one will want to appear ungenerous, especially when intercessory saints are involved.
Community Diversity
Another metric that you might be asked for is a metric to illustrate how much of the project is dependent on any one company, such as the project’s main sponsor. A common error is to look at the contributions made to the project and report how much was apportioned to which individuals and companies, based on recognized software metrics, like # of commits, lines of code, function points, etc. You must not fall into that trap!
A much better metric, if you want to be seen as diverse, is to count the number of developers in each company. Do this without regard to whether the person made a one line change 2 years ago and was never heard of again, or whether the person works 14 hours a day on the project every day. Just look at the number of developers. If you have already followed the advice outlined above, and increased your “cumulative number of developers” metric, then you are perfectly positioned to also demonstrate your diversity.
For example, suppose you have 400 developers, and 10 of them do 90% of the work, and they are employed by a single company. Avoid the naive mistake of saying that one company was responsible for 90% of the contributions. Instead say that the company’s developers (note we’re emphasizing people not work) represent 10/400 or only 4% of the project. That is the genius of this metric. You can have almost all the work done by a single company and still claim that your community is diverse.
No related posts.
Ending the Symphony Fork
What is a fork?
A fork is a form of software reuse. I like your software module. It meets some or many of my needs, but I need some additional features.
When I want to reuse existing functionality from another software product, I generally have four choices:
- If your module is nicely designed and extensible, then I might be able to simply use your code as-is and write new code to extend it.
- I can convince you to modify your module so it meets my needs.
- I can work with you in your open source project to make the module (“our” module in this case) meet our mutual needs.
- I can copy the source code of your module and change the code in my copy, and integrate that modified module into my product.
Note that options #1 and #2 are the only options available with most proprietary modules, since these techniques don’t require access to the module’s source code. Options #3 and #4 are the additional options made possible by open source. Option #4 is what we mean by “forking” . Forking is enabled by open source software and is fundamental to open source ecosystems. It is neither good nor bad. It is a tool, part social, part technological, for overcoming an inability or unwillingness to collaborate. The problem is not with forking. The problem is the conditions that lead to forking.
Why do forks come about and how do they end?
Forks can come about for many reasons, including leadership conflicts, ideological differences and other political issues, as well as differences in vision and technical direction of the project.
Generally, a fork ends when the conditions that necessitated the formation of the fork have been resolved. At least that is true for rational participants who are merely trying to optimize outcomes. But intransigent ideological forks can continue indefinitely, and often do.
The technical side of ending a fork is typically a code merge, as different branches of the project are brought back together again. This can be laborious, but it is a one-time task.
Ending the Symphony Fork
With the move of OpenOffice to Apache, this open source project has made the critical move from a corporate-led open source project under asymmetrical licensing terms, to a community-led open source project under a single permissive license. This is a tremendous change and one that should lead all forks of OpenOffice, and all those who wanted to get involved with OpenOffice before but never did, to reexamine their orientation to the project.
John Maynard Keynes, when criticized for reversing his position in a dispute, famously quipped, “When the facts change, I change my opinion. What do you do, sir?” The “facts” of OpenOffice have changed, with the move to Apache, and this change of venue has made a huge impact on the Symphony team, which recently announced that it was ending its fork and committing to contribute their code to Apache and to work with that community going forward.
This does not mean that Symphony enhancements are going away. Far from it. We’re very proud of the UI work and other innovations in performance, accessibility and interoperability we’ve brought to Symphony and we will be offering the source code of these enhancements to Apache, and if accepted, will work within that project to merge these changes into Apache OpenOffice. The DNA of Symphony is not going away. What is going away is Symphony as a fork, as a divided effort. The Symphony DNA, the cool work the Symphony team has worked so hard on, will live on, in Apache OpenOffice, combined with other ongoing contributions from the community, in a larger, stronger development effort.
Now that the Symphony fork is ending, the obvious question is: Who will be next? If we can end a four-year old fork and merge in our work with Apache, then so much easier it should be for forks that have been around for far less time. “When the facts change, I change my opinion. What do you do, sir?”
If you are interested in learning more about the Apache OpenOffice project, I recommend browsing the project’s website and blog. If you want to get involved, you can sign up for the ooo-dev mailing list and post a note to introduce yourself. As we push closer to our 3.4 release candidate we’re in particular need of volunteers to help us test this release, on Windows, Mac or Linux. If you are interested in helping with that, be sure to say so in your note.
Related posts:
- The Legacy of OpenOffice.org
- OpenOffice, LibreOffice and the Scarcity Fallacy
- First release of the Apache ODF Toolkit
First release of the Apache ODF Toolkit
The Apache ODF Toolkit 0.5 (incubating) release is now available for download. Detailed change notes are also posted. The ODF Toolkit is a Java library for reading, writing and creating ODF documents. It is entirely in Java and does not require that you install a desktop editor like OpenOffice. It operates directly on the file format and is suitable for server-side use, for tasks such as document automation, report generation, information extractions, etc.
As mentioned in a previous post, the Java components from the ODF Toolkit Union have moved over to Apache. Since this open source project was already using the Apache 2.0 license, the work required to achieve our first Apache release was relatively straightforward. The major task was to take the various components of the Toolkit, which were treated as independent projects at the ODF Toolkit Union, and get them to work better together as a single Toolkit, e.g., build together using the same version of the JDK, package them together into a consolidated release bundle. Not rocket science, but it did require some iteration.
We’re starting now to put together a plan for the next release and future releases. Some of the items under consideration include:
- Adding document encryption/decryption support
- Adding digital signature support
- Update to final published ODF 1.2 schema
- Update the demo applications
- Concurrency testing
- Adding support for ODF 1.2′s RDFa/RDF XML semantic metadata feature
- Implement ODF 1.2′s OpenFormula spreadsheet formula language
- Add high-performance event-driven streaming API, for subset of tasks that can be done efficiently that way
- More cookbook examples
- More testing and bug fixing
If you are interested in learning more about the ODF Toolkit, you should visit our website. If you have further questions, we have a users list and a development list that you are welcome to join.
If you know some Java and are interested in ODF, I’d encourage you to take a look at this project and consider participating. We are a small, international, welcoming group working on this project, with a strong focus on quality. Come, take a look.
Related posts:


