Development
Officeshots: making ODF truly interoperable
Complex file formats, such as those used for office documents, inevitably lead to differences in interpretation by application developers. If a user sends a document to someone else who views it in a different application or version, chances are that the output shows some subtle differences or, by bad luck, that the formatting is completely munged. For people that give presentations regularly, this is a constant nightmare: they have to hope that the office application on the conference laptop is able to show the presentation without mangling the slides. These problems are not tied to proprietary file formats: open standards such as ODF (Open Document Format) also have interoperability issues.
A web service, Officeshots, was recently launched to remedy this problem. The project is in public beta and users can register for free to upload their ODF documents. The web site then generates the output of the document using various office applications, which enables the user to check for interoperability issues. The launch of the public beta took place during the second ODF plugfest in Orvieto, Italy on November 2nd and 3rd. A lot of vendors and developers using ODF in their software gathered in Orvieto, such as IBM, Google, OpenOffice.org, Novell, KOffice, AbiWord, and Microsoft.
Officeshots is a project by NOiV (Netherlands in Open Connection), a Dutch government program to promote the use of open standards and open source, in collaboration with the OpenDoc Society and NLnet Foundation, a Dutch non-profit organization that financially supports contributors to an open information society. LWN talked to Sander Marechal, who developed the bulk of the Officeshots code and is the project leader. He owns Lone Wolves, a small non-profit open source development company based in The Netherlands.
In June 2008, Sander was invited by Michiel Leenaars (of OpenDoc Society and NLnet) to give a talk at Sun Microsystems in Hamburg about another Lone Wolves project, ODF-XSLT. Sander drove to Hamburg with Michiel and the two talked about their mutual interests. That car drive started the ball rolling:
As the director strategy for NLnet and member of the OpenDoc Society, Michiel Leenaars had a lot of contacts with office software vendors, both open source and proprietary, including Sun, Novell, and Google. He got them interested in the Officeshots project and talked with other developers. During the recent plugfest, the project even got some Microsoft Office licenses as a gift.
Document factories
The Officeshots web site has a very simple user interface: the user submits a document, and the site delivers a PDF export, a screenshot, or a round-trip ODF file produced by the applications the user selects. A round-trip ODF means that an application opens the ODF document and then saves it again. So if the user chooses round-trip ODF as the output format, he gets an ODF document back. What's the point of this? Sander explains the importance:
Currently supported applications are different versions of AbiWord, Gnumeric, EuroOffice, Go-oo, Corel WordPerfect, KOffice, OpenOffice.org, StarOffice, TextMaker, and PlanMaker, in Linux/BSD as well as in Windows. Supported document formats are Open Document texts, spreadsheets, and presentations. The user can also create a public gallery to show conversion errors to others. A simple test using some ODF files in the example content that comes with Ubuntu definitely shows interoperability issues.
Under the hood, the user's uploaded file gets distributed to rendering servers hosted by vendors and the community. The Officeshots project calls each server that is producing output a factory. Most of the factories are run by the Officeshots project, which has a couple of virtual machines running on the Xen hypervisor to guarantee that the service is always able to produce some output.
Other factories are run by people from AbiWord, Gnumeric, and other projects, and a couple are run by volunteers. Sander highlights the first two projects:
The Officeshots project has a list of factories (currently 14) and a list of active factories (at the moment of writing 5). At this moment, the project is waiting for a new server that will host virtual machines with various Linux distributions, as well as Windows with Microsoft Office.
Contribute to Officeshots
The Officeshots project not only provides the free online web service, but also provides the code for the underlying framework (Affero GPLv3-licensed). While Sander admits that there haven't been that much external code contributions yet, he points out that there are a lot of other means by which one can contribute to the project: people can run a factory, translate Officeshots to their language, or donate hardware or software licenses.
People who want to run their own factory should contact Officeshots and consult the manual. The code can be downloaded from the Officeshots Subversion repository. The manual also explains how to implement a backend for a not-yet-supported application. The simplest way is if the application offers command-line conversion functionality. This led at least one team to implement this feature into their office application, Sander remarks:
But actually, one doesn't have to go that far to give a helping hand to the project's mission: if a user detects interoperability issues thanks to Officeshots and reports the problem to the relevant office applications, then the project has succeeded.
New functionality
The Officeshots developers have a couple of ideas to implement in the future. Of course they will add new backends. For example, Sander has already written a backend for an older version of Microsoft Word using the Sun ODF plugin, so when the Windows virtual machines are ready, a new Microsoft Office backend will be one of the possibilities. They will also add backends for the office viewer of Symbian S60 smartphones.
But other than new backends, the project has some additional new features in
the pipeline. One notable feature is an ODF diff tool. "We are
looking at a commercial
tool by DeltaXML.com, which is very useful because normal XML diffs
generate too much noise,
" Sander explains. "Using it shows
clearly that Microsoft Office replaces formulas and charts when
saving.
" Another feature in the pipeline is a service running the ODF Validator against an
uploaded document. "But we are also looking into ODF validators that
can generate messages a normal human being can understand, instead of
throwing cryptic XML exceptions like most XML validators do.
"
Another plan is to integrate the complete ODF 1.0 test suite
into Officeshots. A factory could then be periodically offered a set of
hundreds of documents to automate parts of the test suite.
Privacy
The project is also seeking some ways to protect the user's privacy. If users upload documents with sensitive information, they should know that Officeshots and the factories can read this information. At the moment, the project asks their users to have trust in the Officeshots project and third-party factories. Sander adds:
Because the anonymizer will run on the Officeshots server, the factories receive the modified text, so that users don't have to trust the third-party factories. But it still asks users to trust the people of the Officeshots server which runs the code that anonymizes the uploaded document. Concerned people can install itools locally (it is packaged in a couple of Linux distributions) and use the iodf-greek.py script (added in itools 0.60.3) to anonymize their documents before uploading them. For very sensitive documents, it is possible to run a local copy of the Officeshots web service and backends, but that takes time to install and configure.
Conclusion
The Officeshots web site is a handy service for users that are evaluating which office application to migrate to. Thanks to the project, they don't have to install each application locally to check for interoperability issues. With the web service, they can easily check if each application does what it says. Also consider template designers and people creating documents for public release. With Officeshots, they can easily check if their documents work everywhere. Last but not least, it is also a helpful tool for the office software vendors who can spot errors in their ODF support. In these ways, the Officeshots project should accelerate interoperability in the office software market.
System Applications
Audio Projects
JACK 0.118.0 + D-Bus released
Version 0.118.0 of the JACK Audio Connection Kit has been announced. "D-Bus modifications add optional autodetected support for the D-Bus based server control system. D-Bus is object model that provides IPC mechanism. D-Bus supports autoactivation of objects, thus making it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed."
PulseAudio 0.9.20 released
Version 0.9.20 of the PulseAudio sound server has been announced. "This is mostly a bug fix release and includes a few new translations." See the changes document for details.
Database Software
Elixir 0.7.1 released
Version of has been announced, it adds some new features and bug fixes. "Elixir is a declarative layer on top of the SQLAlchemy library. It is a fairly thin wrapper, which provides the ability to create simple Python classes that map directly to relational database tables (this pattern is often referred to as the Active Record design pattern), providing many of the benefits of traditional databases without losing the convenience of Python objects."
MySQL Community Server 5.1.41 has been released
Version 5.1.41 of MySQL Community Server has been announced. "MySQL Community Server 5.1.41, a new version of the popular Open Source Database Management System, has been released. MySQL 5.1.41 is recommended for use on production systems. For an overview of what's new in MySQL 5.1, please see http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html".
PostgreSQL Weekly News
The November 15, 2009 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL DBMS articles and resources.
Device Drivers
libshcodecs 0.9.8 released
Version 0.9.8 of libshcodecs, a library for controlling SH-Mobile hardware codecs, has been announced. "This release adds the shcodecs-record tool, which encodes a video stream from camera with a simultaneous preview to the framebuffer. shcodecs-record supports V4L2 streaming I/O (USERPTR) mode for zero-copy access to image data captured via the SH-Mobile CEU."
Mail Software
Exim 4.70 released
Version 4.70 of the Exim mail transfer agent has been announced. "This release is a combination feature and bug fix release. The major new features are:- * Native DKIM support without an external library. * Experimental DCC support via dccifd (contributed by Wolfgang Breyha)."
Networking Tools
gevent 0.11.1 released
Version 0.11.1 of gevent has been announced, it includes bug fixes and other improvements. "gevent is a coroutine-based Python networking library that uses greenlet to provide a high-level synchronous API on top of libevent event loop."
Web Site Development
Midgard2 9.09 "Mjolnir" released
Version 9.09 of the Midgard2 web development platform has been announced. "In this release we provide Content Repository API bindings for the following programming languages: C, Python, PHP and Objective-C. D-Bus signals are used to inform different Midgard2 applications about things happening in the repository, enabling for example a PHP website and a Python background process to communicate with each other."
nginx 0.7.64 announced
Version 0.7.64 of the nginx web server has been announced, it includes bug and security fixes. See the CHANGES document for more information.
Desktop Applications
Audio Applications
Ardour 2.8.4 released
Version 2.8.4 of the Ardour multi-track audio workstation has been announced. "Ardour 2.8.4 is here! It has been a month of mostly bug fixing activity, but some nice fixes they certainly are and we've included a couple of new features just to keep you all interested and paying attention. If you use BWF files for anything, this update is critical, because we have fixed a very serious error in the way we generate the header for such files. As of this writing, this is planned to be the last release of Ardour 2.X before 3.0alpha is announced (unless there are any critical breakages in this release)."
Desktop Environments
Erlandsen: What We Talk About When We Talk About Zeitgeist
On his blog, Mikkel Kamstrup Erlandsen gives a technical overview of GNOME Zeitgeist. Zeitgeist essentially stores events using a Nepomuk ontology (formal data description) and allows those events to be queried. "There is a tangible confusion around as to what Zeitgeist is and what it isn't; what it can do and what it can't do. This is partly our own fault because we could have communicated this whole thing better, for instance we have some very outdated wiki pages lying around that you should probably stay away from until we updated them. In this post I aim to give a semi technical run down of the core Zeitgeist functionality and how we expose it for you to work with."
GNOME Software Announcements
The following new GNOME software has been announced this week:- atk 1.29.2 (bug fix)
- at-spi 1.29.2 (bug fixes and translation work)
- AT-SPI2 0.1.2 (new features, bug fixes and code cleanup)
- Brasero 2.29.2 (new features, bug fixes and translation work)
- easygconf 0.02 (alpha release)
- Empathy 2.29.2 (new features, bug fixes and translation work)
- EOG Plugins 2.29.2 (translation work)
- Evince 2.29.2 (new features, bug fixes and translation work)
- Eye of GNOME 2.29.2 (new features, bug fixes and translation work)
- File Roller 2.29.1 (bug fixes and translation work)
- GCalctool 5.29.2 (new features and translation work)
- GDM2 2.29.0 (new features, bug fixes and documentation work)
- gedit 2.29.2 (unspecified)
- GNOME games 2.29.2 (bug fixes and translation work)
- GOK 2.29.2 (bug fixes and translation work)
- goobox 2.1.1 (new features and documentation work)
- gtkaml 0.2.9.1 (bug fixes)
- librep 0.90.3 (new features and documentation work)
- LibUnique 1.1.2 (rc) (new features, bug fixes and documentation work)
- LibUnique 1.1.6 (rc) (build fix)
- mousetweaks 2.29.2 (bug fixes and translation work)
- Orca 2.29.2 (bug fixes and translation work)
- PDF Mod 0.8 (new features, bug fixes and translation work)
- Sawfish 1.5.3 (bug fixes)
- Tomboy 1.0.1 (bug fixes and translation work)
- Tomboy 1.1.0 (bug fixes and translation work)
- tracker 0.7.7 (new features)
KDE Software Announcements
The following new KDE software has been announced this week:- dropbox-servicemenu-kde 0.1 (initial release)
- KDE4 Twitter Notifications 1.0 (initial release)
- Konversation 1.2.1 for KDE 4 (new features and bug fixes)
Xorg Software Announcements
The following new Xorg software has been announced this week:- xinit 1.2.0 (new features, bug fixes and code cleanup)
Electronics
XCircuit 3.6.163 released
Version 3.6.163 of XCircuit, an electronic circuit drawing program, has been announced. "As of November 6, 2009, I have changed version 3.6 to stable, and version 3.7 is the new development version. The stable release will only be updated with bug fixes, while all new development and experimental stuff will go into the development release."
Interoperability
Wine 1.1.33 announced
Version 1.1.33 of Wine has been announced. Changes include: "- Gecko now installed at wineprefix creation time. - Better support for certificates in crypt32. - Improved sound support in mciwave. - Some more Direct3D 10 functions. - Many cleanups for issues spotted by Valgrind. - Various bug fixes."
Mail Clients
The notmuch mail client
Noting that "its a sad commentary on the Linux desktop that the most important feature for many people using Linux has no credible GUI application", Keith Packard and Carl Worth have announced the existence of "notmuch," a fast, search-oriented mail client. It appears to be in an early-adopter stage at this point, but it bears watching.Sylpheed 3.0beta2 (development) released
Development version 3.0beta2 of the Sylpheed mail client has been announced. "Since this release fixes many important bugs related to multi-threading, it is highly recommended for 3.0beta1 users to upgrade to this version."
Multimedia
Amarok 2.2.1 released
Version 2.2.1 of the Amarok media player has been announced. "It includes improvements to podcasts, collection scanning, automatic script updating and much more. Find out more at http://amarok.kde.org/en/releases/2.2.1".
Music Applications
BigBand - compose music for small ensembles
Version 1.0 of BigBand has been announced. "BigBand is a program to compose real music for real musicians."
FluidSynth 1.1.0 released
Version 1.1.0 of FluidSynth has been announced. "On behalf of the FluidSynth development team, I'm happy to announce the release of FluidSynth 1.1.0 "A More Solid Fluid". This is the result of a 6 month development cycle and is the most significant release since 1.0.0. FluidSynth is a software wavetable synthesizer based on the SoundFont 2 specification."
Office Applications
YaMA 1.6.4 released
Version 1.6.4 of YaMA has been announced. "Yet Another Meeting Assistant (YaMA), will help you with the Agenda, Meeting Invitations, Minutes of a Meeting as well as Action Points. If you are the assigned minute taker at any meeting, this tool is for you. Whats New in version 1.6.4 : 1. Interoperability enhancements: export Action Points to Wiki and CSV formats 2. Minor Bug Fixes".
Video Applications
De Icaza: The future of Moonlight
On his blog, Miguel de Icaza writes about Moonlight's future. As it approaches the 2.0 release (which has feature parity with Silverlight 2.0 along with some 3.0 features), he has ideas on areas that could be explored using Moonlight. "I think of the Moonlight relationship to Silverlight as the Firefox relationship to IE four years ago. It is a chance to try out new ideas in the Silverlight-o-sphere, we can try those ideas out, and if the ideas have merit, they could become part of the official Silverlight."
Web Browsers
Firefox 3.6 Beta 3 is available
Version 3.6 Beta 3 of Firefox has been announced. "Last night the Mozilla community released Firefox 3.6 Beta 3, and issued an update for all Firefox 3.6 beta users. This update contains over 80 fixes from the last Firefox 3.6 beta, containing many improvements for web developers, Add-on developers, and users. More than half of the thousands of Firefox Add-ons have now been upgraded by their authors to be compatible with Firefox 3.6 Beta. If your favorite Add-on isn't yet compatible, you can also download and install the Add-on Compatibility Reporter from addons.mozilla.org - your favorite Add-on author will appreciate it!"
Languages and Tools
Caml
Caml Weekly News
The November 17, 2009 edition of the Caml Weekly News is out with new articles about the Caml language.
Java
IcedTea7 1.12 (Milestone 5) released
Version 1.12 of IcedTea7 has been announced, it adds many security patches, bug fixes and new capabilities. "The IcedTea project provides a harness to build the source code from OpenJDK7 using Free Software build tools. It also includes the only Free Java plugin and Web Start implementation, and support for additional architectures over and above x86, x86_64 and SPARC via the Zero assembler port."
Perl
Parrot 1.8.0 released
Version 1.8.0 of Parrot has been announced, it includes numerous additions and improvements. "On behalf of the Parrot team, I'm proud to announce Parrot 1.8.0 "Zygodactyly". Parrot, http://parrot.org/, is a virtual machine aimed at running all dynamic languages."
www.perl.org redesigned (use Perl)
use Perl has an announcement about the redesign of the www.perl.org site. "This is a complete redesign and content review. Hopefully it's cleaner and easier for people to actually get the information they are after."
Python
ftputil 2.4.2 released
Version 4.2 of ftputil has been announced, it includes several bug fixes and an installation improvement. "ftputil is a high-level FTP client library for the Python programming language. ftputil implements a virtual file system for accessing FTP servers, that is, it can generate file-like objects for remote files."
Urwid 0.9.9 released
Version 0.9.9 of Urwid, a console-based user interface library for Python, has been announced. "This release includes many new features developed since the last major release. Urwid now supports 256 and 88 color terminals. A new MainLoop class has been introduced to tie together widgets, user input, screen display and an event loop. Twisted and GLib-based event loops are now supported directly. A new AttrMap class now allows mapping any attribute to any other attribute. Most of the code base has been cleaned up and now has better documentation and testing."
Python-URL! - weekly Python news and links
The November 16, 2009 edition of the Python-URL! is online with a new collection of Python article links.
Tcl/Tk
Tcl-URL! - weekly Tcl news and links
The November 13, 2009 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.
IDEs
Pydev 1.5.1 released
Version 1.5.1 of Pydev, an Eclipse plugin for Python, has been announced. "Release Highlights: * Improvements in the AST rewriter * Improvements on the refactoring engine: o No longer using BRM o Merged with the latest PEPTIC o Inline local available o Extract method bug-fixes o Extract local on multi-line o Generating properties using coding style defined in preferences o Add after current method option added to extract method o A bunch of other corner-case situations were fixed".
Version Control
GIT 1.6.5.3 released
Version 1.6.5.3 of the GIT distributed version control system has been announced, it includes numerous bug fixes and other improvements.Mercurial 1.4 released
Version 1.4 of the Mercurial source code management system has been announced, it includes new functionality and bug fixes. See the release notes for more details.
Miscellaneous
GNU patch 2.6 released
Version 2.6b of GNU patch has been announced. "The last release dates back to June 2004 with version 2.5.9. A new Savannah project has been created with the new code repository and the bug-patch mailing list archive at: http://savannah.gnu.org/projects/patch".
Page editor: Forrest Cook
Next page:
Announcements>>