Community Innovation Program Entry
IFCX Wings

June 23, 2008

Name, contact details, and country of residence of the Entrant

James White
26272 Summerhill Lane
Laguna Hills, CA 92653
USA jimwhite



skype: JamesPaulWhite

phone: +1 (949) 831-0684

Sole entrant, but hoping CIP recognition will lead to some contributors!

Whether the Entrant(s) meet the Eligibility Criteria for cash awards


Which one of the six Categories of Interest the Entry is addressing


The problem addressed and why it is interesting

IFCX Wings enables creation of a whole new class of “live” documentation, tutorials, books, and tests using OpenOffice. The only really comparable technology today is Mathematica, which is both secret source and very expensive. There are other literate programming tools, but they are markup based and batch processed, while Wings is WYSIWYG and interactive.

The target user for Wings is a knowledge-worker that needs to communicate with people about computer programs. While programmers are usually happy with an IDE, it is typically only equipped to communicate effectively with the computer. Knowledge-workers use office suites and those that need to work with computer programs are usually forced to rely on copy & paste in order to get computer code, results, and output into the editor. By embedding a general purpose, multi-lingual computation framework into OpenOffice that process is made more accurate, efficient, and even fun.

The methods & resources used

Wings is implemented as an OpenOffice UNO Groovy macro for Writer. Groovy macros are supported in OpenOffice by the GroovyForOpenOffice extension, which is the subject of a seperate entry. The Wings macro can be deployed in a variety of ways, the current version is typically stored in the ODF Text document so that OpenOffice macro security mechanisms (including signing) can be relied on.

For development work, source code and full documentation, supporting test cases, etc.

Project home page:

Download for current release which is an extensive example of Wings demonstrating Groovy, Ivy, and several programming languages via JSR-223:

To evaluate the Wings macro, you will need to install GroovyForOpenOffice:

Current development versions of Wings and related sample documents are in the Subversion repository:

An IntelliJ IDEA project for debugging Wings and other Groovy UNO macros is in the Subversion source repository:

Any other information that will help the Program Committee evaluate the merits of the Entry

There are many technical features in development for IFCX Wings, a brief summary of which appears below. But probably the most important area where Wings needs to improve is in the creation and distribution of content. A project which is doing a good job in that area is Connexions, but it doesn't provide direct support for ODF documents (although they can do conversion of ODF to CNXML). The Mathematica folks have extensive support for content creation and distribution, but of course it too is exclusively for Mathematica notebooks. There are also many sites and projects for conventional educational courseware (MIT OpenCourseWare being notable among them, but there are many others as well) and also static material such as HTML and PDF. Some of that is particularly interesting as there is a wealth of computer programming oriented material that would be enhanced by making the computer programs “live” by using OpenOffice with Wings.

Examples of sites with computer programming tutorial and educational material under open licenses are:

PLEAC - Programming Language Examples Alike Cookbook

Real World Haskell

Haskell Tutorial

AJAX eBook

Introduction To Design Patterns

That list extends to hundreds of examples as can be seen in just a few collections of free programming books under a variety of licenses:

So the thing that I would most like to see happen for Wings from this OpenOffice Community Improvement Program is to find others that are interested in this new kind of programming documentation and can help organize a way to collect and distribute that content within the environment. Of course one of the applications for this “live” documentation could be the OpenOffice Developer Guide itself along with supporting articles and the like, at least for languages supported by the Scripting Framework (which Wings has demonstrated includes any with a JSR-223 engine).

A few features planned for Wings

Handle long running scripts by displaying progress/cancel dialog.

Preprocessing for Ivy @use Javadoc annotation (instead of the current XWINGS._USE method).

Rich display (tables, trees, graphs, large structures).

Support for OpenOffice Math Equation (ODF Formula) formatted source and results for mathematically oriented languages like R, SAGE, and Fortress.

Impress integration for use in slide presentations.

IDE integration for convenient access to programming language feature support (syntax checking, coloring, auto-completion).