I’ve spent the last week here in Zurich, Switzerland, for an SVG F2F. I’m staying with Andreas Neumann (GIS PhD student, SVG pioneer, and organizer of the SVG Open conference series) and his wife J. (also a cartographer); they’ve been gracious hosts to Erik Dahlstrom and me, providing room and board in their spacious and elegant apartment nestled in a small village outside of Zurich. The weather has been nice, and several times we dined out on their patio, including Friday night when they had the whole Working Group over for dinner. The view is of the Alps is lovely, though Andreas says it’s even better when the sky is clear… they can see higher peaks further away. Yesterday, the four of us took a gloriously scenic train ride down to Lucano, on the shores of Lake Lugano in the Italian part of Switzerland. We hiked up a small mountain and had lunch at a restaurant at the peak. It was somewhat cloudy and rained a bit while we were eating (good timing), but the view was still lovely, and we all had a good time.
Speaking of climbing the Alps, the SVG F2F was a lot like that. We have all been channeling the bulk of our energies for the last several weeks (and to a lesser extent, months) toward preparing for the SVG Tiny 1.2 Test Fest. It’s been like climbing a mountain, with long tedious preparation before the event, culminating in a burst of exertion. Concentrating on the testing, we didn’t have the opportunity to cover as wide a variety of issues as we have in past F2Fs, though we did spend Friday afternoon discussing administrivia, some unresolved issues with the microDOM, and the other specs we’re working on, including Print and Filters.
Read on past the fold if you care for a little more detail about the technical stuff…
I’ve talked about the importance of test suites before, but in case I didn’t lose my vast audience then, I’ll try to go into even more boring detail. A W3C specification has “exit criteria”, which is to say, each spec has certain conditions that need to be met before it is stamped with the official label of “Recommendation” (at which point it is considered stable). One of these exit criteria is typically an assessment of its implementability, that is, can the set of features described be turned into real working software that works efficiently and interoperably. (As a side note here, often the barrier here is not whether the spec has technical issues, but whether there is will among implementors to add particular features; only they can make that call, based on a balancing act of how tricky is is to do, how useful they think it will be to content authors, how well it fits into their architecture or UI, how many resources it consumes on their target device or platform, etc.) This criterion is normally satisfied by testing to make sure each feature has 2 separate implementations; if not, that feature will probably be dropped from the spec. Part of the purpose of the test suite is to provide a basis for that judgment.
This Test Fest was the first time that we opened the SVG 1.2 Tiny test suite (which is still under development) to public implementors (as opposed to those on the WG); this is not an attempt at secrecy, but a precaution to make sure that an implementor doesn’t get their hands on a bad test and mistakenly write their code to match. As it happens, only one public implementor, Renesis, showed up in person, though others sent in their more recent internal builds. We all sat around the table on Thursday and Friday, and stepped through each test openly; we compared renderings, took notes on each test (deciding collectively on the quality of the test itself, on its description, on technical issues that may need to be resolved in the spec or in the test), and recorded the results. Normally, competing implementors aren’t so forthcoming about showing their internal development to each other before it’s released, but they all have a vested interest in moving SVG forward, so this is one more way in which an open standards body like W3C is important, as a forum for collaboration and honest exchange. Unfortunately, Renesis weren’t able to stay long due to time conflicts, but the rest of the implementations were tested pretty thoroughly, and we were pleased with the outcome. It looks like we’re on track to keep trucking (though never as fast as I would like). We will be using the results of this Test Fest to publish a first public release of the test suite in a few weeks, to solicit public feedback. The results of this Test Fest, the discussions we had, and the public feedback will be folded into our plans for a larger, more comprehensive (and hopefully more conclusive) Test Fest in September.
Among other things we discussed was SVG filters, and the new Filters module. Due to limited time, we mostly just covered some feedback we got from Tor, who is implementing SVG 1.1 filters in Firefox. Erik, who is making filters in Opera, will be writing up some SVG 1.1 errata and examples based on Tor’s feedback, and including the revisions in the new Filters spec.
> Erik, who is making filters in Opera
I can really only claim credits for doing the specification part of filters. The implementation was done by Fredrik Söderquist.